[Telepathy-commits] [telepathy-salut/master] SalutImChannel: expose interfaces as a GObject property

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Aug 13 11:09:24 PDT 2008


20080609092104-53eee-15adfda609537549e88d23262cfc792bdf714cae.gz

Signed-off-by: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
---
 src/salut-im-channel.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/salut-im-channel.c b/src/salut-im-channel.c
index b85dad5..3eb0c29 100644
--- a/src/salut-im-channel.c
+++ b/src/salut-im-channel.c
@@ -62,6 +62,10 @@ G_DEFINE_TYPE_WITH_CODE (SalutImChannel, salut_im_channel, G_TYPE_OBJECT,
     G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_TYPE_TEXT, text_iface_init);
 );
 
+static const gchar *salut_im_channel_interfaces[] = {
+    NULL
+};
+
 static gboolean message_stanza_filter (SalutXmppConnectionManager *mgr,
     GibberXmppConnection *conn, GibberXmppStanza *stanza,
     SalutContact *contact, gpointer user_data);
@@ -89,6 +93,7 @@ enum
   PROP_CONTACT,
   PROP_CONNECTION,
   PROP_XMPP_CONNECTION_MANAGER,
+  PROP_INTERFACES,
   LAST_PROPERTY
 };
 
@@ -224,6 +229,9 @@ salut_im_channel_get_property (GObject *object,
       case PROP_XMPP_CONNECTION_MANAGER:
         g_value_set_object (value, priv->xmpp_connection_manager);
         break;
+      case PROP_INTERFACES:
+        g_value_set_static_boxed (value, salut_im_channel_interfaces);
+        break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
         break;
@@ -384,6 +392,13 @@ salut_im_channel_class_init (SalutImChannelClass *salut_im_channel_class)
   g_object_class_install_property (object_class, PROP_XMPP_CONNECTION_MANAGER,
       param_spec);
 
+  param_spec = g_param_spec_boxed ("interfaces", "Extra D-Bus interfaces",
+      "Additional Channel.Interface.* interfaces",
+      G_TYPE_STRV,
+      G_PARAM_READABLE |
+      G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME);
+  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+
   tp_text_mixin_class_init (object_class,
       G_STRUCT_OFFSET (SalutImChannelClass, text_class));
 }
@@ -917,9 +932,8 @@ static void
 salut_im_channel_get_interfaces (TpSvcChannel *iface,
                                  DBusGMethodInvocation *context)
 {
-  const char *interfaces[] = { NULL };
-
-  tp_svc_channel_return_from_get_interfaces (context, interfaces);
+  tp_svc_channel_return_from_get_interfaces (context,
+      salut_im_channel_interfaces);
 }
 
 static void
-- 
1.5.6.3




More information about the Telepathy-commits mailing list