* AT-SPI - Assistive Technology Service Provider Interface
* (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
*
- * Copyright 2001 Sun Microsystems Inc.
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* Boston, MA 02111-1307, USA.
*/
-#ifndef REGISTRY_H_
-#define REGISTRY_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+#ifndef SPI_REGISTRY_H_
+#define SPI_REGISTRY_H_
#include <glib/gmain.h>
-#include <libspi/Accessibility.h>
-#include "listener.h"
+#include <droute/droute.h>
+
+typedef struct _SpiRegistry SpiRegistry;
+
#include "desktop.h"
#include "deviceeventcontroller.h"
-#define REGISTRY_TYPE (registry_get_type ())
-#define REGISTRY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), REGISTRY_TYPE, Registry))
-#define REGISTRY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), REGISTRY_TYPE, RegistryClass))
-#define IS_REGISTRY(o) (G_TYPE_CHECK__INSTANCE_TYPE ((o), REGISTRY_TYPE))
-#define IS_REGISTRY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), REGISTRY_TYPE))
+G_BEGIN_DECLS
-typedef struct {
- Listener parent;
- GList *focus_listeners;
- GList *window_listeners;
- GList *toolkit_listeners;
- GList *applications;
- DeviceEventController *device_event_controller;
- Desktop *desktop;
- gboolean (*kbd_event_hook) (gpointer source);
-} Registry;
+#define SPI_REGISTRY_TYPE (spi_registry_get_type ())
+#define SPI_REGISTRY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SPI_REGISTRY_TYPE, SpiRegistry))
+#define SPI_REGISTRY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SPI_REGISTRY_TYPE, SpiRegistryClass))
+#define SPI_IS_REGISTRY(o) (G_TYPE_CHECK__INSTANCE_TYPE ((o), SPI_REGISTRY_TYPE))
+#define SPI_IS_REGISTRY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SPI_REGISTRY_TYPE))
+
+struct _SpiRegistry {
+ GObject parent;
+
+ GList *object_listeners;
+ GList *window_listeners;
+ GList *toolkit_listeners;
+ GQueue *deferred_event_queue;
+ gboolean is_queueing;
+ guint exit_notify_timeout;
+ guint queue_handler_id;
+ char *focus_object_bus;
+ char *focus_object_path;
+ SpiDEController *de_controller;
+ SpiDesktop *desktop;
+ DRouteData droute;
+};
typedef struct {
- ListenerClass parent_class;
- POA_Accessibility_Registry__epv epv;
-} RegistryClass;
+ GObjectClass parent_class;
+} SpiRegistryClass;
+
+GType spi_registry_get_type (void);
+SpiRegistry *spi_registry_new (void);
-GType registry_get_type (void);
-Registry *registry_new (void);
+void spi_registry_emit(SpiRegistry *registry, const char *name, int first_arg_type, ...);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+void spi_registry_initialize_registry_interface (DRouteData * data);
+void spi_registry_initialize_dec_interface (DRouteData * data);
+void spi_registry_initialize_desktop_interface (DRouteData * data);
+G_END_DECLS
-#endif /* REGISTRY_H_ */
+#endif /* SPI_REGISTRY_H_ */