pidgin/plugins/gevolution/assoc-buddy.c

Sat, 05 Sep 2009 20:01:46 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sat, 05 Sep 2009 20:01:46 +0000
changeset 28508
7be7530f775f
parent 27706
ae1893256821
child 29736
6048c379fde7
permissions
-rw-r--r--

Fix a bunch of warnings from check_po.pl about mismatched format specifiers
between the English string and the localized string

20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
1 /*
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 * Evolution integration plugin for Purple
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
3 *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 * Copyright (C) 2003 Christian Hammond.
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
5 *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * modify it under the terms of the GNU General Public License as
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * published by the Free Software Foundation; either version 2 of the
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 * License, or (at your option) any later version.
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful, but
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
14 * General Public License for more details.
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
15 *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
19 * 02111-1301, USA.
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
20 */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
21 #include "internal.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
22 #include "gtkblist.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 #include "gtkexpander.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 #include "pidgin.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25 #include "gtkutils.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
26 #include "gtkimhtml.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28 #include "debug.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30 #include "gevolution.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 #include <stdlib.h>
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 #include <gtk/gtk.h>
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35 enum
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 COLUMN_NAME,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 COLUMN_DATA,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39 NUM_COLUMNS
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 };
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
41
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
42 static gint
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
43 delete_win_cb(GtkWidget *w, GdkEvent *event, GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
45 gtk_widget_destroy(dialog->win);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
46
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
47 if (dialog->contacts != NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
49 g_list_foreach(dialog->contacts, (GFunc)g_object_unref, NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50 g_list_free(dialog->contacts);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
51 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
52
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
53 g_object_unref(dialog->book);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 gevo_addrbooks_model_unref(dialog->addrbooks);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 g_free(dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58 return 0;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
59 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
60
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62 search_changed_cb(GtkEntry *entry, GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 const char *text = gtk_entry_get_text(entry);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65 GList *l;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
67 gtk_list_store_clear(dialog->model);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69 for (l = dialog->contacts; l != NULL; l = l->next)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
71 EContact *contact = E_CONTACT(l->data);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
72 const char *name;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73 GtkTreeIter iter;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
75 name = e_contact_get_const(contact, E_CONTACT_FULL_NAME);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
76
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
77 if (text != NULL && *text != '\0' && name != NULL &&
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
78 g_ascii_strncasecmp(name, text, strlen(text)))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
80 continue;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
82
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83 gtk_list_store_append(dialog->model, &iter);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
85 gtk_list_store_set(dialog->model, &iter,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
86 COLUMN_NAME, name,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
87 COLUMN_DATA, contact,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
88 -1);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
89 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
90 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
91
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
92 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
93 clear_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
94 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
95 static gboolean lock = FALSE;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
96
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
97 if (lock)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
98 return;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
99
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
100 lock = TRUE;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
101 gtk_entry_set_text(GTK_ENTRY(dialog->search_field), "");
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
102 lock = FALSE;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
103 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
104
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
105 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
106 selected_cb(GtkTreeSelection *sel, GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
107 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
108 GtkTreeSelection *selection;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
109
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
110 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
111 gtk_widget_set_sensitive(dialog->assoc_button,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
112 gtk_tree_selection_get_selected(selection, NULL, NULL));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
113 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
114
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
115 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
116 add_columns(GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
117 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
118 GtkCellRenderer *renderer;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
119 GtkTreeViewColumn *column;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
120
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
121 /* Name column */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
122 column = gtk_tree_view_column_new();
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
123 gtk_tree_view_column_set_title(column, _("Name"));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
124 gtk_tree_view_insert_column(GTK_TREE_VIEW(dialog->treeview), column, -1);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
125 gtk_tree_view_column_set_sort_column_id(column, COLUMN_NAME);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
126
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
127 renderer = gtk_cell_renderer_text_new();
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
128 gtk_tree_view_column_pack_start(column, renderer, TRUE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
129 gtk_tree_view_column_add_attribute(column, renderer,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
130 "text", COLUMN_NAME);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
131 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
132
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
133 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
134 populate_treeview(GevoAssociateBuddyDialog *dialog, const gchar *uri)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
135 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
136 EBook *book;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
137 EBookQuery *query;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
138 const char *prpl_id;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
139 gboolean status;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
140 GList *cards, *c;
27706
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20644
diff changeset
141 GError *err = NULL;
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
142
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
143 if (dialog->book != NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
144 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
145 g_object_unref(dialog->book);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
146 dialog->book = NULL;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
147 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
148
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
149 if (dialog->contacts != NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
150 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
151 g_list_foreach(dialog->contacts, (GFunc) g_object_unref, NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
152 g_list_free(dialog->contacts);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153 dialog->contacts = NULL;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
155
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
156 gtk_list_store_clear(dialog->model);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
157
27706
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20644
diff changeset
158 if (!gevo_load_addressbook(uri, &book, &err))
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
159 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160 purple_debug_error("evolution",
27706
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20644
diff changeset
161 "Error retrieving addressbook: %s\n", err->message);
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20644
diff changeset
162 g_error_free(err);
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
163
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
164 return;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
165 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
166
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
167 query = e_book_query_field_exists(E_CONTACT_FULL_NAME);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
168
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
169 if (query == NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
170 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
171 purple_debug_error("evolution", "Error in creating query\n");
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
172
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
173 g_object_unref(book);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
174
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
175 return;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
176 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
177
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
178 status = e_book_get_contacts(book, query, &cards, NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
179
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
180 e_book_query_unref(query);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
181
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
182 if (!status)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
183 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
184 purple_debug_error("evolution", "Error %d in getting card list\n",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
185 status);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
186
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
187 g_object_unref(book);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
188
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
189 return;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
190 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
191
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
192 prpl_id = purple_account_get_protocol_id(dialog->buddy->account);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
193
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
194 for (c = cards; c != NULL; c = c->next)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
195 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
196 EContact *contact = E_CONTACT(c->data);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
197 const char *name;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
198 GtkTreeIter iter;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
199 EContactField protocol_field = 0;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
200
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
201 name = e_contact_get_const(contact, E_CONTACT_FULL_NAME);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
202
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
203 gtk_list_store_append(dialog->model, &iter);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
204
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
205 gtk_list_store_set(dialog->model, &iter,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
206 COLUMN_NAME, name,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
207 COLUMN_DATA, contact,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
208 -1);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
209
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
210 /* See if this user has the buddy in its list. */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
211 protocol_field = gevo_prpl_get_field(dialog->buddy->account,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
212 dialog->buddy);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
213
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
214 if (protocol_field > 0)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
215 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
216 GList *ims, *l;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
217
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
218 ims = e_contact_get(contact, protocol_field);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
219
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
220 for (l = ims; l != NULL; l = l->next)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
221 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
222 if (!strcmp(l->data, dialog->buddy->name))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
223 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
224 GtkTreeSelection *selection;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
225
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
226 /* This is it. Select it. */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
227 selection = gtk_tree_view_get_selection(
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
228 GTK_TREE_VIEW(dialog->treeview));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
229
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
230 gtk_tree_selection_select_iter(selection, &iter);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
231 break;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
232 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
233 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
234 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
235 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
236
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
237 dialog->contacts = cards;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
238 dialog->book = book;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
239 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
240
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
241 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
242 addrbook_change_cb(GtkComboBox *combo, GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
243 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
244 GtkTreeIter iter;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
245 const char *esource_uri;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
246
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
247 if (!gtk_combo_box_get_active_iter(combo, &iter))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
248 return;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
249
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
250 gtk_tree_model_get(GTK_TREE_MODEL(dialog->addrbooks), &iter,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
251 ADDRBOOK_COLUMN_URI, &esource_uri,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
252 -1);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
253
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
254 populate_treeview(dialog, esource_uri);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
255 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
256
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
257 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
258 new_person_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
259 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
260 gevo_new_person_dialog_show(dialog->book, NULL, dialog->buddy->account,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
261 dialog->buddy->name, NULL, dialog->buddy,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
262 TRUE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
263
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
264 delete_win_cb(NULL, NULL, dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
265 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
266
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
267 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
268 cancel_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
269 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
270 delete_win_cb(NULL, NULL, dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
271 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
272
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
273 static void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
274 assoc_buddy_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
275 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
276 GtkTreeSelection *selection;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
277 GtkTreeIter iter;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
278 GList *list;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
279 const char *fullname;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
280 EContactField protocol_field;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
281 EContact *contact;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
282
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
283 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
284
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
285 if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
286 return;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
287
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
288 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
289 COLUMN_NAME, &fullname,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
290 COLUMN_DATA, &contact,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
291 -1);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
292
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
293 protocol_field = gevo_prpl_get_field(dialog->buddy->account, dialog->buddy);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
294
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
295 if (protocol_field == 0)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
296 return; /* XXX */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
297
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
298 list = e_contact_get(contact, protocol_field);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
299 list = g_list_append(list, g_strdup(dialog->buddy->name));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
300
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
301 e_contact_set(contact, protocol_field, list);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
302
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
303 if (!e_book_commit_contact(dialog->book, contact, NULL))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
304 purple_debug_error("evolution", "Error adding contact to book\n");
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
305
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
306 /* Free the list. */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
307 g_list_foreach(list, (GFunc)g_free, NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
308 g_list_free(list);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
309
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
310 delete_win_cb(NULL, NULL, dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
311 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
312
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
313 GevoAssociateBuddyDialog *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
314 gevo_associate_buddy_dialog_new(PurpleBuddy *buddy)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
315 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
316 GevoAssociateBuddyDialog *dialog;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
317 GtkWidget *button;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
318 GtkWidget *sw;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
319 GtkWidget *label;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
320 GtkWidget *vbox;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
321 GtkWidget *hbox;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
322 GtkWidget *bbox;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
323 GtkWidget *sep;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
324 GtkWidget *expander;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
325 GtkTreeSelection *selection;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
326 GtkCellRenderer *cell;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
327
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
328 g_return_val_if_fail(buddy != NULL, NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
329
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
330 dialog = g_new0(GevoAssociateBuddyDialog, 1);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
331
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
332 dialog->buddy = buddy;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
333
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
334 dialog->win = pidgin_create_window(NULL, PIDGIN_HIG_BORDER, "assoc_buddy", TRUE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
335
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
336 g_signal_connect(G_OBJECT(dialog->win), "delete_event",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
337 G_CALLBACK(delete_win_cb), dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
338
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
339 /* Setup the vbox */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
340 vbox = gtk_vbox_new(FALSE, 12);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
341 gtk_container_add(GTK_CONTAINER(dialog->win), vbox);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
342 gtk_widget_show(vbox);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
343
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
344 /* Add the label. */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
345 label = gtk_label_new(_("Select a person from your address book to "
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
346 "add this buddy to, or create a new person."));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
347 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
348 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
349 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, TRUE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
350 gtk_widget_show(label);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
351
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
352 /* Add the search hbox */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
353 hbox = gtk_hbox_new(FALSE, 6);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
354 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
355 gtk_widget_show(hbox);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
356
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
357 /* "Search" */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
358 label = gtk_label_new(_("Search"));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
359 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
360 gtk_widget_show(label);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
361
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
362 /* Addressbooks */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
363 dialog->addrbooks = gevo_addrbooks_model_new();
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
364
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
365 dialog->addrbooks_combo = gtk_combo_box_new_with_model(dialog->addrbooks);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
366 cell = gtk_cell_renderer_text_new();
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
367 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dialog->addrbooks_combo),
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
368 cell, TRUE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
369 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dialog->addrbooks_combo),
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
370 cell,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
371 "text", ADDRBOOK_COLUMN_NAME,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
372 NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
373 gtk_box_pack_start(GTK_BOX(hbox), dialog->addrbooks_combo, FALSE, FALSE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
374 gtk_widget_show(dialog->addrbooks_combo);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
375
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
376
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
377 /* Search field */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
378 dialog->search_field = gtk_entry_new();
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
379 gtk_box_pack_start(GTK_BOX(hbox), dialog->search_field, TRUE, TRUE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
380 gtk_widget_show(dialog->search_field);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
381
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
382 g_signal_connect(G_OBJECT(dialog->search_field), "changed",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
383 G_CALLBACK(search_changed_cb), dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
384
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
385 /* Clear button */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
386 button = gtk_button_new_from_stock(GTK_STOCK_CLEAR);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
387 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
388 gtk_widget_show(button);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
389
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
390 g_signal_connect(G_OBJECT(button), "clicked",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
391 G_CALLBACK(clear_cb), dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
392
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
393 /* Scrolled Window */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
394 sw = gtk_scrolled_window_new(0, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
395 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
396 GTK_POLICY_AUTOMATIC,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
397 GTK_POLICY_ALWAYS);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
398 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
399 GTK_SHADOW_IN);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
400 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
401 gtk_widget_show(sw);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
402
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
403 /* Create the list model for the treeview. */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
404 dialog->model = gtk_list_store_new(NUM_COLUMNS,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
405 G_TYPE_STRING, G_TYPE_POINTER);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
406
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
407 /* Now for the treeview */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
408 dialog->treeview = gtk_tree_view_new_with_model(
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
409 GTK_TREE_MODEL(dialog->model));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
410 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(dialog->treeview), TRUE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
411 gtk_container_add(GTK_CONTAINER(sw), dialog->treeview);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
412 gtk_widget_show(dialog->treeview);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
413
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
414 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
415
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
416 gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
417
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
418 g_signal_connect(G_OBJECT(selection), "changed",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
419 G_CALLBACK(selected_cb), dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
420
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
421 add_columns(dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
422
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
423 /*
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
424 * Catch addressbook selection and populate treeview with the first
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
425 * addressbook
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
426 */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
427 gevo_addrbooks_model_populate( dialog->addrbooks );
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
428 g_signal_connect(G_OBJECT(dialog->addrbooks_combo), "changed",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
429 G_CALLBACK(addrbook_change_cb), dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
430 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->addrbooks_combo), 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
431
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
432 /* Add the expander */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
433 expander = gtk_expander_new_with_mnemonic(_("User _details"));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
434 gtk_box_pack_start(GTK_BOX(vbox), expander, FALSE, FALSE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
435 gtk_widget_show(expander);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
436
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
437 /*
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
438 * User details
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
439 */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
440
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
441 /* Scrolled Window */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
442 sw = gtk_scrolled_window_new(0, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
443 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
444 GTK_POLICY_NEVER,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
445 GTK_POLICY_ALWAYS);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
446 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
447 GTK_SHADOW_IN);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
448 gtk_container_add(GTK_CONTAINER(expander), sw);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
449 gtk_widget_show(sw);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
450
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
451 /* Textview */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
452 dialog->imhtml = gtk_imhtml_new(NULL, NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
453 gtk_container_add(GTK_CONTAINER(sw), dialog->imhtml);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
454 gtk_widget_show(dialog->imhtml);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
455
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
456 /* Separator. */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
457 sep = gtk_hseparator_new();
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
458 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
459 gtk_widget_show(sep);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
460
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
461 /* Button box */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
462 bbox = gtk_hbutton_box_new();
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
463 gtk_box_set_spacing(GTK_BOX(bbox), 6);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
464 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
465 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
466 gtk_widget_show(bbox);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
467
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
468 /* "New Person" button */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
469 button = pidgin_pixbuf_button_from_stock(_("New Person"), GTK_STOCK_NEW,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
470 PIDGIN_BUTTON_HORIZONTAL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
471 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
472 gtk_widget_show(button);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
473
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
474 g_signal_connect(G_OBJECT(button), "clicked",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
475 G_CALLBACK(new_person_cb), dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
476
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
477 /* "Cancel" button */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
478 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
479 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
480 gtk_widget_show(button);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
481
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
482 g_signal_connect(G_OBJECT(button), "clicked",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
483 G_CALLBACK(cancel_cb), dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
484
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
485 /* "Associate Buddy" button */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
486 button = pidgin_pixbuf_button_from_stock(_("_Associate Buddy"),
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
487 GTK_STOCK_APPLY,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
488 PIDGIN_BUTTON_HORIZONTAL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
489 dialog->assoc_button = button;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
490 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
491 gtk_widget_set_sensitive(button, FALSE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
492 gtk_widget_show(button);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
493
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
494 g_signal_connect(G_OBJECT(button), "clicked",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
495 G_CALLBACK(assoc_buddy_cb), dialog);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
496
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
497 /* Show it. */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
498 gtk_widget_show(dialog->win);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
499
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
500 return dialog;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
501 }

mercurial