* AT-SPI - Assistive Technology Service Provider Interface
* (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
*
- * Copyright 2001 Sun Microsystems Inc.
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
role_table [i] = Accessibility_ROLE_UNKNOWN;
}
- role_table [ATK_ROLE_INVALID] = Accessibility_ROLE_INVALID;
- role_table [ATK_ROLE_ACCEL_LABEL] = Accessibility_ROLE_ACCELERATOR_LABEL;
- role_table [ATK_ROLE_ALERT] = Accessibility_ROLE_ALERT;
- role_table [ATK_ROLE_ANIMATION] = Accessibility_ROLE_ANIMATION;
- role_table [ATK_ROLE_ARROW] = Accessibility_ROLE_ARROW;
- role_table [ATK_ROLE_CALENDAR] = Accessibility_ROLE_CALENDAR;
- role_table [ATK_ROLE_CANVAS] = Accessibility_ROLE_CANVAS;
- role_table [ATK_ROLE_CHECK_BOX] = Accessibility_ROLE_CHECK_BOX;
- role_table [ATK_ROLE_CHECK_MENU_ITEM] = Accessibility_ROLE_CHECK_MENU_ITEM;
- role_table [ATK_ROLE_COLOR_CHOOSER] = Accessibility_ROLE_COLOR_CHOOSER;
- role_table [ATK_ROLE_COLUMN_HEADER] = Accessibility_ROLE_COLUMN_HEADER;
- role_table [ATK_ROLE_COMBO_BOX] = Accessibility_ROLE_COMBO_BOX;
- role_table [ATK_ROLE_DATE_EDITOR] = Accessibility_ROLE_DATE_EDITOR;
- role_table [ATK_ROLE_DESKTOP_ICON] = Accessibility_ROLE_DESKTOP_ICON;
- role_table [ATK_ROLE_DESKTOP_FRAME] = Accessibility_ROLE_DESKTOP_FRAME;
- role_table [ATK_ROLE_DIAL] = Accessibility_ROLE_DIAL;
- role_table [ATK_ROLE_DIALOG] = Accessibility_ROLE_DIALOG;
- role_table [ATK_ROLE_DIRECTORY_PANE] = Accessibility_ROLE_DIRECTORY_PANE;
- role_table [ATK_ROLE_FILE_CHOOSER] = Accessibility_ROLE_FILE_CHOOSER;
- role_table [ATK_ROLE_FILLER] = Accessibility_ROLE_FILLER;
- role_table [ATK_ROLE_FONT_CHOOSER] = Accessibility_ROLE_FONT_CHOOSER;
- role_table [ATK_ROLE_FRAME] = Accessibility_ROLE_FRAME;
- role_table [ATK_ROLE_GLASS_PANE] = Accessibility_ROLE_GLASS_PANE;
- role_table [ATK_ROLE_HTML_CONTAINER] = Accessibility_ROLE_HTML_CONTAINER;
- role_table [ATK_ROLE_ICON] = Accessibility_ROLE_ICON;
- role_table [ATK_ROLE_IMAGE] = Accessibility_ROLE_IMAGE;
- role_table [ATK_ROLE_INTERNAL_FRAME] = Accessibility_ROLE_INTERNAL_FRAME;
- role_table [ATK_ROLE_LABEL] = Accessibility_ROLE_LABEL;
- role_table [ATK_ROLE_LAYERED_PANE] = Accessibility_ROLE_LAYERED_PANE;
- role_table [ATK_ROLE_LIST] = Accessibility_ROLE_LIST;
- role_table [ATK_ROLE_LIST_ITEM] = Accessibility_ROLE_LIST_ITEM;
- role_table [ATK_ROLE_MENU] = Accessibility_ROLE_MENU;
- role_table [ATK_ROLE_MENU_BAR] = Accessibility_ROLE_MENU_BAR;
- role_table [ATK_ROLE_MENU_ITEM] = Accessibility_ROLE_MENU_ITEM;
- role_table [ATK_ROLE_OPTION_PANE] = Accessibility_ROLE_OPTION_PANE;
- role_table [ATK_ROLE_PAGE_TAB] = Accessibility_ROLE_PAGE_TAB;
- role_table [ATK_ROLE_PAGE_TAB_LIST] = Accessibility_ROLE_PAGE_TAB_LIST;
- role_table [ATK_ROLE_PANEL] = Accessibility_ROLE_PANEL;
- role_table [ATK_ROLE_PASSWORD_TEXT] = Accessibility_ROLE_PASSWORD_TEXT;
- role_table [ATK_ROLE_POPUP_MENU] = Accessibility_ROLE_POPUP_MENU;
- role_table [ATK_ROLE_PROGRESS_BAR] = Accessibility_ROLE_PROGRESS_BAR;
- role_table [ATK_ROLE_PUSH_BUTTON] = Accessibility_ROLE_PUSH_BUTTON;
- role_table [ATK_ROLE_RADIO_BUTTON] = Accessibility_ROLE_RADIO_BUTTON;
- role_table [ATK_ROLE_RADIO_MENU_ITEM] = Accessibility_ROLE_RADIO_MENU_ITEM;
- role_table [ATK_ROLE_ROOT_PANE] = Accessibility_ROLE_ROOT_PANE;
- role_table [ATK_ROLE_ROW_HEADER] = Accessibility_ROLE_ROW_HEADER;
- role_table [ATK_ROLE_SCROLL_BAR] = Accessibility_ROLE_SCROLL_BAR;
- role_table [ATK_ROLE_SCROLL_PANE] = Accessibility_ROLE_SCROLL_PANE;
- role_table [ATK_ROLE_SEPARATOR] = Accessibility_ROLE_SEPARATOR;
- role_table [ATK_ROLE_SLIDER] = Accessibility_ROLE_SLIDER;
- role_table [ATK_ROLE_SPLIT_PANE] = Accessibility_ROLE_SPLIT_PANE;
- role_table [ATK_ROLE_SPIN_BUTTON] = Accessibility_ROLE_SPIN_BUTTON;
- role_table [ATK_ROLE_STATUSBAR] = Accessibility_ROLE_STATUS_BAR;
- role_table [ATK_ROLE_TABLE] = Accessibility_ROLE_TABLE;
- role_table [ATK_ROLE_TABLE_CELL] = Accessibility_ROLE_TABLE_CELL;
- role_table [ATK_ROLE_TABLE_COLUMN_HEADER] =
- Accessibility_ROLE_COLUMN_HEADER;
- role_table [ATK_ROLE_TABLE_ROW_HEADER] = Accessibility_ROLE_ROW_HEADER;
- role_table [ATK_ROLE_TEAR_OFF_MENU_ITEM] =
- Accessibility_ROLE_TEAROFF_MENU_ITEM;
- role_table [ATK_ROLE_TERMINAL] = Accessibility_ROLE_TERMINAL;
- role_table [ATK_ROLE_TEXT] = Accessibility_ROLE_TEXT;
- role_table [ATK_ROLE_TOGGLE_BUTTON] = Accessibility_ROLE_TOGGLE_BUTTON;
- role_table [ATK_ROLE_TOOL_BAR] = Accessibility_ROLE_TOOL_BAR;
- role_table [ATK_ROLE_TOOL_TIP] = Accessibility_ROLE_TOOL_TIP;
- role_table [ATK_ROLE_TREE] = Accessibility_ROLE_TREE;
- role_table [ATK_ROLE_TREE_TABLE] = Accessibility_ROLE_TREE_TABLE;
- role_table [ATK_ROLE_UNKNOWN] = Accessibility_ROLE_UNKNOWN;
- role_table [ATK_ROLE_VIEWPORT] = Accessibility_ROLE_VIEWPORT;
- role_table [ATK_ROLE_WINDOW] = Accessibility_ROLE_WINDOW;
- role_table [ATK_ROLE_LAST_DEFINED] = Accessibility_ROLE_EXTENDED;
-
+ role_table [ATK_ROLE_INVALID] = Accessibility_ROLE_INVALID;
+ role_table [ATK_ROLE_ACCEL_LABEL] = Accessibility_ROLE_ACCELERATOR_LABEL;
+ role_table [ATK_ROLE_ALERT] = Accessibility_ROLE_ALERT;
+ role_table [ATK_ROLE_ANIMATION] = Accessibility_ROLE_ANIMATION;
+ role_table [ATK_ROLE_ARROW] = Accessibility_ROLE_ARROW;
+ role_table [ATK_ROLE_CALENDAR] = Accessibility_ROLE_CALENDAR;
+ role_table [ATK_ROLE_CANVAS] = Accessibility_ROLE_CANVAS;
+ role_table [ATK_ROLE_CHECK_BOX] = Accessibility_ROLE_CHECK_BOX;
+ role_table [ATK_ROLE_CHECK_MENU_ITEM] = Accessibility_ROLE_CHECK_MENU_ITEM;
+ role_table [ATK_ROLE_COLOR_CHOOSER] = Accessibility_ROLE_COLOR_CHOOSER;
+ role_table [ATK_ROLE_COLUMN_HEADER] = Accessibility_ROLE_COLUMN_HEADER;
+ role_table [ATK_ROLE_COMBO_BOX] = Accessibility_ROLE_COMBO_BOX;
+ role_table [ATK_ROLE_DATE_EDITOR] = Accessibility_ROLE_DATE_EDITOR;
+ role_table [ATK_ROLE_DESKTOP_ICON] = Accessibility_ROLE_DESKTOP_ICON;
+ role_table [ATK_ROLE_DESKTOP_FRAME] = Accessibility_ROLE_DESKTOP_FRAME;
+ role_table [ATK_ROLE_DIAL] = Accessibility_ROLE_DIAL;
+ role_table [ATK_ROLE_DIALOG] = Accessibility_ROLE_DIALOG;
+ role_table [ATK_ROLE_DIRECTORY_PANE] = Accessibility_ROLE_DIRECTORY_PANE;
+ role_table [ATK_ROLE_DRAWING_AREA] = Accessibility_ROLE_DRAWING_AREA;
+ role_table [ATK_ROLE_FILE_CHOOSER] = Accessibility_ROLE_FILE_CHOOSER;
+ role_table [ATK_ROLE_FILLER] = Accessibility_ROLE_FILLER;
+ role_table [ATK_ROLE_FONT_CHOOSER] = Accessibility_ROLE_FONT_CHOOSER;
+ role_table [ATK_ROLE_FRAME] = Accessibility_ROLE_FRAME;
+ role_table [ATK_ROLE_GLASS_PANE] = Accessibility_ROLE_GLASS_PANE;
+ role_table [ATK_ROLE_HTML_CONTAINER] = Accessibility_ROLE_HTML_CONTAINER;
+ role_table [ATK_ROLE_ICON] = Accessibility_ROLE_ICON;
+ role_table [ATK_ROLE_IMAGE] = Accessibility_ROLE_IMAGE;
+ role_table [ATK_ROLE_INTERNAL_FRAME] = Accessibility_ROLE_INTERNAL_FRAME;
+ role_table [ATK_ROLE_LABEL] = Accessibility_ROLE_LABEL;
+ role_table [ATK_ROLE_LAYERED_PANE] = Accessibility_ROLE_LAYERED_PANE;
+ role_table [ATK_ROLE_LIST] = Accessibility_ROLE_LIST;
+ role_table [ATK_ROLE_LIST_ITEM] = Accessibility_ROLE_LIST_ITEM;
+ role_table [ATK_ROLE_MENU] = Accessibility_ROLE_MENU;
+ role_table [ATK_ROLE_MENU_BAR] = Accessibility_ROLE_MENU_BAR;
+ role_table [ATK_ROLE_MENU_ITEM] = Accessibility_ROLE_MENU_ITEM;
+ role_table [ATK_ROLE_OPTION_PANE] = Accessibility_ROLE_OPTION_PANE;
+ role_table [ATK_ROLE_PAGE_TAB] = Accessibility_ROLE_PAGE_TAB;
+ role_table [ATK_ROLE_PAGE_TAB_LIST] = Accessibility_ROLE_PAGE_TAB_LIST;
+ role_table [ATK_ROLE_PANEL] = Accessibility_ROLE_PANEL;
+ role_table [ATK_ROLE_PASSWORD_TEXT] = Accessibility_ROLE_PASSWORD_TEXT;
+ role_table [ATK_ROLE_POPUP_MENU] = Accessibility_ROLE_POPUP_MENU;
+ role_table [ATK_ROLE_PROGRESS_BAR] = Accessibility_ROLE_PROGRESS_BAR;
+ role_table [ATK_ROLE_PUSH_BUTTON] = Accessibility_ROLE_PUSH_BUTTON;
+ role_table [ATK_ROLE_RADIO_BUTTON] = Accessibility_ROLE_RADIO_BUTTON;
+ role_table [ATK_ROLE_RADIO_MENU_ITEM] = Accessibility_ROLE_RADIO_MENU_ITEM;
+ role_table [ATK_ROLE_ROOT_PANE] = Accessibility_ROLE_ROOT_PANE;
+ role_table [ATK_ROLE_ROW_HEADER] = Accessibility_ROLE_ROW_HEADER;
+ role_table [ATK_ROLE_SCROLL_BAR] = Accessibility_ROLE_SCROLL_BAR;
+ role_table [ATK_ROLE_SCROLL_PANE] = Accessibility_ROLE_SCROLL_PANE;
+ role_table [ATK_ROLE_SEPARATOR] = Accessibility_ROLE_SEPARATOR;
+ role_table [ATK_ROLE_SLIDER] = Accessibility_ROLE_SLIDER;
+ role_table [ATK_ROLE_SPIN_BUTTON] = Accessibility_ROLE_SPIN_BUTTON;
+ role_table [ATK_ROLE_SPLIT_PANE] = Accessibility_ROLE_SPLIT_PANE;
+ role_table [ATK_ROLE_STATUSBAR] = Accessibility_ROLE_STATUS_BAR;
+ role_table [ATK_ROLE_TABLE] = Accessibility_ROLE_TABLE;
+ role_table [ATK_ROLE_TABLE_CELL] = Accessibility_ROLE_TABLE_CELL;
+ role_table [ATK_ROLE_TABLE_COLUMN_HEADER] = Accessibility_ROLE_TABLE_COLUMN_HEADER;
+ role_table [ATK_ROLE_TABLE_ROW_HEADER] = Accessibility_ROLE_TABLE_ROW_HEADER;
+ role_table [ATK_ROLE_TEAR_OFF_MENU_ITEM] = Accessibility_ROLE_TEAROFF_MENU_ITEM;
+ role_table [ATK_ROLE_TERMINAL] = Accessibility_ROLE_TERMINAL;
+ role_table [ATK_ROLE_TEXT] = Accessibility_ROLE_TEXT;
+ role_table [ATK_ROLE_TOGGLE_BUTTON] = Accessibility_ROLE_TOGGLE_BUTTON;
+ role_table [ATK_ROLE_TOOL_BAR] = Accessibility_ROLE_TOOL_BAR;
+ role_table [ATK_ROLE_TOOL_TIP] = Accessibility_ROLE_TOOL_TIP;
+ role_table [ATK_ROLE_TREE] = Accessibility_ROLE_TREE;
+ role_table [ATK_ROLE_TREE_TABLE] = Accessibility_ROLE_TREE_TABLE;
+ role_table [ATK_ROLE_UNKNOWN] = Accessibility_ROLE_UNKNOWN;
+ role_table [ATK_ROLE_VIEWPORT] = Accessibility_ROLE_VIEWPORT;
+ role_table [ATK_ROLE_WINDOW] = Accessibility_ROLE_WINDOW;
+ role_table [ATK_ROLE_HEADER] = Accessibility_ROLE_HEADER;
+ role_table [ATK_ROLE_FOOTER] = Accessibility_ROLE_FOOTER;
+ role_table [ATK_ROLE_PARAGRAPH] = Accessibility_ROLE_PARAGRAPH;
+ role_table [ATK_ROLE_RULER] = Accessibility_ROLE_RULER;
+ role_table [ATK_ROLE_APPLICATION] = Accessibility_ROLE_APPLICATION;
+ role_table [ATK_ROLE_AUTOCOMPLETE] = Accessibility_ROLE_AUTOCOMPLETE;
+ role_table [ATK_ROLE_EDITBAR] = Accessibility_ROLE_EDITBAR;
+ role_table [ATK_ROLE_EMBEDDED] = Accessibility_ROLE_EMBEDDED;
return TRUE;
}
AtkObject *child;
AtkObject *object = get_atkobject_from_servant (servant);
- g_return_val_if_fail (object != NULL, 0);
+ g_return_val_if_fail (object != NULL, CORBA_OBJECT_NIL);
child = atk_object_ref_accessible_child (object, index);
CORBA_Environment *ev)
{
AtkObject *object = get_atkobject_from_servant (servant);
+ AtkStateSet *atk_set;
+ SpiStateSet *set;
+ Accessibility_StateSet retval;
bonobo_return_val_if_fail (object != NULL, NULL, ev);
- printf ("SpiAccessible get_state.\n");
+ atk_set = atk_object_ref_state_set (object);
+
+ set = spi_state_set_new (atk_set);
+ retval = bonobo_object_dup_ref (
+ BONOBO_OBJREF(set),
+ ev);
- /* TODO: implement the bonobo stateset class */
- return (Accessibility_StateSet) NULL;
+ return retval;
}
/*
impl_accessibility_accessible_get_role_name (PortableServer_Servant servant,
CORBA_Environment *ev)
{
+ const gchar *role_name;
AtkRole role;
AtkObject *object = get_atkobject_from_servant (servant);
- g_return_val_if_fail (object != NULL, 0);
+ g_return_val_if_fail (object != NULL, NULL);
role = atk_object_get_role (object);
- return CORBA_string_dup (atk_role_get_name (role));
+ role_name = atk_role_get_name (role);
+ if (role_name)
+ return CORBA_string_dup (role_name);
+ else
+ return CORBA_string_dup ("");
+}
+
+/*
+ * CORBA Accessibility::Accessible::getLocalizedRole method implementation
+ */
+static CORBA_char *
+impl_accessibility_accessible_get_local_role_name (PortableServer_Servant servant,
+ CORBA_Environment *ev)
+{
+ const gchar *role_name;
+ AtkRole role;
+ AtkObject *object = get_atkobject_from_servant (servant);
+
+ g_return_val_if_fail (object != NULL, NULL);
+
+ role = atk_object_get_role (object);
+
+ role_name = atk_role_get_localized_name (role);
+ if (role_name)
+ return CORBA_string_dup (role_name);
+ else
+ return CORBA_string_dup ("");
}
static void
epv->getState = impl_accessibility_accessible_get_state;
epv->getRole = impl_accessibility_accessible_get_role;
epv->getRoleName = impl_accessibility_accessible_get_role_name;
+ epv->getLocalizedRoleName = impl_accessibility_accessible_get_local_role_name;
}
static void
BONOBO_TYPE_FUNC_FULL (SpiAccessible,
Accessibility_Accessible,
PARENT_TYPE,
- spi_accessible);
+ spi_accessible)
static GHashTable *public_corba_refs = NULL;
SpiAccessible *
spi_accessible_new (AtkObject *o)
{
- return spi_accessible_construct (SPI_ACCESSIBLE_TYPE, o);
+ return spi_accessible_construct (SPI_ACCESSIBLE_TYPE, o);
}
SpiAccessible *
bonobo_object_ref (BONOBO_OBJECT (retval));
return retval;
}
-
else
{
retval = g_object_new (type, NULL);
}
else if (SPI_IS_REMOTE_OBJECT (o))
{
- retval = spi_remote_object_get_accessible (SPI_REMOTE_OBJECT (o));
+ retval = spi_remote_object_get_accessible (SPI_REMOTE_OBJECT (o));
}
else
{
- accessible = spi_accessible_new (o);
+ accessible = spi_accessible_construct (SPI_ACCESSIBLE_TYPE, o);
retval = CORBA_Object_duplicate (BONOBO_OBJREF (accessible), ev);
}