]> git.0d.be Git - empathy.git/commitdiff
Hook up the callback to throw up the standard Add Contact dialog
authorDavyd Madeley <davyd@madeley.id.au>
Tue, 24 Feb 2009 05:56:26 +0000 (14:56 +0900)
committerDavyd Madeley <davyd@madeley.id.au>
Wed, 15 Jul 2009 10:12:15 +0000 (11:12 +0100)
libempathy-gtk/empathy-contact-dialogs.c
libempathy-gtk/empathy-contact-dialogs.h
libempathy-gtk/empathy-contact-menu.c

index 0155f610e65e514a867222ca829baba8c3d7a540..5636714b02dc5162149e220fcf1348cb533e4a26 100644 (file)
@@ -369,6 +369,13 @@ new_contact_response_cb (GtkDialog *dialog,
 
 void
 empathy_new_contact_dialog_show (GtkWindow *parent)
+{
+       empathy_new_contact_dialog_show_with_contact (parent, NULL);
+}
+
+void
+empathy_new_contact_dialog_show_with_contact (GtkWindow *parent,
+                                              EmpathyContact *contact)
 {
        GtkWidget *dialog;
        GtkWidget *button;
@@ -402,7 +409,7 @@ empathy_new_contact_dialog_show (GtkWindow *parent)
        gtk_widget_show (button);
 
        /* Contact info widget */
-       contact_widget = empathy_contact_widget_new (NULL,
+       contact_widget = empathy_contact_widget_new (contact,
                                                     EMPATHY_CONTACT_WIDGET_EDIT_ALIAS |
                                                     EMPATHY_CONTACT_WIDGET_EDIT_ACCOUNT |
                                                     EMPATHY_CONTACT_WIDGET_EDIT_ID |
index c714c6b9611d3560762d35a5b21cfa99cbc098d0..5e881ab735e9679ad1715d3361c0ce5445aa127c 100644 (file)
@@ -35,7 +35,12 @@ void empathy_contact_information_dialog_show (EmpathyContact *contact,
 void empathy_contact_edit_dialog_show        (EmpathyContact *contact,
                                              GtkWindow      *parent);
 void empathy_contact_personal_dialog_show    (GtkWindow      *parent);
-void empathy_new_contact_dialog_show         (GtkWindow      *parent);
+                                             GtkWindow     *parent,
+                                             gboolean       edit,
+                                             gboolean       is_user);
+void empathy_new_contact_dialog_show         (GtkWindow     *parent);
+void empathy_new_contact_dialog_show_with_contact (GtkWindow     *parent,
+                                                   EmpathyContact *contact);
 
 G_END_DECLS
 
index 9969f3def34137195c040da7f1b73a18472c1eb6..44b00165ee81427cd2b303066d1351e6cff59eac 100644 (file)
@@ -126,10 +126,12 @@ empathy_contact_menu_new (EmpathyContact             *contact,
 }
 
 static void
-empathy_contact_chat_menu_item_activated (GtkMenuItem *item,
+empathy_contact_add_menu_item_activated (GtkMenuItem *item,
        EmpathyContact *contact)
 {
-  empathy_dispatcher_chat_with_contact (contact, NULL, NULL);
+       /* FIXME - attempt to get parent */
+       /* FIXME - the contact dialog doesn't set the source account right */
+       empathy_new_contact_dialog_show_with_contact (NULL, contact);
 }
 
 GtkWidget *
@@ -163,11 +165,20 @@ empathy_contact_add_menu_item_new (EmpathyContact *contact)
                                              GTK_ICON_SIZE_MENU);
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
 
-       /* FIXME - callback */
+       g_signal_connect (item, "activate",
+                       G_CALLBACK (empathy_contact_add_menu_item_activated),
+                       contact);
 
        return item;
 }
 
+static void
+empathy_contact_chat_menu_item_activated (GtkMenuItem *item,
+       EmpathyContact *contact)
+{
+  empathy_dispatcher_chat_with_contact (contact, NULL, NULL);
+}
+
 GtkWidget *
 empathy_contact_chat_menu_item_new (EmpathyContact *contact)
 {