Revved to 1.5.3; added ROLE_EMBEDDED (bug #144415).
[platform/core/uifw/at-spi2-atk.git] / libspi / accessible.c
index d70fbab..9b4f70c 100644 (file)
@@ -118,8 +118,10 @@ spi_init_role_lookup_table (Accessibility_Role *role_table)
   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_LAST_DEFINED] =        Accessibility_ROLE_EXTENDED;
-  
+  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;
 }
 
@@ -404,6 +406,28 @@ impl_accessibility_accessible_get_role_name (PortableServer_Servant servant,
     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, 0);
+
+  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
 spi_accessible_class_init (SpiAccessibleClass *klass)
 {
@@ -423,6 +447,7 @@ spi_accessible_class_init (SpiAccessibleClass *klass)
         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
@@ -433,7 +458,7 @@ spi_accessible_init (SpiAccessible *accessible)
 BONOBO_TYPE_FUNC_FULL (SpiAccessible,
                       Accessibility_Accessible,
                       PARENT_TYPE,
-                      spi_accessible);
+                      spi_accessible)
 
 static GHashTable *public_corba_refs = NULL;