object_class->finalize = atspi_accessible_finalize;
}
-/* TODO: Generate following from spec? */
-static const char *role_names [] =
-{
- "invalid",
- "accel-label",
- "alert",
- "animation",
- "arrow",
- "calendar",
- "canvas",
- "check-box",
- "check-menu-item",
- "color-chooser",
- "column-header",
- "combo-box",
- "date-editor",
- "desktop-icon",
- "desktop-frame",
- "dial",
- "dialog",
- "directory-pane",
- "drawing-area",
- "file-chooser",
- "filler",
- "font-chooser",
- "frame",
- "glass-pane",
- "html-container",
- "icon",
- "image",
- "internalframe",
- "label",
- "layered-pane",
- "list",
- "list-item",
- "menu",
- "menu-bar",
- "menu-item",
- "option-pane",
- "page-tab",
- "page-tab-list",
- "panel",
- "password-text",
- "popup-menu",
- "progress-bar",
- "push-button",
- "radio-button",
- "radio-menu-item",
- "root-pane",
- "row-header",
- "scroll-bar",
- "scroll-pane",
- "separator",
- "slider",
- "spin-button",
- "split-pane",
- "statusbar",
- "table",
- "table-cell",
- "table-column-header",
- "table-row-header",
- "tear-off-menu-item",
- "terminal",
- "text",
- "toggle-button",
- "tool-bar",
- "tool-tip",
- "tree",
- "tree-table",
- "unknown",
- "viewport",
- "window",
- NULL,
- "header",
- "fooler",
- "paragraph",
- "ruler",
- "application",
- "autocomplete",
- "editbar",
- "embedded",
- "entry",
- "chart",
- "caption",
- "document_frame",
- "heading",
- "page",
- "section",
- "form",
- "redundant object",
- "link",
- "input method window"
-};
-
-#define MAX_ROLES (sizeof (role_names) / sizeof (char *))
-
-/**
- * atspi_role_get_name
- * @role: an #AtspiAccessibleRole object to query.
- *
- * Get a localizeable string that indicates the name of an #AtspiAccessibleRole.
- * <em>DEPRECATED.</em>
- *
- * Returns: a localizable string name for an #AtspiAccessibleRole enumerated type.
- **/
-gchar *
-atspi_role_get_name (AtspiRole role)
-{
- if (role < MAX_ROLES && role_names [(int) role])
- {
- return g_strdup (role_names [(int) role]);
- }
- else
- {
- return g_strdup ("");
- }
-}
/**
* atspi_accessible_get_name:
AtspiAccessible *
atspi_accessible_new (AtspiApplication *app, const gchar *path);
-gchar * atspi_role_get_name (AtspiRole role);
-
gchar * atspi_accessible_get_name (AtspiAccessible *obj, GError **error);
gchar * atspi_accessible_get_description (AtspiAccessible *obj, GError **error);
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)
{
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