JNIEXPORT jboolean JNICALL Java_org_gnome_atk_AtkAction_atk_1action_1do_1action ( JNIEnv* env, jclass cls, jlong _self, jint _i ) { gboolean result; jboolean _result; AtkAction* self; gint i; // convert parameter self self = (AtkAction*) _self; // convert parameter i i = (gint) _i; // call function result = atk_action_do_action(self, i); // cleanup parameter self // cleanup parameter i // translate return value to JNI type _result = (jboolean) result; // and finally return _result; }
static DBusMessage * impl_DoAction (DBusConnection * bus, DBusMessage * message, void *user_data) { AtkAction *action = (AtkAction *) user_data; dbus_int32_t index; dbus_bool_t rv = TRUE; DBusMessage *reply; g_return_val_if_fail (ATK_IS_ACTION (user_data), droute_not_yet_handled_error (message)); if (!dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &index, DBUS_TYPE_INVALID)) { return droute_invalid_arguments_error (message); } reply = dbus_message_new_method_return (message); if (reply) { dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &rv, DBUS_TYPE_INVALID); } dbus_connection_send (bus, reply, NULL); dbus_message_unref (reply); atk_action_do_action (action, index); return NULL; }
static gint _do_menu_item_action (gpointer data) { AtkObject *obj = ATK_OBJECT (data); atk_action_do_action (ATK_ACTION (obj), 0); return FALSE; }
void AccessibilityUIElement::press() { if (!ATK_IS_ACTION(m_element.get())) return; // Only one action per object is supported so far. atk_action_do_action(ATK_ACTION(m_element.get()), 0); }
static gint _open_combo_list (gpointer data) { AtkObject *obj = ATK_OBJECT (data); g_print ("_open_combo_list\n"); atk_action_do_action (ATK_ACTION (obj), 0); g_timeout_add (5000, _close_combo_list, obj); return FALSE; }
void AccessibilityUIElement::press() { if (!m_element) return; ASSERT(ATK_IS_OBJECT(m_element)); if (!ATK_IS_ACTION(m_element)) return; // Only one action per object is supported so far. atk_action_do_action(ATK_ACTION(m_element), 0); }
static gint _close_combo_list (gpointer data) { AtkObject *obj = ATK_OBJECT (data); gint count; gint n_children; AtkObject *list; count = atk_selection_get_selection_count (ATK_SELECTION (obj)); g_return_val_if_fail (count == 0, FALSE); list = atk_object_ref_accessible_child (obj, 0); n_children = atk_object_get_n_accessible_children (list); g_object_unref (G_OBJECT (list)); atk_selection_add_selection (ATK_SELECTION (obj), n_children - 1); atk_action_do_action (ATK_ACTION (obj), 0); return FALSE; }
static void _test_slideshow_object(AtkObject *obj) { int child_count, selection_count, action_count; AtkObject *child, *selection; gboolean result; const gchar *action_name, *action_description; /*sometimes this is called several times*/ static int tested = 0; fprintf(stdout, "Testing slideshow\n"); if (tested > 0) return; tested++; g_object_ref(obj); g_assert(eailu_is_object_with_role(obj, ATK_ROLE_LIST)); child_count = atk_object_get_n_accessible_children(obj); g_assert(child_count == 9); for (int i = 0; i < child_count; i++) { child = atk_object_ref_accessible_child(obj, i); AtkRole role = atk_object_get_role(child); fprintf(stdout, "index %d child role: %s\n", i, atk_role_get_name(role)); g_assert(eailu_is_object_with_role(child, ATK_ROLE_IMAGE)); g_object_unref(child); } /*test AtkSelectionIface*/ g_assert(ATK_IS_SELECTION(obj)); selection = atk_selection_ref_selection(ATK_SELECTION(obj), 0); /*this may fail due to a problem with slideshow cache*/ g_assert(ATK_IS_OBJECT(selection)); g_assert(eailu_is_object_with_role(selection, ATK_ROLE_IMAGE)); g_object_unref(selection); selection_count = atk_selection_get_selection_count(ATK_SELECTION(obj)); g_assert(selection_count == 1); result = atk_selection_add_selection(ATK_SELECTION(obj), 5); g_assert(result); result = atk_selection_is_child_selected(ATK_SELECTION(obj), 5); g_assert(result); /*test AtkActionIface*/ g_assert(ATK_IS_ACTION(obj)); /* test set/get action description */ eailu_test_action_description_all(ATK_ACTION(obj)); action_count = atk_action_get_n_actions(ATK_ACTION(obj)); g_assert(4 == action_count); action_name = atk_action_get_name(ATK_ACTION(obj), 0); g_assert(!strcmp("next", action_name)); action_name = atk_action_get_name(ATK_ACTION(obj), 1); g_assert(!strcmp("previous", action_name)); result = atk_action_set_description(ATK_ACTION(obj), 2, "start the slideshow"); g_assert(result); action_description = atk_action_get_description(ATK_ACTION(obj), 2); g_assert(!strcmp("start the slideshow", action_description)); result = atk_action_do_action(ATK_ACTION(obj), 0); g_assert(result); result = atk_selection_is_child_selected(ATK_SELECTION(obj), 6); g_assert(result); eailu_test_atk_focus(obj, TRUE); g_object_unref(obj); eail_test_code_called = TRUE; }
static void _check_object (AtkObject *obj) { AtkRole role; static G_CONST_RETURN char *name = NULL; static gboolean first_time = TRUE; role = atk_object_get_role (obj); if (role == ATK_ROLE_FRAME) /* * Find the specified menu item */ { AtkRole valid_roles[NUM_VALID_ROLES]; AtkObject *atk_menu_item; GtkWidget *widget; if (name == NULL) { valid_roles[0] = ATK_ROLE_MENU_ITEM; name = g_getenv ("TEST_ACCESSIBLE_NAME"); if (name == NULL) name = "foo"; } atk_menu_item = find_object_by_accessible_name_and_role (obj, name, valid_roles, NUM_VALID_ROLES); if (atk_menu_item == NULL) { g_print ("Object not found for %s\n", name); return; } g_assert (GTK_IS_ACCESSIBLE (atk_menu_item)); widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_menu_item)); g_assert (GTK_IS_MENU_ITEM (widget)); if (first_time) first_time = FALSE; else return; /* * This action opens the menu whose name is "foo" or whatever * was specified in the environment variable TEST_ACCESSIBLE_NAME */ atk_action_do_action (ATK_ACTION (atk_menu_item), 0); } else if ((role == ATK_ROLE_MENU_ITEM) || (role == ATK_ROLE_CHECK_MENU_ITEM) || (role == ATK_ROLE_RADIO_MENU_ITEM) || (role == ATK_ROLE_TEAR_OFF_MENU_ITEM)) { G_CONST_RETURN char *keybinding; G_CONST_RETURN char *accessible_name; accessible_name = atk_object_get_name (obj); if (accessible_name) g_print ("Name: %s\n", accessible_name); g_print ("Action: %s\n", atk_action_get_name (ATK_ACTION (obj), 0)); keybinding = atk_action_get_keybinding (ATK_ACTION (obj), 0); if (keybinding) g_print ("KeyBinding: %s\n", keybinding); /* * Do the action associated with the menu item once, otherwise * we get into a loop */ if (strcmp (name, accessible_name) == 0) { if (first_time) first_time = FALSE; else return; if (g_getenv ("TEST_ACCESSIBLE_AUTO")) { g_idle_add (_do_menu_item_action, obj); } } } else { G_CONST_RETURN char *accessible_name; accessible_name = atk_object_get_name (obj); if (accessible_name) g_print ("Name: %s\n", accessible_name); else if (GTK_IS_ACCESSIBLE (obj)) { GtkWidget *widget; widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj)); g_print ("Type: %s\n", g_type_name (G_OBJECT_TYPE (widget))); } } }
static void _check_object (AtkObject *obj) { AtkRole role; static G_CONST_RETURN char *name = NULL; static gboolean first_time = TRUE; role = atk_object_get_role (obj); if (role == ATK_ROLE_PUSH_BUTTON) /* * Find the specified optionmenu item */ { AtkRole valid_roles[NUM_VALID_ROLES]; AtkObject *atk_option_menu; GtkWidget *widget; if (name == NULL) { name = g_getenv ("TEST_ACCESSIBLE_NAME"); if (name == NULL) name = "foo"; } valid_roles[0] = ATK_ROLE_PUSH_BUTTON; atk_option_menu = find_object_by_accessible_name_and_role (obj, name, valid_roles, NUM_VALID_ROLES); if (atk_option_menu == NULL) { g_print ("Object not found for %s\n", name); return; } else { g_print ("Object found for %s\n", name); } g_assert (GTK_IS_ACCESSIBLE (atk_option_menu)); widget = GTK_ACCESSIBLE (atk_option_menu)->widget; g_assert (GTK_IS_OPTION_MENU (widget)); if (first_time) first_time = FALSE; else return; /* * This action opens the GtkOptionMenu whose name is "foo" or whatever * was specified in the environment variable TEST_ACCESSIBLE_NAME */ atk_action_do_action (ATK_ACTION (atk_option_menu), 0); } else if ((role == ATK_ROLE_MENU_ITEM) || (role == ATK_ROLE_CHECK_MENU_ITEM) || (role == ATK_ROLE_RADIO_MENU_ITEM) || (role == ATK_ROLE_TEAR_OFF_MENU_ITEM)) { AtkObject *parent, *child; AtkRole parent_role; /* * If we receive focus while waiting for the menu to be closed * we return immediately */ if (doing_action) return; parent = atk_object_get_parent (obj); parent_role = atk_object_get_role (parent); g_assert (parent_role == ATK_ROLE_MENU); child = atk_object_ref_accessible_child (parent, 1); doing_action = TRUE; gtk_timeout_add (5000, _do_menu_item_action, child); } else { G_CONST_RETURN char *accessible_name; accessible_name = atk_object_get_name (obj); if (accessible_name) { g_print ("Name: %s\n", accessible_name); } else if (GTK_IS_ACCESSIBLE (obj)) { GtkWidget *widget = GTK_ACCESSIBLE (obj)->widget; g_print ("Type: %s\n", g_type_name (G_OBJECT_TYPE (widget))); } if (role == ATK_ROLE_TABLE) { gint n_cols, i; n_cols = atk_table_get_n_columns (ATK_TABLE (obj)); g_print ("Number of Columns: %d\n", n_cols); for (i = 0; i < n_cols; i++) { AtkObject *header; header = atk_table_get_column_header (ATK_TABLE (obj), i); g_print ("header: %s %s\n", g_type_name (G_OBJECT_TYPE (header)), atk_object_get_name (header)); } } } }