From e689f7a2522ed2b860a6978af71bca34f1a55870 Mon Sep 17 00:00:00 2001 From: Padraig O'Briain Date: Mon, 3 Dec 2001 09:07:05 +0000 Subject: Use ATK_TYPE_RELATION_TYPE in atk_relation_type_get_name() and * atk/atkrelation.c: Use ATK_TYPE_RELATION_TYPE in atk_relation_type_get_name() and atk_relation_type_for_name() * atk/atkstate.c: Use ATK_TYPE_STATE_TYPE in atk_state_type_get_name() and atk_state_type_for_name() * tests/testrelation.c, tests/teststateset.c: Update tests as name componenets are separated by hyphen (-) rather than underline (_) --- ChangeLog | 14 ++++++++ atk/atkrelation.c | 81 ++++++++++++++++++++++++++------------------ atk/atkstate.c | 94 +++++++++++++++++++++++++++------------------------- tests/testrelation.c | 22 ++++++------ tests/teststateset.c | 14 ++++---- 5 files changed, 128 insertions(+), 97 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6f978b4..a4493f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2001-12-03 Padraig O'Briain + + * atk/atkrelation.c: + Use ATK_TYPE_RELATION_TYPE in atk_relation_type_get_name() and + atk_relation_type_for_name() + + * atk/atkstate.c: + Use ATK_TYPE_STATE_TYPE in atk_state_type_get_name() and + atk_state_type_for_name() + + * tests/testrelation.c, tests/teststateset.c: + Update tests as name componenets are separated by hyphen (-) rather + than underline (_) + 2001-11-29 Padraig O'Briain * atk/Makefile.am: diff --git a/atk/atkrelation.c b/atk/atkrelation.c index e4d32cc..7bbcdac 100755 --- a/atk/atkrelation.c +++ b/atk/atkrelation.c @@ -21,16 +21,7 @@ #include #include "atkobject.h" #include "atkrelation.h" - -static gchar *relation_names[ATK_RELATION_LAST_DEFINED] = { - "null", - "controlled_by", - "controller_for", - "label_for", - "labelled_by", - "member_of", - "node_child_of" -}; +#include "atk-enum-types.h" GPtrArray *extra_names = NULL; @@ -86,7 +77,7 @@ atk_relation_type_register (const gchar *name) extra_names = g_ptr_array_new (); g_ptr_array_add (extra_names, g_strdup (name)); - return extra_names->len + ATK_RELATION_LAST_DEFINED - 1; + return extra_names->len + ATK_RELATION_LAST_DEFINED; } /** @@ -100,24 +91,33 @@ atk_relation_type_register (const gchar *name) G_CONST_RETURN gchar* atk_relation_type_get_name (AtkRelationType type) { - gint n; + GTypeClass *type_class; + GEnumValue *value; + gchar *name = NULL; + + type_class = g_type_class_ref (ATK_TYPE_RELATION_TYPE); + g_return_val_if_fail (G_IS_ENUM_CLASS (type_class), NULL); - n = type; + value = g_enum_get_value (G_ENUM_CLASS (type_class), type); - if (n >= 0) + if (value) + { + name = value->value_nick; + } + else { - if (n < ATK_RELATION_LAST_DEFINED) - return relation_names[n]; - else if (extra_names) + if (extra_names) { - n -= ATK_RELATION_LAST_DEFINED; + gint n = type; + + n -= ATK_RELATION_LAST_DEFINED + 1; if (n < extra_names->len) - return g_ptr_array_index (extra_names, n); + name = g_ptr_array_index (extra_names, n); } } - return relation_names[ATK_RELATION_NULL]; - + g_type_class_unref (type_class); + return name; } /** @@ -132,29 +132,44 @@ atk_relation_type_get_name (AtkRelationType type) AtkRelationType atk_relation_type_for_name (const gchar *name) { - gint i; + GTypeClass *type_class; + GEnumValue *value; + AtkRelationType type = ATK_RELATION_NULL; g_return_val_if_fail (name, ATK_RELATION_NULL); - for (i = 0; i < ATK_RELATION_LAST_DEFINED; i++) + type_class = g_type_class_ref (ATK_TYPE_RELATION_TYPE); + g_return_val_if_fail (G_IS_ENUM_CLASS (type_class), ATK_RELATION_NULL); + + value = g_enum_get_value_by_nick (G_ENUM_CLASS (type_class), name); + + if (value) { - if (strcmp (name, relation_names[i]) == 0) - return i; + type = value->value; } - - if (extra_names) + else { - for (i = 0; i < extra_names->len; i++) + gint i; + + if (extra_names) { - gchar *extra_name = (gchar *)g_ptr_array_index (extra_names, i); + for (i = 0; i < extra_names->len; i++) + { + gchar *extra_name = (gchar *)g_ptr_array_index (extra_names, i); - g_return_val_if_fail (extra_name, ATK_RELATION_NULL); + g_return_val_if_fail (extra_name, ATK_RELATION_NULL); - if (strcmp (name, extra_name) == 0) - return i + ATK_RELATION_LAST_DEFINED; + if (strcmp (name, extra_name) == 0) + { + type = i + 1 + ATK_RELATION_LAST_DEFINED; + break; + } + } } } - return ATK_RELATION_NULL; + g_type_class_unref (type_class); + + return type; } diff --git a/atk/atkstate.c b/atk/atkstate.c index d56b14e..8dbb495 100755 --- a/atk/atkstate.c +++ b/atk/atkstate.c @@ -18,6 +18,7 @@ */ #include "atkstate.h" +#include "atk-enum-types.h" #include @@ -25,37 +26,7 @@ static guint last_type = ATK_STATE_LAST_DEFINED; #define NUM_POSSIBLE_STATES (sizeof(AtkState)*8) -static gchar* state_names[NUM_POSSIBLE_STATES] = { - "invalid", - "active", - "armed", - "busy", - "checked", - "defunct", - "editable", - "enabled", - "expandable", - "expanded", - "focusable", - "focused", - "horizontal", - "iconified", - "modal", - "multi-line", - "multiselectable", - "opaque", - "pressed", - "resizeable", - "selectable", - "selected", - "sensitive", - "showing", - "single-line", - "stale", - "transient", - "vertical", - "visible" -}; +static gchar* state_names[NUM_POSSIBLE_STATES]; /** * atk_state_type_register: @@ -89,16 +60,29 @@ atk_state_type_register (const gchar *name) G_CONST_RETURN gchar* atk_state_type_get_name (AtkStateType type) { - gint n; + GTypeClass *type_class; + GEnumValue *value; + gchar *name = NULL; - if (type < last_type) + type_class = g_type_class_ref (ATK_TYPE_STATE_TYPE); + g_return_val_if_fail (G_IS_ENUM_CLASS (type_class), NULL); + + value = g_enum_get_value (G_ENUM_CLASS (type_class), type); + + if (value) { - n = type; - if (n >= 0) - return state_names[n]; + name = value->value_nick; + } + else + { + if (type <= last_type) + { + if (type >= 0) + name = state_names[type]; + } } - return NULL; + return name; } /** @@ -112,17 +96,35 @@ atk_state_type_get_name (AtkStateType type) AtkStateType atk_state_type_for_name (const gchar *name) { - gint i; + GTypeClass *type_class; + GEnumValue *value; + AtkStateType type = ATK_STATE_INVALID; + + g_return_val_if_fail (name, ATK_STATE_INVALID); + + type_class = g_type_class_ref (ATK_TYPE_STATE_TYPE); + g_return_val_if_fail (G_IS_ENUM_CLASS (type_class), ATK_STATE_INVALID); - g_return_val_if_fail (name != NULL, 0); - g_return_val_if_fail (strlen (name) > 0, 0); + value = g_enum_get_value_by_nick (G_ENUM_CLASS (type_class), name); - for (i = 0; i < last_type; i++) + if (value) { - if (state_names[i] == NULL) - continue; - if (!strcmp(name, state_names[i])) - return i; + type = value->value; + } + else + { + gint i; + + for (i = ATK_STATE_LAST_DEFINED + 1; i <= last_type; i++) + { + if (state_names[i] == NULL) + continue; + if (!strcmp(name, state_names[i])) + { + type = i; + break; + } + } } - return 0; + return type; } diff --git a/tests/testrelation.c b/tests/testrelation.c index 9ffaec2..26907fa 100644 --- a/tests/testrelation.c +++ b/tests/testrelation.c @@ -31,7 +31,7 @@ test_relation (void) name = atk_relation_type_get_name (ATK_RELATION_LABEL_FOR); g_return_val_if_fail (name, FALSE); - if (strcmp (name, "label_for") != 0) + if (strcmp (name, "label-for") != 0) { g_print ("Unexpected name for ATK_RELATION_LABEL_FOR %s\n", name); return FALSE; @@ -39,37 +39,37 @@ test_relation (void) name = atk_relation_type_get_name (ATK_RELATION_NODE_CHILD_OF); g_return_val_if_fail (name, FALSE); - if (strcmp (name, "node_child_of") != 0) + if (strcmp (name, "node-child-of") != 0) { g_print ("Unexpected name for ATK_STATE_MODAL %s\n", name); return FALSE; } - type1 = atk_relation_type_for_name ("controlled_by"); + type1 = atk_relation_type_for_name ("controlled-by"); if (type1 != ATK_RELATION_CONTROLLED_BY) { g_print ("Unexpected type for focused\n"); return FALSE; } - type1 = atk_relation_type_register ("test_state"); + type1 = atk_relation_type_register ("test-state"); name = atk_relation_type_get_name (type1); g_return_val_if_fail (name, FALSE); - if (strcmp (name, "test_state") != 0) + if (strcmp (name, "test-state") != 0) { - g_print ("Unexpected name for test_state %s\n", name); + g_print ("Unexpected name for test-state %s\n", name); return FALSE; } - type2 = atk_relation_type_for_name ("test_state"); + type2 = atk_relation_type_for_name ("test-state"); if (type1 != type2) { - g_print ("Unexpected type for test_state\n"); + g_print ("Unexpected type for test-state\n"); return FALSE; } - type2 = atk_relation_type_for_name ("TEST-STATE"); + type2 = atk_relation_type_for_name ("TEST_STATE"); if (type2 != 0) { - g_print ("Unexpected type for TEST-STATE\n"); + g_print ("Unexpected type for TEST_STATE\n"); return FALSE; } /* @@ -78,7 +78,7 @@ test_relation (void) name = atk_relation_type_get_name (ATK_RELATION_LAST_DEFINED + 2); if (name) { - g_print ("Unexpected name for undefined type\n"); + g_print ("Unexpected name for undefined type %s\n", name); return FALSE; } return TRUE; diff --git a/tests/teststateset.c b/tests/teststateset.c index 05718b7..b9cb8ce 100644 --- a/tests/teststateset.c +++ b/tests/teststateset.c @@ -233,25 +233,25 @@ test_state (void) return FALSE; } - type1 = atk_state_type_register ("test_state"); + type1 = atk_state_type_register ("test-state"); name = atk_state_type_get_name (type1); g_return_val_if_fail (name, FALSE); - if (strcmp (name, "test_state") != 0) + if (strcmp (name, "test-state") != 0) { - g_print ("Unexpected name for test_state %s\n", name); + g_print ("Unexpected name for test-state %s\n", name); return FALSE; } - type2 = atk_state_type_for_name ("test_state"); + type2 = atk_state_type_for_name ("test-state"); g_return_val_if_fail (name, FALSE); if (type1 != type2) { - g_print ("Unexpected type for test_state\n"); + g_print ("Unexpected type for test-state %d %d\n", type1, type2); return FALSE; } - type2 = atk_state_type_for_name ("TEST-STATE"); + type2 = atk_state_type_for_name ("TEST_STATE"); if (type2 != 0) { - g_print ("Unexpected type for TEST-STATE\n"); + g_print ("Unexpected type for TEST_STATE\n"); return FALSE; } /* -- cgit v1.2.1