Atk_object_get_object_locale was added to atk recently, and I wasn't watching IRC at the time / didn't notice the new function in time to add corresponding support into AT-SPI. I would like to commit the attached patches into at-spi2-core, at-spi2-atk, and pyatspi2.

https://bugzilla.gnome.org/show_bug.cgi?id=694368

Thanks,
-Mike
From 8309710f8134142f914317d399e9ecf9ba9ad436 Mon Sep 17 00:00:00 2001
From: Mike Gorse <[email protected]>
Date: Mon, 25 Feb 2013 18:36:12 -0600
Subject: [PATCH] Add atspi_accessible_get_locale

https://bugzilla.gnome.org/show_bug.cgi?id=694368
---
 atspi/atspi-accessible.c           |   35 +++++++++++++++++++++++++++++++++++
 atspi/atspi-accessible.h           |    2 ++
 doc/libatspi/libatspi-sections.txt |    1 +
 xml/Accessible.xml                 |    2 ++
 4 files changed, 40 insertions(+)

diff --git a/atspi/atspi-accessible.c b/atspi/atspi-accessible.c
index 64cbf7e..517ed18 100644
--- a/atspi/atspi-accessible.c
+++ b/atspi/atspi-accessible.c
@@ -26,6 +26,7 @@
 #include <string.h>
 
 static gboolean enable_caching = FALSE;
+static guint quark_locale;
 
 static void
 atspi_action_interface_init (AtspiAction *action)
@@ -196,6 +197,8 @@ atspi_accessible_class_init (AtspiAccessibleClass *klass)
 
   object_class->dispose = atspi_accessible_dispose;
   object_class->finalize = atspi_accessible_finalize;
+
+  quark_locale = g_quark_from_string ("accessible-locale");
 }
 
 /* TODO: Generate following from spec? */
@@ -1600,3 +1603,35 @@ _atspi_accessible_add_cache (AtspiAccessible *accessible, AtspiCache flag)
 
   accessible->cached_properties |= flag & mask;
 }
+
+/**
+ * atspi_accessible_get_locale:
+ * @accessible: an #AtspiAccessible
+ *
+ * Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale
+ * of @accessible.
+ *
+ * Since: 2.7.91
+ *
+ * Returns: a UTF-8 string indicating the POSIX-style LC_MESSAGES
+ *          locale of @accessible.
+ **/
+const gchar*
+atspi_accessible_get_locale (AtspiAccessible *accessible, GError **error)
+{
+  gchar *locale;
+
+  g_return_val_if_fail (accessible != NULL, NULL);
+
+  locale = g_object_get_qdata (G_OBJECT (accessible), quark_locale);
+  if (!locale)
+  {
+    if (!_atspi_dbus_get_property (accessible, atspi_interface_accessible,
+                                   "Locale", error, "s", &locale))
+      return NULL;
+    if (locale)
+      g_object_set_qdata_full (G_OBJECT (accessible), quark_locale, locale,
+                               g_free);
+  }
+  return locale;
+}
diff --git a/atspi/atspi-accessible.h b/atspi/atspi-accessible.h
index 428967e..99a425e 100644
--- a/atspi/atspi-accessible.h
+++ b/atspi/atspi-accessible.h
@@ -132,6 +132,8 @@ AtspiValue * atspi_accessible_get_value (AtspiAccessible *obj);
 
 GArray * atspi_accessible_get_interfaces (AtspiAccessible *obj);
 
+const gchar* atspi_accessible_get_locale (AtspiAccessible *accessible, GError **error);
+
 void atspi_accessible_set_cache_mask (AtspiAccessible *accessible, AtspiCache mask);
 
 void atspi_accessible_clear_cache (AtspiAccessible *accessible);
diff --git a/doc/libatspi/libatspi-sections.txt b/doc/libatspi/libatspi-sections.txt
index 121c292..822278c 100644
--- a/doc/libatspi/libatspi-sections.txt
+++ b/doc/libatspi/libatspi-sections.txt
@@ -204,6 +204,7 @@ atspi_accessible_get_localized_role_name
 atspi_accessible_get_state_set
 atspi_accessible_get_attributes
 atspi_accessible_get_attributes_as_array
+atspi_accessible_get_locale
 atspi_accessible_get_toolkit_name
 atspi_accessible_get_toolkit_version
 atspi_accessible_get_application
diff --git a/xml/Accessible.xml b/xml/Accessible.xml
index dabbd4e..9240882 100644
--- a/xml/Accessible.xml
+++ b/xml/Accessible.xml
@@ -12,6 +12,8 @@
 
   <property name="ChildCount" type="i" access="read"/>
 
+  <property name="Locale" type="s" access="read"/>
+
   <method name="GetChildAtIndex">
     <arg direction="in" name="index" type="i"/>
     <arg direction="out" type="(so)"/>
-- 
1.7.10.4

From f0eb760a6dafd721b21a01b16258f73a6c193478 Mon Sep 17 00:00:00 2001
From: Mike Gorse <[email protected]>
Date: Mon, 25 Feb 2013 18:39:08 -0600
Subject: [PATCH] Add Locale property, mapped to atk_object_get_object_locale

https://bugzilla.gnome.org/show_bug.cgi?id=694368
---
 atk-adaptor/adaptors/accessible-adaptor.c |   11 +++++++++++
 configure.ac                              |    2 +-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/atk-adaptor/adaptors/accessible-adaptor.c b/atk-adaptor/adaptors/accessible-adaptor.c
index 77aacbb..76588be 100644
--- a/atk-adaptor/adaptors/accessible-adaptor.c
+++ b/atk-adaptor/adaptors/accessible-adaptor.c
@@ -52,6 +52,16 @@ impl_get_Description (DBusMessageIter * iter, void *user_data)
 }
 
 static dbus_bool_t
+impl_get_Locale (DBusMessageIter * iter, void *user_data)
+{
+  AtkObject *object = (AtkObject *) user_data;
+
+  g_return_val_if_fail (ATK_IS_OBJECT (user_data), FALSE);
+
+  return droute_return_v_string (iter, atk_object_get_object_locale (object));
+}
+
+static dbus_bool_t
 impl_get_Parent (DBusMessageIter * iter, void *user_data)
 {
   AtkObject *obj = (AtkObject *) user_data;
@@ -511,6 +521,7 @@ static DRouteMethod methods[] = {
 static DRouteProperty properties[] = {
   {impl_get_Name, NULL, "Name"},
   {impl_get_Description, NULL, "Description"},
+  {impl_get_Locale, NULL, "Locale"},
   {impl_get_Parent, NULL, "Parent"},
   {impl_get_ChildCount, NULL, "ChildCount"},
   {NULL, NULL, NULL}
diff --git a/configure.ac b/configure.ac
index 8af537c..2630c7a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -51,7 +51,7 @@ PKG_CHECK_MODULES(GMODULE, [gmodule-2.0 >= 2.0.0])
 AC_SUBST(GMODULE_LIBS)
 AC_SUBST(GMODULE_CFLAGS)
 
-PKG_CHECK_MODULES(ATK, [atk >= 2.7.5])
+PKG_CHECK_MODULES(ATK, [atk >= 2.7.90])
 AC_SUBST(ATK_LIBS)
 AC_SUBST(ATK_CFLAGS)
 
-- 
1.7.10.4

From 97dde59d5660daeb4ed1e040f7c32e60df5e0743 Mon Sep 17 00:00:00 2001
From: Mike Gorse <[email protected]>
Date: Mon, 25 Feb 2013 19:37:27 -0600
Subject: [PATCH] Add locale property, corresponding to
 atspi_accessible_get_locale

https://bugzilla.gnome.org/show_bug.cgi?id=694368
---
 pyatspi/Accessibility.py |    1 +
 1 file changed, 1 insertion(+)

diff --git a/pyatspi/Accessibility.py b/pyatspi/Accessibility.py
index 1248a3e..4fe0f8d 100644
--- a/pyatspi/Accessibility.py
+++ b/pyatspi/Accessibility.py
@@ -126,6 +126,7 @@ Atspi.Accessible.getRoleName = Atspi.Accessible.get_role_name
 Atspi.Accessible.getState = Atspi.Accessible.get_state_set
 del Atspi.Accessible.children
 Atspi.Accessible.description = property(fget=Atspi.Accessible.get_description)
+Atspi.Accessible.locale = property(fget=Atspi.Accessible.get_locale)
 Atspi.Accessible.name = property(fget=Atspi.Accessible.get_name)
 Atspi.Accessible.isEqual = lambda a,b: a == b
 Atspi.Accessible.parent = property(fget=Atspi.Accessible.get_parent)
-- 
1.7.10.4

_______________________________________________
[email protected]
https://mail.gnome.org/mailman/listinfo/release-team
Release-team lurker? Do NOT participate in discussions.

Reply via email to