diff options
author | Mike Gorse <mgorse@novell.com> | 2011-05-25 14:36:52 -0500 |
---|---|---|
committer | Mike Gorse <mgorse@novell.com> | 2011-05-25 14:36:52 -0500 |
commit | 73b811b78954dfb0f8b407354c146d9fbd47dea3 (patch) | |
tree | 1c3b214407b08b2c4d57ee9616dcc9ce3795f4f2 /atspi/atspi-stateset.c | |
parent | 9ddf777a096440afe521c094544942e85e3ee838 (diff) | |
download | at-spi2-core-73b811b78954dfb0f8b407354c146d9fbd47dea3.tar.gz |
Remove redundant tables of state and role names
Use the generated enum type to convert state names to numeric values rather
than a string table that needs to be maintained in parallel. Also, remove
atspi_role_get_name since it was unused, marked deprecated, and relied on a
string table which is now redundant with the enum type.
Diffstat (limited to 'atspi/atspi-stateset.c')
-rw-r--r-- | atspi/atspi-stateset.c | 70 |
1 files changed, 12 insertions, 58 deletions
diff --git a/atspi/atspi-stateset.c b/atspi/atspi-stateset.c index a5bcc51c..28e272fc 100644 --- a/atspi/atspi-stateset.c +++ b/atspi/atspi-stateset.c @@ -28,52 +28,6 @@ static void atspi_state_set_class_init (AtspiStateSetClass *klass); G_DEFINE_TYPE (AtspiStateSet, atspi_state_set, G_TYPE_OBJECT) -static const char *state_names [] = -{ - "invalid", - "active", - "armed", - "busy", - "checked", - "collapsed", - "defunct", - "editable", - "enabled", - "expandable", - "expanded", - "focusable", - "focused", - "has-tool-tip", - "horizontal", - "iconified", - "modal", - "multi-line", - "multiselectable", - "opaque", - "pressed", - "resizable", - "selectable", - "selected", - "sensitive", - "showing", - "singleLine", - "stale", - "transient", - "vertical", - "visible", - "manages-descendants", - "indeterminate", - "required", - "truncated", - "animated", - "invalid-entry", - "supports-autocompletion", - "selectable-text", - "is-default", - "visited", - NULL -}; - static void atspi_state_set_init (AtspiStateSet *set) { @@ -123,25 +77,25 @@ _atspi_state_set_new_internal (AtspiAccessible *accessible, gint64 states) void atspi_state_set_set_by_name (AtspiStateSet *set, const gchar *name, gboolean enabled) { - gint i = 0; + GTypeClass *type_class; + GEnumValue *value; + + type_class = g_type_class_ref (ATSPI_TYPE_STATE_TYPE); if (set->accessible && !(set->accessible->cached_properties & ATSPI_CACHE_STATES)) return; - /* TODO: This could perhaps be optimized */ - for (i = 0; state_names [i]; i++) + value = g_enum_get_value_by_nick (G_ENUM_CLASS (type_class), name); + if (!value) { - if (!strcmp (state_names [i], name)) - { - if (enabled) - set->states |= ((gint64)1 << i); - else - set->states &= ~((gint64)1 << i); - return; - } + g_warning ("AT-SPI: Attempt to set unknown state '%s'", name); } - g_warning ("at-spi: Attempt to set unknown state '%s'", name); + + if (enabled) + set->states |= ((gint64)1 << value->value); + else + set->states &= ~((gint64)1 << value->value); } static void |