2 #include "testtextlib.h"
4 #define NUM_VALID_ROLES 6
6 static void _create_event_watcher (void);
7 static void _check_text (AtkObject *obj);
8 void runtest(AtkObject *, gint);
11 static guint win_count = 0;
13 static void _check_text (AtkObject *in_obj)
15 AtkObject *obj = NULL;
18 AtkRole valid_roles[NUM_VALID_ROLES];
20 if (g_getenv("TEST_ACCESSIBLE_DELAY") != NULL)
22 int max_cnt = string_to_int(g_getenv("TEST_ACCESSIBLE_DELAY"));
24 if (win_count <= max_cnt)
30 valid_roles[0] = ATK_ROLE_TEXT;
31 valid_roles[1] = ATK_ROLE_LABEL;
32 valid_roles[2] = ATK_ROLE_ACCEL_LABEL;
33 valid_roles[3] = ATK_ROLE_PASSWORD_TEXT;
34 valid_roles[4] = ATK_ROLE_TABLE_CELL;
35 valid_roles[5] = ATK_ROLE_PANEL;
37 /* The following if/else grabs the windows name, or sets title to NULL if none. */
47 widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (in_obj));
51 toplevel = gtk_widget_get_toplevel (widget);
52 if (GTK_IS_WINDOW (toplevel))
53 title = (gchar *) gtk_window_get_title (GTK_WINDOW (toplevel));
57 /* If no window name, do nothing */
61 * If testtext test program, find obj just by role since only one child
64 else if (g_ascii_strncasecmp(title, "testtext", 7) == 0)
66 obj = find_object_by_role(in_obj, valid_roles, NUM_VALID_ROLES);
69 * Otherwise, get obj by name and role so you can specify exactly which
74 const gchar *test_accessible_name = g_getenv ("TEST_ACCESSIBLE_NAME");
76 if (test_accessible_name != NULL)
78 obj = find_object_by_accessible_name_and_role(in_obj,
79 test_accessible_name, valid_roles, NUM_VALID_ROLES);
83 if (atk_object_get_role (obj) == ATK_ROLE_PANEL)
85 /* Get the child and check whether it is a label */
87 obj = atk_object_ref_accessible_child (obj, 0);
88 g_assert (atk_object_get_role (obj) == ATK_ROLE_LABEL);
91 g_print("Found valid name and role in child!\n");
95 obj = find_object_by_role(in_obj, valid_roles, NUM_VALID_ROLES - 1);
97 g_print("Found valid role in child\n");
102 g_print("Object not found\n");
105 role = atk_object_get_role(obj);
107 g_print("_check_text - Found role type %s!\n\n", atk_role_get_name (role));
111 if (!(isVisibleDialog()))
112 setup_gui(obj, runtest);
113 atk_remove_focus_tracker (id1);
117 _create_event_watcher (void)
119 id1 = atk_add_focus_tracker (_check_text);
123 gtk_module_init(gint argc, char* argv[])
125 g_print("testtext Module loaded.\n");
126 _create_event_watcher();