]> git.0d.be Git - empathy.git/commitdiff
chat-window: expose the individual mgr as a property
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 28 Sep 2012 06:37:26 +0000 (08:37 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 3 Oct 2012 10:05:43 +0000 (12:05 +0200)
src/empathy-chat-window.c
src/empathy-chat-window.h

index 296fc67751ac7fc52a95497d7a4fcc41234364e7..c72b01ede3b6f72f8cc66dbe3f8d9a6282398a2d 100644 (file)
     || (t1 >= t2 && (t1 - t2) > (G_MAXUINT32/2)) \
   )
 
+enum
+{
+  PROP_INDIVIDUAL_MGR = 1
+};
+
 struct _EmpathyChatWindowPriv
 {
   EmpathyChat *current_chat;
@@ -1955,6 +1960,8 @@ chat_window_focus_out_event_cb (GtkWidget *widget,
           G_CALLBACK (contacts_loaded_cb), self, 0);
     }
 
+  g_object_notify (G_OBJECT (self), "individual-manager");
+
   return FALSE;
 }
 
@@ -2298,13 +2305,39 @@ chat_window_finalize (GObject *object)
   G_OBJECT_CLASS (empathy_chat_window_parent_class)->finalize (object);
 }
 
+static void
+chat_window_get_property (GObject *object,
+    guint property_id,
+    GValue *value,
+    GParamSpec *pspec)
+{
+  EmpathyChatWindow *self = EMPATHY_CHAT_WINDOW (object);
+
+  switch (property_id)
+    {
+      case PROP_INDIVIDUAL_MGR:
+        g_value_set_object (value, self->priv->individual_mgr);
+      default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+        break;
+    }
+}
+
 static void
 empathy_chat_window_class_init (EmpathyChatWindowClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  GParamSpec *spec;
 
+  object_class->get_property = chat_window_get_property;
   object_class->finalize = chat_window_finalize;
 
+  spec = g_param_spec_object ("individual-manager", "individual-manager",
+      "EmpathyIndividualManager",
+      EMPATHY_TYPE_INDIVIDUAL_MANAGER,
+      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+  g_object_class_install_property (object_class, PROP_INDIVIDUAL_MGR, spec);
+
   g_type_class_add_private (object_class, sizeof (EmpathyChatWindowPriv));
 }
 
@@ -2793,3 +2826,9 @@ empathy_chat_window_get_nb_chats (EmpathyChatWindow *self,
   if (nb_private != NULL)
     *nb_private = _nb_private;
 }
+
+EmpathyIndividualManager *
+empathy_chat_window_get_individual_manager (EmpathyChatWindow *self)
+{
+  return self->priv->individual_mgr;
+}
index 2be55cdf858339bc2f594a479f1f589f9ecb5588..054469dfa9b10e619734b6db24e40b7f2cc86be6 100644 (file)
@@ -82,6 +82,9 @@ EmpathyChat * empathy_chat_window_find_chat (TpAccount *account,
 EmpathyChatWindow * empathy_chat_window_present_chat (EmpathyChat *chat,
     gint64 timestamp);
 
+EmpathyIndividualManager * empathy_chat_window_get_individual_manager (
+    EmpathyChatWindow *self);
+
 G_END_DECLS
 
 #endif