收集一个应用程序的辅助信息
程序若想利用 ATK 调用,需要做下列一件(或以上)的事情:
-
创建一个事件监视器,比如使用 atk_add_focus_tracker() 函数:
atk_add_focus_tracker (_my_focus_tracker);
_my_focus_tracker() 函数原型:
void _my_focus_tracker (AtkObject *aobject);
-
建立一个全局事件监听器,使用 atk_add_global_event_listener():
mouse_watcher_focus_id = atk_add_global_event_listener(_my_global_listener,"Gtk:GtkWidget:enter_notify_event");
_my_global_listener 拥有一个 Glib GSignalEmissionHook 原型。这个例子说明,一个 GtkWidget 对象无论何时触发一个 enter_notify_even 信号,都会调用 _my_global_listener()。
-
下列函数调用可以访问 ATK 顶层对象。
AtkObject *root_obj = atk_get_root();
This returns an AtkObject which contains all toplevel windows in the currently running program. The user could then navigate through the object hierarchy by accessing the root object's children, which corresponds to the toplevel windows.