5 static CORBA_Environment ev;
6 static AccessibilityRegistry registry;
9 Obj_Add (Accessible object)
11 /* TODO: keep list of live object refs */
12 Accessible *oref = g_malloc (sizeof (Accessible));
19 * Basic SPI initialization and event loop function prototypes
30 CORBA_exception_init(&ev);
32 if (!bonobo_init (&argc, NULL))
34 g_error ("Could not initialize Bonobo");
37 obj_id = "OAFIID:Accessibility_Registry:proto0.1";
39 oclient = bonobo_activation_activate_from_id (obj_id, 0, NULL, &ev);
40 if (ev._major != CORBA_NO_EXCEPTION) {
42 ("AT-SPI error: during registry activation: %s\n"),
43 CORBA_exception_id(&ev));
44 CORBA_exception_free(&ev);
48 if (CORBA_Object_is_nil (oclient, &ev))
50 g_error ("Could not locate registry");
54 registry = (Accessibility_Registry) oclient;
62 SPI_event_main (boolean isGNOMEApp)
64 if (isGNOMEApp) bonobo_main();
65 else CORBA_ORB_run (bonobo_orb(), &ev);
68 /* Not Yet Implemented */
75 /* Not Yet Implemented */
77 SPI_nextEvent (boolean waitForEvent)
88 AccessibleEventListener *
89 createEventListener (AccessibleEventListenerCB callback)
91 AccessibleEventListener *listener = accessible_event_listener_new ();
94 accessible_event_listener_add_callback (listener, callback);
100 EventListener_addCallback (AccessibleEventListener *listener,
101 AccessibleEventListenerCB callback)
103 accessible_event_listener_add_callback (listener, callback);
108 EventListener_removeCallback (AccessibleEventListener *listener,
109 AccessibleEventListenerCB callback)
111 accessible_event_listener_remove_callback (listener, callback);
117 * Global functions serviced by the registry
122 registerGlobalEventListener (AccessibleEventListener *listener,
125 Accessibility_Registry_registerGlobalEventListener (
127 (Accessibility_EventListener)
128 bonobo_object_corba_objref (bonobo_object (listener)),
132 if (ev._major != CORBA_NO_EXCEPTION)
145 return Accessibility_Registry_getDesktopCount (registry, &ev);
151 return Obj_Add (Accessibility_Registry_getDesktop (registry, (CORBA_short) n, &ev));
155 getDesktopList (Accessible **list)
161 /* Not Yet Implemented */
163 registerKeystrokeListener (KeystrokeListener *listener)
168 /* Not Yet Implemented */
170 generateKeyEvent (long keyCode, long meta)
175 /* Not Yet Implemented */
177 generateMouseEvent (long x, long y, char *name)
184 * Accessible function prototypes
189 Accessible_ref (Accessible *obj)
191 Accessibility_Accessible_ref (*obj, &ev);
197 Accessible_unref (Accessible *obj)
199 Accessibility_Accessible_unref (*obj, &ev);
204 Accessible_getName (Accessible *obj)
206 return Accessibility_Accessible__get_name (*obj, &ev);
210 Accessible_getDescription (Accessible *obj)
212 return Accessibility_Accessible__get_description (*obj, &ev);
216 Accessible_getParent (Accessible *obj)
218 return Obj_Add (Accessibility_Accessible__get_parent (*obj, &ev));
222 Accessible_getChildCount (Accessible *obj)
224 return Accessibility_Accessible__get_childCount (*obj, &ev);
228 Accessible_getChildAtIndex (Accessible *obj,
231 return Obj_Add (Accessibility_Accessible_getChildAtIndex (*obj, childIndex, &ev));
235 Accessible_getIndexInParent (Accessible *obj)
237 return Accessibility_Accessible_getIndexInParent (*obj, &ev);
240 /* Not Yet Implemented */
241 AccessibleRelation **
242 Accessible_getRelationSet (Accessible *obj)
247 /* Not Yet Implemented */
249 Accessible_getRole (Accessible *obj)
254 /* Not Yet Implemented */
256 Accessible_getStateSet (Accessible *obj)
261 /* Interface query methods */
264 Accessible_isComponent (Accessible *obj)
266 Bonobo_Unknown iface =
267 Accessibility_Accessible_queryInterface (*obj,
268 "IDL:Accessibility/Component:1.0",
270 return (iface != NULL) ? TRUE : FALSE;
273 AccessibleComponent *
274 Accessible_getComponent (Accessible *obj)
276 AccessibleComponent iface =
277 Accessibility_Accessible_queryInterface (*obj,
278 "IDL:Accessibility/Component:1.0",
280 return Obj_Add (iface);
284 Accessible_queryInterface (Accessible *obj, char *interface_name)
286 GenericInterface iface;
287 iface = Accessibility_Accessible_queryInterface (*obj,
290 return (iface != NULL) ? Obj_Add (iface) : NULL;
295 * AccessibleApplication function prototypes
300 AccessibleApplication_ref (AccessibleApplication *obj)
302 Accessibility_Application_ref (*obj, &ev);
307 AccessibleApplication_unref (AccessibleApplication *obj)
309 Accessibility_Application_unref (*obj, &ev);
314 AccessibleApplication_getToolkitName (AccessibleApplication *obj)
316 return Accessibility_Application__get_toolkitName (*obj, &ev);
320 AccessibleApplication_getVersion (AccessibleApplication *obj)
322 return Accessibility_Application__get_version (*obj, &ev);
326 AccessibleApplication_getID (AccessibleApplication *obj)
328 return Accessibility_Application__get_id (*obj, &ev);
331 /* Not Yet Implemented */
333 AccessibleApplication_pause (AccessibleApplication *obj)
338 /* Not Yet Implemented */
340 AccessibleApplication_resume (AccessibleApplication *obj)
347 * AccessibleComponent function implementations
352 AccessibleComponent_ref (AccessibleComponent *obj)
354 Accessibility_Component_ref (*obj, &ev);
359 AccessibleComponent_unref (AccessibleComponent *obj)
361 Accessibility_Component_unref (*obj, &ev);
366 AccessibleComponent_contains (AccessibleComponent *obj,
369 AccessibleCoordType ctype)
371 return Accessibility_Component_contains (*obj,
379 AccessibleComponent_getAccessibleAtPoint (AccessibleComponent *obj,
382 AccessibleCoordType ctype)
385 child = Accessibility_Component_getAccessibleAtPoint(*obj,
390 return (child != NULL) ? Obj_Add (child) : NULL;
394 AccessibleComponent_getExtents (AccessibleComponent *obj,
399 AccessibleCoordType ctype)
401 /* TODO: remove assumption that CORBA_long == long in typecast */
402 Accessibility_Component_getExtents (*obj,
405 (CORBA_long *) width,
406 (CORBA_long *) height,
412 AccessibleComponent_getPosition (AccessibleComponent *obj,
415 AccessibleCoordType ctype)
417 Accessibility_Component_getPosition (*obj,
425 AccessibleComponent_getSize (AccessibleComponent *obj,
429 Accessibility_Component_getSize (*obj,
430 (CORBA_long *) width,
431 (CORBA_long *) height,
435 /* Not Yet Implemented */
437 AccessibleComponent_grabFocus (AccessibleComponent *obj)