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)
{
- GTypeClass *type_class;
- GEnumValue *value;
-
- type_class = g_type_class_ref (ATSPI_TYPE_STATE_TYPE);
+ gint i = 0;
if (set->accessible &&
!(set->accessible->cached_properties & ATSPI_CACHE_STATES))
return;
- value = g_enum_get_value_by_nick (G_ENUM_CLASS (type_class), name);
- if (!value)
+ /* TODO: This could perhaps be optimized */
+ for (i = 0; state_names [i]; i++)
{
- g_warning ("AT-SPI: Attempt to set unknown state '%s'", name);
+ if (!strcmp (state_names [i], name))
+ {
+ if (enabled)
+ set->states |= ((gint64)1 << i);
+ else
+ set->states &= ~((gint64)1 << i);
+ return;
+ }
}
-
- if (enabled)
- set->states |= ((gint64)1 << value->value);
- else
- set->states &= ~((gint64)1 << value->value);
+ g_warning ("at-spi: Attempt to set unknown state '%s'", name);
}
static void