summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Piñeiro <apinheiro@igalia.com>2013-02-18 20:10:22 +0100
committerAlejandro Piñeiro <apinheiro@igalia.com>2013-02-18 23:11:31 +0100
commit08177bf931e23c1e40c7d848cca6bcee337178ad (patch)
tree6cc97bc5e6a07010309e81877014e095147f438e
parent5294c2cf6288f5a62389dea3bdf9863f0b96cd9f (diff)
downloadatk-08177bf931e23c1e40c7d848cca6bcee337178ad.tar.gz
atkobject: Added atk_object_get_object_locale
https://bugzilla.gnome.org/show_bug.cgi?id=694117
-rwxr-xr-xatk/atkobject.c37
-rwxr-xr-xatk/atkobject.h5
2 files changed, 40 insertions, 2 deletions
diff --git a/atk/atkobject.c b/atk/atkobject.c
index fe17884..26e6c2f 100755
--- a/atk/atkobject.c
+++ b/atk/atkobject.c
@@ -340,7 +340,8 @@ static void atk_object_real_remove_property_change_handler
guint handler_id);
static void atk_object_notify (GObject *obj,
GParamSpec *pspec);
-
+static const gchar* atk_object_real_get_object_locale
+ (AtkObject *object);
static guint atk_object_signals[LAST_SIGNAL] = { 0, };
@@ -497,6 +498,7 @@ atk_object_class_init (AtkObjectClass *klass)
atk_object_real_connect_property_change_handler;
klass->remove_property_change_handler =
atk_object_real_remove_property_change_handler;
+ klass->get_object_locale = atk_object_real_get_object_locale;
/*
* We do not define default signal handlers here
@@ -1559,6 +1561,39 @@ atk_role_get_localized_name (AtkRole role)
return atk_role_get_name (role);
}
+static const gchar*
+atk_object_real_get_object_locale (AtkObject *object)
+{
+ return setlocale (LC_MESSAGES, NULL);
+}
+
+/**
+ * atk_object_get_object_locale:
+ * @accessible: an #AtkObject
+ *
+ * Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale
+ * of @accessible.
+ *
+ * Since: 2.7.90
+ *
+ * Returns: a UTF-8 string indicating the POSIX-style LC_MESSAGES
+ * locale of @accessible.
+ **/
+const gchar*
+atk_object_get_object_locale (AtkObject *accessible)
+{
+ AtkObjectClass *klass;
+
+ g_return_val_if_fail (ATK_IS_OBJECT (accessible), NULL);
+
+ klass = ATK_OBJECT_GET_CLASS (accessible);
+ if (klass->get_object_locale)
+ return (klass->get_object_locale) (accessible);
+ else
+ return NULL;
+}
+
+
/**
* atk_role_for_name:
* @name: a string which is the (non-localized) name of an ATK role.
diff --git a/atk/atkobject.h b/atk/atkobject.h
index 83d77fd..4e15919 100755
--- a/atk/atkobject.h
+++ b/atk/atkobject.h
@@ -531,8 +531,10 @@ void (* initialize) (AtkObject
* Since ATK 1.12
*/
AtkAttributeSet* (*get_attributes) (AtkObject *accessible);
+
+ const gchar* (*get_object_locale) (AtkObject *accessible);
+
AtkFunction pad1;
- AtkFunction pad2;
};
GType atk_object_get_type (void);
@@ -613,6 +615,7 @@ gboolean atk_object_remove_relationship (AtkObject *
AtkRelationType relationship,
AtkObject *target);
const gchar* atk_role_get_localized_name (AtkRole role);
+const gchar* atk_object_get_object_locale (AtkObject *accessible);
/* */