+static void
+register_with_toolkits (Registry *registry_bonobo_object, EventTypeStruct *etype, CORBA_Environment *ev)
+{
+ gint n_desktops;
+ gint n_apps;
+ gint i, j;
+ Accessibility_Desktop desktop;
+ Accessibility_Application app;
+ Accessibility_Registry registry;
+ registry = bonobo_object_corba_objref (bonobo_object (registry_bonobo_object));
+
+ /* for each app in each desktop, call ...Application_registerToolkitEventListener */
+
+ n_desktops = Accessibility_Registry_getDesktopCount (registry, ev);
+
+ for (i=0; i<n_desktops; ++i)
+ {
+ desktop = Accessibility_Registry_getDesktop (registry, i, ev);
+ n_apps = Accessibility_Desktop__get_childCount (desktop, ev);
+ for (j=0; j<n_apps; ++j)
+ {
+ app = (Accessibility_Application) Accessibility_Desktop_getChildAtIndex (desktop,
+ j,
+ ev);
+ /* TODO: should we be ref-ing the registry object before each call ? */
+ Accessibility_Application_registerToolkitEventListener (app,
+ registry,
+ CORBA_string_dup (etype->event_name),
+ ev);
+ }
+ }
+}
+