Initial commit
[atksocket-atkplug-example:mainline.git] / README
1 This is a small C example to test how to work with the AtkSocket and
2 AtkPlug classes from ATK, based on the one written in C# by Mike
3 Gorse, which can be downloaded from here:
4
5   http://mgorse.freeshell.org/plug-socket-test.tar.gz
6
7 An important requirement for the communication between the socket and
8 the plug to work is to have at-spi2 installed (and the registry daemon
9 running), as well as the at-spi2-atk bridge, which is what actually
10 implements the atk_socket_embed() and the atk_plug_get_id() methods-
11
12 The way I'm currently testing is, basically by:
13
14   1) Compile the socket and the plug test applications separately:
15
16     $ cd socket/
17     $ make
18
19     $ cd plug/
20     $ make
21
22   2) Ensure the at-spi2 registry daemon is running before executing
23   the test applications. I do it manually from my jhbuild environment:
24
25     $ jhbuild run /opt/gnome3/libexec/at-spi-bus-launcher --launch-inmediately
26     $ jhbuild run /opt/gnome3/libexec/at-spi2-registryd
27
28   ...but perhaps you already have it running so you can skip this step.
29
30   3) Run the socket and the plug test applications, in separate
31   terminals, loading the needed GTK modules for a11y stuff:
32
33     $ GTK_MODULES=gail:atk-bridge socket/ta-socket
34
35     $ GTK_MODULES=gail:atk-bridge plug/ta-plug
36
37   4) Grab the Plug ID shown by the ta-plug application, paste it in
38   the empty entry in the ta-socket application and press "Connect".
39
40   5) Open Accerciser and you should see two applications like this::
41
42        ta-plug: will show the AtkObject's for all its widgets as every
43        -------- regular GTK application does.
44
45      ta-socket: will show the AtkObject's for all its widgets as
46      ---------- every regular GTK application does but also, hanging
47                 as a child for the panel named as "The Socket", the
48                 full accessible hierarchy from ta-plug, starting in
49                 the AtkObject named as "The Plug".