diff options
author | Havoc Pennington <hp@redhat.com> | 2005-01-29 20:12:22 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2005-01-29 20:12:22 +0000 |
commit | 2922b0e88ba00b0067c23633075629108ad8a496 (patch) | |
tree | 50a0022443d38eddd79bbbd77241886391d6257c /glib | |
parent | fd3e49f249fb4ab5ac7da4fe9fc14cc67958d84a (diff) |
2005-01-29 Havoc Pennington <hp@redhat.com>
* tools/dbus-tree-view.c: add support for displaying properties.
(run dbus-viewer with an introspect xml file as arg, then resize
the window so the tree elements show up, not sure what that is)
* glib/dbus-gobject.c (handle_introspect): return
org.freedesktop.Properties and org.freedesktop.Introspectable
interfaces when we are introspected.
* doc/dbus-specification.xml: allow empty interface name when
Get/Set a property
Diffstat (limited to 'glib')
-rw-r--r-- | glib/dbus-gobject.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/glib/dbus-gobject.c b/glib/dbus-gobject.c index 5aab4a68..f08bf39e 100644 --- a/glib/dbus-gobject.c +++ b/glib/dbus-gobject.c @@ -290,6 +290,27 @@ handle_introspect (DBusConnection *connection, xml = g_string_new (NULL); g_string_append (xml, "<node>\n"); + + /* We are introspectable, though I guess that was pretty obvious */ + g_string_append (xml, " <interface name=\"org.freedesktop.Introspectable\">\n"); + g_string_append (xml, " <method name=\"Introspect\">\n"); + g_string_append (xml, " <arg name=\"data\" direction=\"out\" type=\"string\"\"/>\n"); + g_string_append (xml, " </method>\n"); + g_string_append (xml, " </interface>\n"); + + /* We support get/set properties */ + g_string_append (xml, " <interface name=\"org.freedesktop.Properties\">\n"); + g_string_append (xml, " <method name=\"Get\">\n"); + g_string_append (xml, " <arg name=\"interface\" direction=\"in\" type=\"string\"\"/>\n"); + g_string_append (xml, " <arg name=\"propname\" direction=\"in\" type=\"string\"\"/>\n"); + g_string_append (xml, " <arg name=\"value\" direction=\"out\" type=\"variant\"\"/>\n"); + g_string_append (xml, " </method>\n"); + g_string_append (xml, " <method name=\"Set\">\n"); + g_string_append (xml, " <arg name=\"interface\" direction=\"in\" type=\"string\"\"/>\n"); + g_string_append (xml, " <arg name=\"propname\" direction=\"in\" type=\"string\"\"/>\n"); + g_string_append (xml, " <arg name=\"value\" direction=\"in\" type=\"variant\"\"/>\n"); + g_string_append (xml, " </method>\n"); + g_string_append (xml, " </interface>\n"); introspect_signals (G_OBJECT_TYPE (object), xml); introspect_properties (object, xml); @@ -409,7 +430,7 @@ gobject_message_function (DBusConnection *connection, gboolean getter; char *s; const char *wincaps_propname; - const char *wincaps_propiface; + /* const char *wincaps_propiface; */ DBusMessageIter iter; object = G_OBJECT (user_data); @@ -460,7 +481,10 @@ gobject_message_function (DBusConnection *connection, g_warning ("Property get or set does not have an interface string as first arg\n"); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } - dbus_message_iter_get_basic (&iter, &wincaps_propiface); + /* We never use the interface name; if we did, we'd need to + * remember that it can be empty string for "pick one for me" + */ + /* dbus_message_iter_get_basic (&iter, &wincaps_propiface); */ dbus_message_iter_next (&iter); if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) |