int main (int argc, char *argv[]) { ClutterActor *stage = NULL; Data data1, data2,data3; guint id_2 = 0; g_set_application_name ("AtkText"); if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; if (cally_util_a11y_init (&argc, &argv) == FALSE) { g_error ("This example requires the accessibility support, " "especifically AtkUtil implementation loaded, " "as it tries to register and remove event listeners"); } data1.value = 10; data2.value = 20; data3.value = 30; /* key event listeners */ atk_add_key_event_listener ((AtkKeySnoopFunc)atk_key_listener, &data1); id_2 = atk_add_key_event_listener ((AtkKeySnoopFunc)atk_key_listener, &data2); atk_add_key_event_listener ((AtkKeySnoopFunc)atk_key_listener, &data3); atk_remove_key_event_listener (id_2); /* event listeners */ atk_add_global_event_listener (window_event_listener, "window:create"); atk_add_global_event_listener (window_event_listener, "window:destroy"); atk_add_global_event_listener (window_event_listener, "window:activate"); atk_add_global_event_listener (window_event_listener, "window:deactivate"); stage = clutter_stage_get_default (); make_ui (stage); clutter_actor_show_all (stage); if (clutter_feature_available (CLUTTER_FEATURE_STAGE_MULTIPLE)) { stage = clutter_stage_new (); make_ui (stage); clutter_actor_show_all (stage); } clutter_main (); return 0; }
int main (int argc, char *argv[]) { ClutterActor *stage = NULL; Data data1, data2,data3; guint id_2 = 0; g_set_application_name ("AtkText"); if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; cally_util_a11y_init (&argc, &argv); data1.value = 10; data2.value = 20; data3.value = 30; /* key event listeners */ atk_add_key_event_listener ((AtkKeySnoopFunc)atk_key_listener, &data1); id_2 = atk_add_key_event_listener ((AtkKeySnoopFunc)atk_key_listener, &data2); atk_add_key_event_listener ((AtkKeySnoopFunc)atk_key_listener, &data3); atk_remove_key_event_listener (id_2); /* event listeners */ atk_add_global_event_listener (window_event_listener, "window:create"); atk_add_global_event_listener (window_event_listener, "window:destroy"); atk_add_global_event_listener (window_event_listener, "window:activate"); atk_add_global_event_listener (window_event_listener, "window:deactivate"); stage = clutter_stage_get_default (); make_ui (stage); clutter_actor_show_all (stage); if (clutter_feature_available (CLUTTER_FEATURE_STAGE_MULTIPLE)) { stage = clutter_stage_new (); make_ui (stage); clutter_actor_show_all (stage); } clutter_main (); return 0; }
void connectAccessibilityCallbacks() { // Ensure no callbacks are connected before. if (!disconnectAccessibilityCallbacks()) return; // Ensure that accessibility is initialized for the WebView by querying for // the root accessible object, which will create the full hierarchy. #if PLATFORM(GTK) DumpRenderTreeSupportGtk::getRootAccessibleElement(mainFrame); #elif PLATFORM(EFL) DumpRenderTreeSupportEfl::rootAccessibleElement(browser->mainFrame()); #endif // Add global listeners for AtkObject's signals. stateChangeListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:state-change"); focusEventListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:focus-event"); activeDescendantChangedListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:active-descendant-changed"); childrenChangedListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:children-changed"); propertyChangedListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:property-change"); visibleDataChangedListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:visible-data-changed"); loadCompleteListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkDocument:load-complete"); // Ensure the Atk interface types are registered, otherwise // the AtkDocument signal handlers below won't get registered. GObject* dummyAxObject = G_OBJECT(g_object_new(ATK_TYPE_OBJECT, 0)); AtkObject* dummyNoOpAxObject = atk_no_op_object_new(dummyAxObject); g_object_unref(G_OBJECT(dummyNoOpAxObject)); g_object_unref(dummyAxObject); }
void AccessibilityNotificationHandler::connectAccessibilityCallbacks() { // Ensure no callbacks are connected before. if (!disconnectAccessibilityCallbacks()) return; // Add global listeners for AtkObject's signals. stateChangeListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:state-change"); focusEventListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:focus-event"); activeDescendantChangedListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:active-descendant-changed"); childrenChangedListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:children-changed"); propertyChangedListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:property-change"); visibleDataChangedListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkObject:visible-data-changed"); loadCompleteListenerId = atk_add_global_event_listener(axObjectEventListener, "ATK:AtkDocument:load-complete"); }
static void impl_accessibility_application_register_toolkit_event_listener (PortableServer_Servant servant, Accessibility_EventListener listener, const CORBA_char *event_name, CORBA_Environment *ev) { guint spi_listener_id; spi_listener_id = atk_add_global_event_listener (spi_application_toolkit_event_listener, event_name); the_app->toolkit_listeners = g_list_append (the_app->toolkit_listeners, CORBA_Object_duplicate (listener, ev)); #ifdef SPI_DEBUG fprintf (stderr, "registered %d for toolkit events named: %s\n", spi_listener_id, event_name); #endif }
static void _check_toplevel (AtkObject *obj) { AtkObject *root_obj; const gchar *name_string, *version_string; gint max_depth; g_print ("Start of _check_toplevel\n"); root_obj = atk_get_root(); if (!already_accessed_atk_object(root_obj)) { g_signal_connect_closure (root_obj, "children_changed::add", g_cclosure_new (G_CALLBACK (_notify_toplevel_child_added), NULL, NULL), FALSE); g_signal_connect_closure (root_obj, "children_changed::remove", g_cclosure_new (G_CALLBACK (_notify_toplevel_child_removed), NULL, NULL), FALSE); } name_string = atk_get_toolkit_name(); version_string = atk_get_toolkit_version(); g_print ("Toolkit name <%s> version <%s>\n", name_string, version_string); if (g_getenv("TEST_ACCESSIBLE_DEPTH") != NULL) max_depth = string_to_int(g_getenv("TEST_ACCESSIBLE_DEPTH")); else max_depth = 2; display_children_to_depth(root_obj, max_depth, 0, 0); g_print ("End of _check_toplevel\n"); if (!g_register_listener) { g_print("Adding global event listener on buttons\n"); g_register_listener = TRUE; g_signal_listener = atk_add_global_event_listener(_button_press_event_watcher, "Gtk:GtkButton:pressed"); } }
void AccessibilityNotificationHandler::connectAccessibilityCallbacks() { // Ensure no callbacks are connected before. if (!disconnectAccessibilityCallbacks()) return; const char* signalNames[] = { "ATK:AtkObject:state-change", "ATK:AtkObject:focus-event", "ATK:AtkObject:active-descendant-changed", "ATK:AtkObject:children-changed", "ATK:AtkObject:property-change", "ATK:AtkObject:visible-data-changed", "ATK:AtkDocument:load-complete", "ATK:AtkSelection:selection-changed", "ATK:AtkText:text-caret-moved", "ATK:AtkText:text-insert", "ATK:AtkText:text-remove", 0 }; // Register atk interfaces, otherwise add_global may fail. GObject* dummyObject = (GObject*)g_object_new(G_TYPE_OBJECT, NULL, NULL); g_object_unref(atk_no_op_object_new(dummyObject)); g_object_unref(dummyObject); // Add global listeners for AtkObject's signals. for (const char** signalName = signalNames; *signalName; signalName++) { unsigned id = atk_add_global_event_listener(axObjectEventListener, *signalName); if (!id) { String message = String::format("atk_add_global_event_listener failed for signal %s\n", *signalName); InjectedBundle::singleton().outputText(message); continue; } listenerIds.append(id); } }