Initial revision
[platform/core/uifw/at-spi2-atk.git] / test / at.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <libbonobo.h>
4 #include "Registry.h"
5 #include "Event.h"
6 #include "accessible.h"
7 #include "listener.h"
8 #include "desktop.h"
9
10 int
11 main(int argc, char **argv)
12 {
13         CORBA_Environment ev;
14         CORBA_Object oclient;
15         char *obj_id;
16         CORBA_long i;
17         CORBA_short n_desktops;
18         CORBA_long j;
19         CORBA_long n_apps;
20         Accessibility_Desktop desktop;
21         Accessibility_Application app;
22
23         Accessibility_Registry registry;
24         Listener *listener;
25
26         CORBA_exception_init(&ev);
27
28         if (!bonobo_init (&argc, argv))
29           {
30             g_error ("Could not initialize Bonobo");
31           }
32
33         obj_id = "OAFIID:Accessibility_Registry:proto0.1";
34
35         oclient = oaf_activate_from_id (obj_id, 0, NULL, &ev);
36         if (ev._major != CORBA_NO_EXCEPTION) {
37                 fprintf(stderr,
38                 ("Accessibility app error: exception during registry activation from id: %s\n"),
39                         CORBA_exception_id(&ev));
40                 CORBA_exception_free(&ev);
41                 exit(-1);
42         }
43
44         if (CORBA_Object_is_nil (oclient, &ev))
45           {
46             g_error ("Could not locate registry");
47           }
48
49         bonobo_activate ();
50
51         listener = listener_new ();
52
53         registry = (Accessibility_Registry) oclient;
54
55         Accessibility_Registry_registerGlobalEventListener
56                                    (registry,
57                                     (Accessibility_EventListener)
58                                          bonobo_object_corba_objref (bonobo_object (listener)),
59                                     "test",
60                                     &ev);
61
62         fprintf (stderr, "AT callback registered.\n");
63
64
65             n_desktops = Accessibility_Registry_getDesktopCount (registry, &ev);
66
67             for (i=0; i<n_desktops; ++i)
68               {
69                 desktop = Accessibility_Registry_getDesktop (registry, i, &ev);
70                 fprintf (stderr, "desktop %d name: %s\n", i,
71                          Accessibility_Desktop__get_name (desktop, &ev));
72                 n_apps = Accessibility_Desktop__get_childCount (desktop, &ev);
73                 fprintf (stderr, "desktop has %d apps:\n", n_apps);
74                 for (j=0; j<n_apps; ++j)
75                   {
76                     app = (Accessibility_Application) Accessibility_Desktop_getChildAtIndex (desktop, j, &ev);
77                     fprintf (stderr, "app %d name: %s\n", j,
78                              Accessibility_Application__get_name (app, &ev));
79                   }
80               }
81
82             fprintf (stderr, "finished querying desktop(s).\n");
83             bonobo_main ();
84                /* needed by at because it is a server ? */
85         exit(0);
86 }