Support sending data with events
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / bridge.h
index 44315f1..64882e4 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Copyright 2001, 2002, 2003 Sun Microsystems Inc.,
  * Copyright 2001, 2002, 2003 Ximian, Inc.
- * Copyright 2008, 2009 Codethink Ltd.
+ * Copyright 2008, 2009, 2010 Codethink Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include <atk/atk.h>
 #include <droute/droute.h>
 
-typedef struct _SpiAppData SpiAppData;
-struct _SpiAppData
+typedef struct _SpiBridge SpiBridge;
+typedef struct _SpiBridgeClass SpiBridgeClass;
+
+G_BEGIN_DECLS
+
+typedef struct _AtspiPropertyDefinition AtspiPropertyDefinition;
+struct _AtspiPropertyDefinition
+{
+  char *name;
+  GType type;
+  DRoutePropertyFunction func;
+};
+
+typedef struct _event_data event_data;
+struct _event_data
+{
+  gchar *bus_name;
+  gchar **data;
+  GSList *properties;
+};
+
+struct _SpiBridge
 {
+  GObject parent;
+
   AtkObject *root;
 
   DBusConnection *bus;
-  DRouteContext *droute;
+  DRouteContext  *droute;
+  GMainContext *main_context;
+  DBusServer *server;
+  GList *direct_connections;
+
+/*
+  SpiRegister *reg;
+  SpiCache    *cache;
+  SpiLeasing  *leasing;
+*/
+  gchar *desktop_name;
+  gchar *desktop_path;
+gchar *app_tmp_dir;
+gchar *app_bus_addr;
+  GList *events;
+  gboolean events_initialized;
+  GHashTable *property_hash;
 };
 
-extern SpiAppData *atk_adaptor_app_data;
+extern SpiBridge *spi_global_app_data;
+
+void spi_atk_add_client (const char *bus_name);
+void spi_atk_remove_client (const char *bus_name);
+
+int spi_atk_create_socket (SpiBridge *app);
+
+void spi_atk_add_interface (DRoutePath *path,
+                            const char *name,
+                            const char *introspect,
+                            const DRouteMethod   *methods,
+                            const DRouteProperty *properties);
+
+DRoutePropertyFunction _atk_bridge_find_property_func (const char *property,
+                                                       GType *type);
+
+GType _atk_bridge_type_from_iface (const char *iface);
+G_END_DECLS
 
 #endif /* BRIDGE_H */