Convert droute introspection to use string literals created from
authorMark Doffman <mark.doffman@codethink.co.uk>
Fri, 12 Feb 2010 02:01:59 +0000 (18:01 -0800)
committerMark Doffman <mark.doffman@codethink.co.uk>
Fri, 12 Feb 2010 02:01:59 +0000 (18:01 -0800)
the introspection XML in at-spi2-core.

22 files changed:
atk-adaptor/Makefile.am
atk-adaptor/adaptors/accessible-adaptor.c
atk-adaptor/adaptors/action-adaptor.c
atk-adaptor/adaptors/application-adaptor.c
atk-adaptor/adaptors/cache-adaptor.c
atk-adaptor/adaptors/collection-adaptor.c
atk-adaptor/adaptors/component-adaptor.c
atk-adaptor/adaptors/document-adaptor.c
atk-adaptor/adaptors/editabletext-adaptor.c
atk-adaptor/adaptors/hyperlink-adaptor.c
atk-adaptor/adaptors/hypertext-adaptor.c
atk-adaptor/adaptors/image-adaptor.c
atk-adaptor/adaptors/selection-adaptor.c
atk-adaptor/adaptors/table-adaptor.c
atk-adaptor/adaptors/text-adaptor.c
atk-adaptor/adaptors/value-adaptor.c
atk-adaptor/bridge.c
atk-adaptor/introspection.c [new file with mode: 0644]
atk-adaptor/introspection.h [new file with mode: 0644]
configure.ac
droute/droute.c
droute/droute.h

index 87268ed..9195ac2 100644 (file)
@@ -32,6 +32,8 @@ libatk_bridge_la_SOURCES =    \
         accessible-cache.h      \
        accessible-register.c   \
        accessible-register.h   \
+       introspection.c         \
+       introspection.h         \
        bridge.c                \
        bridge.h                \
        object.c                \
index 2dd6cd7..688537b 100644 (file)
@@ -28,6 +28,7 @@
 #include "common/spi-dbus.h"
 #include "common/spi-stateset.h"
 #include "object.h"
+#include "introspection.h"
 
 static dbus_bool_t
 impl_get_Name (DBusMessageIter * iter, void *user_data)
@@ -543,5 +544,6 @@ spi_initialize_accessible (DRoutePath * path)
 {
   droute_path_add_interface (path,
                              SPI_DBUS_INTERFACE_ACCESSIBLE,
+                             spi_org_freedesktop_atspi_Accessible,     
                              methods, properties);
 };
index 451e38c..e261428 100644 (file)
@@ -27,6 +27,8 @@
 
 #include "common/spi-dbus.h"
 
+#include "introspection.h"
+
 static dbus_bool_t
 impl_get_NActions (DBusMessageIter * iter, void *user_data)
 {
@@ -222,5 +224,6 @@ void
 spi_initialize_action (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_ACTION, methods, properties);
+                             SPI_DBUS_INTERFACE_ACTION,
+                             spi_org_freedesktop_atspi_Action, methods, properties);
 };
index 57643f9..efb66cb 100644 (file)
@@ -26,6 +26,7 @@
 #include <droute/droute.h>
 
 #include "common/spi-dbus.h"
+#include "introspection.h"
 
 static dbus_bool_t
 impl_get_ToolkitName (DBusMessageIter * iter, void *user_data)
@@ -114,5 +115,6 @@ spi_initialize_application (DRoutePath * path)
 {
   droute_path_add_interface (path,
                              SPI_DBUS_INTERFACE_APPLICATION,
+                             spi_org_freedesktop_atspi_Application,
                              methods, properties);
 };
index e6f950c..7b863b8 100644 (file)
@@ -32,6 +32,7 @@
 #include "accessible-cache.h"
 #include "bridge.h"
 #include "object.h"
+#include "introspection.h"
 
 /* TODO - This should possibly be a common define */
 #define SPI_OBJECT_PREFIX "/org/at_spi"
@@ -308,7 +309,7 @@ static DRouteMethod methods[] = {
 void
 spi_initialize_cache (DRoutePath * path)
 {
-  droute_path_add_interface (path, SPI_DBUS_INTERFACE_CACHE, methods, NULL);
+  droute_path_add_interface (path, SPI_DBUS_INTERFACE_CACHE, spi_org_freedesktop_atspi_Cache, methods, NULL);
 
   g_signal_connect (spi_global_cache,
                     "object-added",
index 6ee69d2..30373fd 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "accessible-register.h"
 #include "object.h"
+#include "introspection.h"
 
 typedef struct _MatchRulePrivate MatchRulePrivate;
 struct _MatchRulePrivate
@@ -1134,5 +1135,5 @@ void
 spi_initialize_collection (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_COLLECTION, methods, NULL);
+                             SPI_DBUS_INTERFACE_COLLECTION, spi_org_freedesktop_atspi_Collection, methods, NULL);
 };
index a3810de..863705c 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "common/spi-dbus.h"
 #include "object.h"
+#include "introspection.h"
 
 static DBusMessage *
 impl_contains (DBusConnection * bus, DBusMessage * message, void *user_data)
@@ -305,5 +306,5 @@ void
 spi_initialize_component (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_COMPONENT, methods, NULL);
+                             SPI_DBUS_INTERFACE_COMPONENT, spi_org_freedesktop_atspi_Component, methods, NULL);
 };
index 9ed2754..fe49e17 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "common/spi-dbus.h"
 #include "object.h"
+#include "introspection.h"
 
 static DBusMessage *
 impl_GetLocale (DBusConnection * bus, DBusMessage * message, void *user_data)
@@ -116,5 +117,5 @@ void
 spi_initialize_document (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_DOCUMENT, methods, NULL);
+                             SPI_DBUS_INTERFACE_DOCUMENT, spi_org_freedesktop_atspi_Document, methods, NULL);
 };
index 624df14..79b60c5 100644 (file)
@@ -24,6 +24,7 @@
 
 #include <atk/atk.h>
 #include <droute/droute.h>
+#include "introspection.h"
 
 #include "common/spi-dbus.h"
 
@@ -213,5 +214,5 @@ void
 spi_initialize_editabletext (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_EDITABLE_TEXT, methods, NULL);
+                             SPI_DBUS_INTERFACE_EDITABLE_TEXT, spi_org_freedesktop_atspi_EditableText, methods, NULL);
 };
index 732ab2b..d48e3f3 100644 (file)
@@ -26,6 +26,7 @@
 #include <droute/droute.h>
 
 #include "common/spi-dbus.h"
+#include "introspection.h"
 #include "object.h"
 
 static AtkHyperlink *
@@ -153,5 +154,6 @@ spi_initialize_hyperlink (DRoutePath * path)
 {
   droute_path_add_interface (path,
                              SPI_DBUS_INTERFACE_HYPERLINK,
+                             spi_org_freedesktop_atspi_Hyperlink,
                              methods, properties);
 };
index 0bb4060..45d5334 100644 (file)
@@ -28,6 +28,8 @@
 #include "common/spi-dbus.h"
 #include "object.h"
 
+#include "introspection.h"
+
 static DBusMessage *
 impl_GetNLinks (DBusConnection * bus, DBusMessage * message, void *user_data)
 {
@@ -106,5 +108,5 @@ void
 spi_initialize_hypertext (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_HYPERTEXT, methods, NULL);
+                             SPI_DBUS_INTERFACE_HYPERTEXT, spi_org_freedesktop_atspi_Hypertext, methods, NULL);
 };
index c2e00b0..956bb21 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "common/spi-dbus.h"
 #include "object.h"
+#include "introspection.h"
 
 static dbus_bool_t
 impl_get_ImageDescription (DBusMessageIter * iter, void *user_data)
@@ -138,5 +139,5 @@ void
 spi_initialize_image (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_IMAGE, methods, properties);
+                             SPI_DBUS_INTERFACE_IMAGE, spi_org_freedesktop_atspi_Image, methods, properties);
 };
index 02e28f2..bf12250 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "common/spi-dbus.h"
 #include "object.h"
+#include "introspection.h"
 
 static dbus_bool_t
 impl_get_NSelectedChildren (DBusMessageIter * iter, void *user_data)
@@ -255,5 +256,6 @@ spi_initialize_selection (DRoutePath * path)
 {
   droute_path_add_interface (path,
                              SPI_DBUS_INTERFACE_SELECTION,
+                             spi_org_freedesktop_atspi_Selection,
                              methods, properties);
 };
index 4d9c438..76e4cd6 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "common/spi-dbus.h"
 #include "object.h"
+#include "introspection.h"
 
 static dbus_bool_t
 impl_get_NRows (DBusMessageIter * iter, void *user_data)
@@ -686,5 +687,5 @@ void
 spi_initialize_table (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_TABLE, methods, properties);
+                             SPI_DBUS_INTERFACE_TABLE, spi_org_freedesktop_atspi_Table, methods, properties);
 };
index 3c52beb..9973fef 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "common/spi-dbus.h"
 #include "object.h"
+#include "introspection.h"
 
 static dbus_bool_t
 impl_get_CharacterCount (DBusMessageIter * iter, void *user_data)
@@ -836,5 +837,5 @@ void
 spi_initialize_text (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_TEXT, methods, properties);
+                             SPI_DBUS_INTERFACE_TEXT, spi_org_freedesktop_atspi_Text, methods, properties);
 };
index 833543c..30a1a5c 100644 (file)
@@ -28,6 +28,7 @@
 #include <droute/droute.h>
 
 #include "common/spi-dbus.h"
+#include "introspection.h"
 
 static dbus_bool_t
 impl_get_MinimumValue (DBusMessageIter * iter, void *user_data)
@@ -171,5 +172,5 @@ void
 spi_initialize_value (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_VALUE, NULL, properties);
+                             SPI_DBUS_INTERFACE_VALUE, spi_org_freedesktop_atspi_Value, NULL, properties);
 };
index fc05a1f..fd6d8fe 100644 (file)
 
 #include "common/spi-dbus.h"
 
-/*
- * Provides the path for the introspection directory.
- */
-#if !defined ATSPI_INTROSPECTION_PATH
-#error "No introspection XML directory defined"
-#endif
-
 /*---------------------------------------------------------------------------*/
 
 SpiBridge *spi_global_app_data = NULL;
@@ -414,14 +407,9 @@ adaptor_init (gint * argc, gchar ** argv[])
   spi_global_leasing  = g_object_new (SPI_LEASING_TYPE, NULL);
   spi_global_cache    = g_object_new (SPI_CACHE_TYPE, NULL);
 
-  /* Get D-Bus introspection directory */
-  introspection_directory = (char *) g_getenv ("ATSPI_INTROSPECTION_PATH");
-  if (introspection_directory == NULL)
-    introspection_directory = ATSPI_INTROSPECTION_PATH;
-
   /* Register droute for routing AT-SPI messages */
   spi_global_app_data->droute =
-    droute_new (spi_global_app_data->bus, introspection_directory);
+    droute_new (spi_global_app_data->bus);
 
   treepath = droute_add_one (spi_global_app_data->droute,
                              "/org/at_spi/cache", spi_global_cache);
diff --git a/atk-adaptor/introspection.c b/atk-adaptor/introspection.c
new file mode 100644 (file)
index 0000000..0fb1d9f
--- /dev/null
@@ -0,0 +1,796 @@
+
+/*
+ * This file has been auto-generated from the introspection data available
+ * in the at-spi2-core repository. The D-Bus procol is defined in this
+ * repository, which can be found at:
+ *
+ * http://download.gnome.org/sources/at-spi2-core/0.1/
+ *
+ * DO NOT EDIT.
+ */
+
+
+const char *spi_org_freedesktop_atspi_Accessible = 
+"<interface name=\"org.freedesktop.atspi.Accessible\" version=\"0.1.7\">"
+""
+"  <property access=\"read\" name=\"name\" type=\"s\" />"
+""
+"  <property access=\"read\" name=\"description\" type=\"s\" />"
+""
+"  <property access=\"read\" name=\"parent\" type=\"(so)\">"
+"    "
+"  </property>"
+""
+"  <property access=\"read\" name=\"childCount\" type=\"i\" />"
+""
+"  <method name=\"GetChildAtIndex\">"
+"    <arg direction=\"in\" name=\"index\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetIndexInParent\">"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetRelationSet\">"
+"    <arg direction=\"out\" type=\"a(ua(so))\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetRole\">"
+"    <arg direction=\"out\" type=\"u\" />"
+"  </method>"
+""
+"  <method name=\"GetRoleName\">"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetLocalizedRoleName\">"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetState\">"
+"    <arg direction=\"out\" type=\"au\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetAttributes\">"
+"    <arg direction=\"out\" type=\"a{ss}\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetApplication\">"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Action = 
+"<interface name=\"org.freedesktop.atspi.Action\" version=\"0.1.7\">"
+""
+"  <property access=\"read\" name=\"nActions\" type=\"i\" />"
+""
+"  <method name=\"GetDescription\">"
+"    <arg direction=\"in\" name=\"index\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetName\">"
+"    <arg direction=\"in\" name=\"index\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetKeyBinding\">"
+"    <arg direction=\"in\" name=\"index\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetActions\">"
+"    <arg direction=\"out\" name=\"index\" type=\"a(sss)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"DoAction\">"
+"    <arg direction=\"in\" name=\"index\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Application = 
+"<interface name=\"org.freedesktop.atspi.Application\" version=\"0.1.7\">"
+""
+"  <property access=\"read\" name=\"toolkitName\" type=\"s\" />"
+""
+"  <property access=\"read\" name=\"version\" type=\"s\" />"
+""
+"  <property access=\"read\" name=\"id\" type=\"i\" />"
+""
+"  <method name=\"GetLocale\">"
+"    <arg direction=\"in\" name=\"lctype\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Collection = 
+"<interface name=\"org.freedesktop.atspi.Collection\" version=\"0.1.7\">"
+""
+"  <method name=\"GetMatches\">"
+"    <arg direction=\"in\" name=\"rule\" type=\"(auuasuauusub)\" />"
+"    "
+"    <arg direction=\"in\" name=\"sortby\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"count\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"traverse\" type=\"b\" />"
+"    <arg direction=\"out\" type=\"a(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetMatchesTo\">"
+"    <arg direction=\"in\" name=\"current_object\" type=\"o\" />"
+"    "
+"    <arg direction=\"in\" name=\"rule\" type=\"(auuasuauusub)\" />"
+"    "
+"    <arg direction=\"in\" name=\"sortby\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"tree\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"recurse\" type=\"b\" />"
+"    <arg direction=\"in\" name=\"count\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"traverse\" type=\"b\" />"
+"    <arg direction=\"out\" type=\"a(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetMatchesFrom\">"
+"    <arg direction=\"in\" name=\"current_object\" type=\"o\" />"
+"    "
+"    <arg direction=\"in\" name=\"rule\" type=\"(auuasuauusub)\" />"
+"    "
+"    <arg direction=\"in\" name=\"sortby\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"tree\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"count\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"traverse\" type=\"b\" />"
+"    <arg direction=\"out\" type=\"a(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetActiveDescendant\">"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Component = 
+"<interface name=\"org.freedesktop.atspi.Component\" version=\"0.1.7\">"
+""
+"  <method name=\"Contains\">"
+"    <arg direction=\"in\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"y\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"coord_type\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"GetAccessibleAtPoint\">"
+"    <arg direction=\"in\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"y\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"coord_type\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetExtents\">"
+"    <arg direction=\"in\" name=\"coord_type\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"(iiii)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetPosition\">"
+"    <arg direction=\"in\" name=\"coord_type\" type=\"u\" />"
+"    <arg direction=\"out\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"y\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetSize\">"
+"    <arg direction=\"out\" name=\"width\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"height\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetLayer\">"
+"    <arg direction=\"out\" type=\"u\" />"
+"  </method>"
+""
+"  <method name=\"GetMDIZOrder\">"
+"    <arg direction=\"out\" type=\"n\" />"
+"  </method>"
+""
+"  <method name=\"GrabFocus\">"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"GetAlpha\">"
+"    <arg direction=\"out\" type=\"d\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Document = 
+"<interface name=\"org.freedesktop.atspi.Document\" version=\"0.1.7\">"
+""
+"  <method name=\"GetLocale\">"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetAttributeValue\">"
+"    <arg direction=\"in\" name=\"attributename\" type=\"s\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetAttributes\">"
+"    <arg direction=\"out\" type=\"{ss}\" />"
+"    "
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Hypertext = 
+"<interface name=\"org.freedesktop.atspi.Hypertext\" version=\"0.1.7\">"
+""
+"  <method name=\"GetNLinks\">"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetLink\">"
+"    <arg direction=\"in\" name=\"linkIndex\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetLinkIndex\">"
+"    <arg direction=\"in\" name=\"characterIndex\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Hyperlink = 
+"<interface name=\"org.freedesktop.atspi.Hyperlink\" version=\"0.1.7\">"
+""
+"  <property access=\"read\" name=\"nAnchors\" type=\"n\" />"
+""
+"  <property access=\"read\" name=\"startIndex\" type=\"i\" />"
+""
+"  <property access=\"read\" name=\"endIndex\" type=\"i\" />"
+""
+"  <method name=\"GetObject\">"
+"    <arg direction=\"in\" name=\"i\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetURI\">"
+"    <arg direction=\"in\" name=\"i\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"IsValid\">"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Image = 
+"<interface name=\"org.freedesktop.atspi.Image\" version=\"0.1.7\">"
+""
+"  <property access=\"read\" name=\"imageDescription\" type=\"s\" />"
+""
+"  <property access=\"read\" name=\"imageLocale\" type=\"s\" />"
+""
+"  <method name=\"GetImageExtents\">"
+"    <arg direction=\"in\" name=\"coordType\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"(iiii)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetImagePosition\">"
+"    <arg direction=\"out\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"y\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"coordType\" type=\"u\" />"
+"  </method>"
+""
+"  <method name=\"GetImageSize\">"
+"    <arg direction=\"out\" name=\"width\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"height\" type=\"i\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Selection = 
+"<interface name=\"org.freedesktop.atspi.Selection\" version=\"0.1.7\">"
+""
+"  <property access=\"read\" name=\"nSelectedChildren\" type=\"i\" />"
+""
+"  <method name=\"GetSelectedChild\">"
+"    <arg direction=\"in\" name=\"selectedChildIndex\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"SelectChild\">"
+"    <arg direction=\"in\" name=\"childIndex\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"DeselectSelectedChild\">"
+"    <arg direction=\"in\" name=\"selectedChildIndex\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"IsChildSelected\">"
+"    <arg direction=\"in\" name=\"childIndex\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"SelectAll\">"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"ClearSelection\">"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"deSelectChild\">"
+"    <arg direction=\"in\" name=\"childIndex\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Table = 
+"<interface name=\"org.freedesktop.atspi.Table\" version=\"0.1.7\">"
+""
+"  <property access=\"read\" name=\"nRows\" type=\"i\" />"
+""
+"  <property access=\"read\" name=\"nColumns\" type=\"i\" />"
+""
+"  <property access=\"read\" name=\"caption\" type=\"(so)\">"
+"    "
+"  </property>"
+""
+"  <property access=\"read\" name=\"summary\" type=\"(so)\">"
+"    "
+"  </property>"
+""
+"  <property access=\"read\" name=\"nSelectedRows\" type=\"i\" />"
+""
+"  <property access=\"read\" name=\"nSelectedColumns\" type=\"i\" />"
+""
+"  <method name=\"GetAccessibleAt\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetIndexAt\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetRowAtIndex\">"
+"    <arg direction=\"in\" name=\"index\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetColumnAtIndex\">"
+"    <arg direction=\"in\" name=\"index\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetRowDescription\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetColumnDescription\">"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"GetRowExtentAt\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetColumnExtentAt\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetRowHeader\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetColumnHeader\">"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"(so)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetSelectedRows\">"
+"    <arg direction=\"out\" type=\"ai\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetSelectedColumns\">"
+"    <arg direction=\"out\" type=\"ai\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"IsRowSelected\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"IsColumnSelected\">"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"IsSelected\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"AddRowSelection\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"AddColumnSelection\">"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"RemoveRowSelection\">"
+"    <arg direction=\"in\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"RemoveColumnSelection\">"
+"    <arg direction=\"in\" name=\"column\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"GetRowColumnExtentsAtIndex\">"
+"    <arg direction=\"in\" name=\"index\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"    <arg direction=\"out\" name=\"row\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"col\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"row_extents\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"col_extents\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"is_selected\" type=\"b\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Text = 
+"<interface name=\"org.freedesktop.atspi.Text\" version=\"0.1.7\">"
+""
+"  <property access=\"read\" name=\"characterCount\" type=\"i\" />"
+""
+"  <property access=\"read\" name=\"caretOffset\" type=\"i\" />"
+""
+"  <method name=\"GetText\">"
+"    <arg direction=\"in\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"endOffset\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"SetCaretOffset\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"GetTextBeforeOffset\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"type\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"    <arg direction=\"out\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"endOffset\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetTextAtOffset\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"type\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"    <arg direction=\"out\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"endOffset\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetTextAfterOffset\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"type\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"    <arg direction=\"out\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"endOffset\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetCharacterAtOffset\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetAttributeValue\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"attributeName\" type=\"s\" />"
+"    <arg direction=\"out\" type=\"s\" />"
+"    <arg direction=\"out\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"endOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"defined\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"GetAttributes\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"a{ss}\" />"
+"    <arg direction=\"out\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"endOffset\" type=\"i\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetDefaultAttributes\">"
+"    <arg direction=\"out\" type=\"a{ss}\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetCharacterExtents\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"y\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"width\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"height\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"coordType\" type=\"u\" />"
+"  </method>"
+""
+"  <method name=\"GetOffsetAtPoint\">"
+"    <arg direction=\"in\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"y\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"coordType\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetNSelections\">"
+"    <arg direction=\"out\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"GetSelection\">"
+"    <arg direction=\"in\" name=\"selectionNum\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"endOffset\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"AddSelection\">"
+"    <arg direction=\"in\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"endOffset\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"RemoveSelection\">"
+"    <arg direction=\"in\" name=\"selectionNum\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"SetSelection\">"
+"    <arg direction=\"in\" name=\"selectionNum\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"endOffset\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"GetRangeExtents\">"
+"    <arg direction=\"in\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"endOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"y\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"width\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"height\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"coordType\" type=\"u\" />"
+"  </method>"
+""
+"  <method name=\"GetBoundedRanges\">"
+"    <arg direction=\"in\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"y\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"width\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"height\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"coordType\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"xClipType\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"yClipType\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"a(iisv)\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetAttributeRun\">"
+"    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"includeDefaults\" type=\"b\" />"
+"    <arg direction=\"out\" type=\"a{ss}\" />"
+"    <arg direction=\"out\" name=\"startOffset\" type=\"i\" />"
+"    <arg direction=\"out\" name=\"endOffset\" type=\"i\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"GetDefaultAttributeSet\">"
+"    <arg direction=\"out\" type=\"as\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_EditableText = 
+"<interface name=\"org.freedesktop.atspi.EditableText\" version=\"0.1.7\">"
+""
+"  <method name=\"SetTextContents\">"
+"    <arg direction=\"in\" name=\"newContents\" type=\"s\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"InsertText\">"
+"    <arg direction=\"in\" name=\"position\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"text\" type=\"s\" />"
+"    <arg direction=\"in\" name=\"length\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"CopyText\">"
+"    <arg direction=\"in\" name=\"startPos\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"endPos\" type=\"i\" />"
+"  </method>"
+""
+"  <method name=\"CutText\">"
+"    <arg direction=\"in\" name=\"startPos\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"endPos\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"DeleteText\">"
+"    <arg direction=\"in\" name=\"startPos\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"endPos\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"PasteText\">"
+"    <arg direction=\"in\" name=\"position\" type=\"i\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Cache = 
+"<interface name=\"org.freedesktop.atspi.Cache\" version=\"0.1.7\">"
+""
+"  <method name=\"GetItems\">"
+"    <arg direction=\"out\" name=\"nodes\" type=\"a((so)(so)a(so)assusau)\" />"
+"    "
+"  </method>"
+""
+"  <signal name=\"AddAccessible\">"
+"    <arg name=\"nodeAdded\" type=\"((so)(so)a(so)assusau)\" />"
+"    "
+"  </signal>"
+""
+"  <signal name=\"RemoveAccessible\">"
+"    <arg name=\"nodeRemoved\" type=\"(so)\" />"
+"    "
+"  </signal>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_Value = 
+"<interface name=\"org.freedesktop.atspi.Value\" version=\"0.1.7\">"
+""
+"        <property access=\"read\" name=\"minimumValue\" type=\"d\" />"
+""
+"        <property access=\"read\" name=\"maximumValue\" type=\"d\" />"
+""
+"        <property access=\"read\" name=\"minimumIncrement\" type=\"d\" />"
+""
+"        <property access=\"readwrite\" name=\"currentValue\" type=\"d\" />"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_DeviceEventController = 
+"<interface name=\"org.freedesktop.atspi.DeviceEventController\" version=\"0.1.7\">"
+""
+"  <method name=\"RegisterKeystrokeListener\">"
+"    <arg direction=\"in\" name=\"listener\" type=\"o\" />"
+"    <arg direction=\"in\" name=\"keys\" type=\"a(iisi)\">"
+"      "
+"    </arg>"
+"    <arg direction=\"in\" name=\"mask\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"type\" type=\"au\">"
+"      "
+"    </arg>"
+"    <arg direction=\"in\" name=\"mode\" type=\"(bbb)\">"
+"      "
+"    </arg>"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"DeregisterKeystrokeListener\">"
+"    <arg direction=\"in\" name=\"listener\" type=\"o\" />"
+"    <arg direction=\"in\" name=\"keys\" type=\"a(iisi)\">"
+"      "
+"    </arg>"
+"    <arg direction=\"in\" name=\"mask\" type=\"u\" />"
+"    <arg direction=\"in\" name=\"type\" type=\"u\" />"
+"  </method>"
+""
+"  <method name=\"RegisterDeviceEventListener\">"
+"    <arg direction=\"in\" name=\"listener\" type=\"o\" />"
+"    <arg direction=\"in\" name=\"types\" type=\"u\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"  <method name=\"DeregisterDeviceEventListener\">"
+"    <arg direction=\"in\" name=\"listener\" type=\"o\" />"
+"    <arg direction=\"in\" name=\"types\" type=\"u\" />"
+"  </method>"
+""
+"  <method name=\"GenerateKeyboardEvent\">"
+"    <arg direction=\"in\" name=\"keycode\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"keystring\" type=\"s\" />"
+"    <arg direction=\"in\" name=\"type\" type=\"u\" />"
+"  </method>"
+""
+"  <method name=\"GenerateMouseEvent\">"
+"    <arg direction=\"in\" name=\"x\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"y\" type=\"i\" />"
+"    <arg direction=\"in\" name=\"eventName\" type=\"s\" />"
+"  </method>"
+""
+"  <method name=\"NotifyListenersSync\">"
+"    <arg direction=\"in\" name=\"event\" type=\"(uinnisb)\" />"
+"    <arg direction=\"out\" type=\"b\" />"
+"    "
+"  </method>"
+""
+"  <method name=\"NotifyListenersAsync\">"
+"    <arg direction=\"in\" name=\"event\" type=\"(uinnisb)\" />"
+"    "
+"  </method>"
+""
+"</interface>"
+"";
+
+const char *spi_org_freedesktop_atspi_DeviceEventListener = 
+"<interface name=\"org.freedesktop.atspi.DeviceEventListener\" version=\"0.1.7\">"
+""
+"  <method name=\"NotifyEvent\">"
+"    <arg direction=\"in\" name=\"event\" type=\"(uinnisb)\" />"
+"    "
+"    <arg direction=\"out\" type=\"b\" />"
+"  </method>"
+""
+"</interface>"
+"";
+
diff --git a/atk-adaptor/introspection.h b/atk-adaptor/introspection.h
new file mode 100644 (file)
index 0000000..54f4498
--- /dev/null
@@ -0,0 +1,51 @@
+
+/*
+ * This file has been auto-generated from the introspection data available
+ * in the at-spi2-core repository. The D-Bus procol is defined in this
+ * repository, which can be found at:
+ *
+ * http://download.gnome.org/sources/at-spi2-core/0.1/
+ *
+ * DO NOT EDIT.
+ */
+
+#ifndef SPI_INTROSPECTION_DATA_H_
+#define SPI_INTROSPECTION_DATA_H_
+
+
+const char *spi_org_freedesktop_atspi_Accessible;
+
+const char *spi_org_freedesktop_atspi_Action;
+
+const char *spi_org_freedesktop_atspi_Application;
+
+const char *spi_org_freedesktop_atspi_Collection;
+
+const char *spi_org_freedesktop_atspi_Component;
+
+const char *spi_org_freedesktop_atspi_Document;
+
+const char *spi_org_freedesktop_atspi_Hypertext;
+
+const char *spi_org_freedesktop_atspi_Hyperlink;
+
+const char *spi_org_freedesktop_atspi_Image;
+
+const char *spi_org_freedesktop_atspi_Selection;
+
+const char *spi_org_freedesktop_atspi_Table;
+
+const char *spi_org_freedesktop_atspi_Text;
+
+const char *spi_org_freedesktop_atspi_EditableText;
+
+const char *spi_org_freedesktop_atspi_Cache;
+
+const char *spi_org_freedesktop_atspi_Value;
+
+const char *spi_org_freedesktop_atspi_DeviceEventController;
+
+const char *spi_org_freedesktop_atspi_DeviceEventListener;
+
+
+#endif /* SPI_INTROSPECTION_DATA_H_ */
index d05fcca..da3fabc 100644 (file)
@@ -70,13 +70,6 @@ else
 fi
 AC_SUBST(X_LIBS)
 
-AC_ARG_VAR([DEFAULT_ATSPI_INTROSPECTION_PATH],
-          [Set the default path for the install ofDBus introspection XML
-           relative to the pkgdatadir.])
-if test -z "$DEFAULT_ATSPI_INTROSPECTION_PATH"; then
-         DEFAULT_ATSPI_INTROSPECTION_PATH=at-spi2/dbus
-fi
-
 AC_ARG_ENABLE(relocate, [  --enable-relocate  Relocate to coexist with CORBA [default=yes]], enable_relocate="$enableval", enable_relocate=yes)
 if test x$enable_relocate = xyes ; then
        AC_DEFINE(RELOCATE, , [Relocate to coexist with CORBA])
index 0700283..f0b4f00 100644 (file)
@@ -42,7 +42,7 @@ struct _DRouteContext
     DBusConnection       *bus;
     GPtrArray            *registered_paths;
 
-    gchar                *introspect_dir;
+    gchar                *introspect_string;
 };
 
 struct _DRoutePath
@@ -50,6 +50,7 @@ struct _DRoutePath
     DRouteContext        *cnx;
     GStringChunk         *chunks;
     GPtrArray            *interfaces;
+    GPtrArray            *introspection;
     GHashTable           *methods;
     GHashTable           *properties;
 
@@ -86,6 +87,7 @@ path_new (DRouteContext *cnx,
     new_path->cnx = cnx;
     new_path->chunks = g_string_chunk_new (CHUNKS_DEFAULT);
     new_path->interfaces = g_ptr_array_new ();
+    new_path->introspection = g_ptr_array_new ();
 
     new_path->methods = g_hash_table_new_full ((GHashFunc)str_pair_hash,
                                                str_pair_equal,
@@ -108,6 +110,7 @@ path_free (DRoutePath *path, gpointer user_data)
 {
     g_string_chunk_free  (path->chunks);
     g_ptr_array_free     (path->interfaces, TRUE);
+    g_ptr_array_free     (path->introspection, FALSE);
     g_hash_table_destroy (path->methods);
     g_hash_table_destroy (path->properties);
 }
@@ -124,14 +127,13 @@ path_get_datum (DRoutePath *path, const gchar *pathstr)
 /*---------------------------------------------------------------------------*/
 
 DRouteContext *
-droute_new (DBusConnection *bus, const char *introspect_dir)
+droute_new (DBusConnection *bus)
 {
     DRouteContext *cnx;
 
     cnx = g_new0 (DRouteContext, 1);
     cnx->bus = bus;
     cnx->registered_paths = g_ptr_array_new ();
-    cnx->introspect_dir = g_strdup(introspect_dir);
 
     return cnx;
 }
@@ -140,7 +142,6 @@ void
 droute_free (DRouteContext *cnx)
 {
     g_ptr_array_foreach (cnx->registered_paths, (GFunc) path_free, NULL);
-    g_free (cnx->introspect_dir);
     g_free (cnx);
 }
 
@@ -201,6 +202,7 @@ droute_add_many (DRouteContext *cnx,
 void
 droute_path_add_interface(DRoutePath *path,
                           const char *name,
+                          const char *introspect,
                           const DRouteMethod   *methods,
                           const DRouteProperty *properties)
 {
@@ -210,6 +212,7 @@ droute_path_add_interface(DRoutePath *path,
 
     itf = g_string_chunk_insert (path->chunks, name);
     g_ptr_array_add (path->interfaces, itf);
+    g_ptr_array_add (path->introspection, introspect);
 
     for (; methods != NULL && methods->name != NULL; methods++)
       {
@@ -403,35 +406,6 @@ static const char *introspection_node_element =
 static const char *introspection_footer =
 "</node>";
 
-static void
-append_interface (GString     *str,
-                  const gchar *interface,
-                  const gchar *directory)
-{
-    gchar *filename;
-    gchar *contents;
-    gsize len;
-
-    GError *err = NULL;
-
-    filename = g_build_filename (directory, interface, NULL);
-
-    if (g_file_get_contents (filename, &contents, &len, &err))
-      {
-        g_string_append_len (str, contents, len);
-      }
-    else
-      {
-        g_warning ("AT-SPI: Cannot find introspection XML file %s - %s",
-                   filename, err->message);
-        g_error_free (err);
-      }
-
-    g_string_append (str, "\n");
-    g_free (filename);
-    g_free (contents);
-}
-
 static DBusHandlerResult
 handle_introspection (DBusConnection *bus,
                       DBusMessage    *message,
@@ -455,11 +429,10 @@ handle_introspection (DBusConnection *bus,
 
     g_string_append_printf(output, introspection_node_element, pathstr);
 
-    for (i=0; i < path->interfaces->len; i++)
+    for (i=0; i < path->introspection->len; i++)
       {
-        gchar *interface = (gchar *) g_ptr_array_index (path->interfaces, i);
-        _DROUTE_DEBUG ("DRoute (appending interface): %s\n", interface);
-        append_interface(output, interface, path->cnx->introspect_dir);
+        gchar *introspect = (gchar *) g_ptr_array_index (path->introspection, i);
+        g_string_append (output, introspect);
       }
 
     g_string_append(output, introspection_footer);
index a892c62..d1d845f 100644 (file)
@@ -58,8 +58,8 @@ typedef struct _DRoutePath    DRoutePath;
 /*---------------------------------------------------------------------------*/
 
 DRouteContext *
-droute_new      (DBusConnection *bus,
-                 const char *introspect_dir);
+droute_new      (DBusConnection *bus);
+
 void
 droute_free     (DRouteContext *cnx);
 
@@ -77,6 +77,7 @@ droute_add_many (DRouteContext *cnx,
 void
 droute_path_add_interface (DRoutePath *path,
                            const char *name,
+                           const char *introspect,
                            const DRouteMethod   *methods,
                            const DRouteProperty *properties);