+static gboolean registry_died = FALSE;
+static guint toplevel_handler;
+
+/* NOT YET USED
+ static GQuark atk_quark_property_changed_name;
+ static GQuark atk_quark_property_changed_description;
+ static GQuark atk_quark_property_changed_parent;
+ static GQuark atk_quark_property_changed_role;
+ static GQuark atk_quark_property_changed_table_caption;
+ static GQuark atk_quark_property_changed_table_column_description;
+ static GQuark atk_quark_property_changed_table_row_description;
+ static guint atk_signal_property_changed;
+*/
+
+static guint atk_signal_text_changed;
+static guint atk_signal_child_changed;
+
+/* NOT YET USED
+ static guint atk_signal_text_selection_changed;
+ static guint atk_signal_active_descendant_changed;
+ static guint atk_signal_row_reordered;
+ static guint atk_signal_row_inserted;
+ static guint atk_signal_row_deleted;
+ static guint atk_signal_column_reordered;
+ static guint atk_signal_column_inserted;
+ static guint atk_signal_column_deleted;
+*/
+
+#define ATK_BRIDGE_RESERVED_CONTEXT_SIZE 16
+
+typedef enum {
+ ATK_BRIDGE_CONTEXT_TYPE_NONE = 0,
+ ATK_BRIDGE_CONTEXT_TYPE_STRING,
+ ATK_BRIDGE_CONTEXT_TYPE_OBJECT
+} AtkBridgeEventContextType;
+
+typedef union {
+ gchar *string;
+ AtkObject *object;
+ gpointer *foo;
+} AtkBridgeEventContextData;
+
+typedef struct {
+ AtkBridgeEventContextType _type;
+ AtkBridgeEventContextData _data;
+} AtkBridgeEventContext;
+
+static Accessibility_Registry spi_atk_bridge_get_registry (void);
+static void spi_atk_bridge_do_registration (void);
+static void spi_atk_bridge_toplevel_added (AtkObject *object,
+ guint index,
+ AtkObject *child);
+
+static void spi_atk_bridge_exit_func (void);
+static void spi_atk_register_event_listeners (void);
+static void spi_atk_bridge_focus_tracker (AtkObject *object);
+static void spi_atk_bridge_register_application (Accessibility_Registry registry);
+static gboolean spi_atk_bridge_property_event_listener (GSignalInvocationHint *signal_hint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data);
+static gboolean
+spi_atk_bridge_window_event_listener (GSignalInvocationHint *signal_hint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data);
+static gboolean
+spi_atk_bridge_state_event_listener (GSignalInvocationHint *signal_hint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data);
+static gboolean spi_atk_bridge_signal_listener (GSignalInvocationHint *signal_hint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data);
+static gint spi_atk_bridge_key_listener (AtkKeyEventStruct *event,
+ gpointer data);
+
+/* For automatic libgnome init */
+extern void gnome_accessibility_module_init (void);
+extern void gnome_accessibility_module_shutdown (void);
+
+static int atk_bridge_initialized = FALSE;
+static guint atk_bridge_focus_tracker_id = 0;
+static guint atk_bridge_key_event_listener_id = 0;
+static GArray *listener_ids = NULL;