[Telepathy-commits] [telepathy-gabble/master] GabbleMucChannel: make 'interfaces' a GObject property

Simon McVittie simon.mcvittie at collabora.co.uk
Tue Aug 19 10:53:05 PDT 2008


20080606085401-53eee-03bcb054a8902e4d26608193a434d340bf97df4a.gz
---
 src/gabble-muc-channel.c |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/gabble-muc-channel.c b/src/gabble-muc-channel.c
index 17cf875..e4336eb 100644
--- a/src/gabble-muc-channel.c
+++ b/src/gabble-muc-channel.c
@@ -72,6 +72,14 @@ G_DEFINE_TYPE_WITH_CODE (GabbleMucChannel, gabble_muc_channel,
       chat_state_iface_init)
     )
 
+static const gchar *gabble_muc_channel_interfaces[] = {
+    TP_IFACE_CHANNEL_INTERFACE_GROUP,
+    TP_IFACE_CHANNEL_INTERFACE_PASSWORD,
+    TP_IFACE_PROPERTIES_INTERFACE,
+    TP_IFACE_CHANNEL_INTERFACE_CHAT_STATE,
+    NULL
+};
+
 /* signal enum */
 enum
 {
@@ -95,6 +103,7 @@ enum
   PROP_CONNECTION,
   PROP_STATE,
   PROP_INVITE_SELF,
+  PROP_INTERFACES,
   LAST_PROPERTY
 };
 
@@ -758,6 +767,9 @@ gabble_muc_channel_get_property (GObject    *object,
     case PROP_STATE:
       g_value_set_uint (value, priv->state);
       break;
+    case PROP_INTERFACES:
+      g_value_set_boxed (value, gabble_muc_channel_interfaces);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -869,6 +881,13 @@ gabble_muc_channel_class_init (GabbleMucChannelClass *gabble_muc_channel_class)
       G_PARAM_STATIC_BLURB);
   g_object_class_install_property (object_class, PROP_INVITE_SELF, 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);
+
   signals[READY] =
     g_signal_new ("ready",
                   G_OBJECT_CLASS_TYPE (gabble_muc_channel_class),
@@ -2232,15 +2251,8 @@ static void
 gabble_muc_channel_get_interfaces (TpSvcChannel *iface,
                                    DBusGMethodInvocation *context)
 {
-  const gchar *interfaces[] = {
-      TP_IFACE_CHANNEL_INTERFACE_GROUP,
-      TP_IFACE_CHANNEL_INTERFACE_PASSWORD,
-      TP_IFACE_PROPERTIES_INTERFACE,
-      TP_IFACE_CHANNEL_INTERFACE_CHAT_STATE,
-      NULL
-  };
-
-  tp_svc_channel_return_from_get_interfaces (context, interfaces);
+  tp_svc_channel_return_from_get_interfaces (context,
+      gabble_muc_channel_interfaces);
 }
 
 
-- 
1.5.6.3




More information about the Telepathy-commits mailing list