From 8309710f8134142f914317d399e9ecf9ba9ad436 Mon Sep 17 00:00:00 2001 From: Mike Gorse 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 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 @@ + + -- 1.7.10.4