pidgin/gtkblist.c

Sun, 22 Jul 2007 08:14:16 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Sun, 22 Jul 2007 08:14:16 +0000
changeset 18869
e84d156a37d2
parent 18621
552c07fd1c18
child 18650
8a34ac83df75
child 18918
eab3d9b215b0
child 18944
3d27499bb0d5
permissions
-rw-r--r--

revert 'no visible tabs when only one conversation' as it proved unpopular. Made tabs only fill the entire width of the notebook when there's only one tab to avoid http://pidgin.im/~deryni/that_just_looks_dumb.png

5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /*
10297
b36800725b7a [gaim-migrate @ 11480]
Evan Schoenberg <evands@pidgin.im>
parents: 10288
diff changeset
2 * @file gtkblist.c GTK+ BuddyList API
16254
eeb2bba4dc94 Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@pidgin.im>
parents: 16184
diff changeset
3 * @ingroup pidgin
10297
b36800725b7a [gaim-migrate @ 11480]
Evan Schoenberg <evands@pidgin.im>
parents: 10288
diff changeset
4 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
5 * pidgin
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
7 * Pidgin is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8040
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8040
diff changeset
9 * source distribution.
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 */
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9778
diff changeset
26 #include "internal.h"
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15571
diff changeset
27 #include "pidgin.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
28
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
29 #include "account.h"
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
30 #include "connection.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
31 #include "core.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
32 #include "debug.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
33 #include "notify.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
34 #include "prpl.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
35 #include "prefs.h"
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
36 #include "plugin.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
37 #include "request.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
38 #include "signals.h"
15883
969b74a3e27a According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
39 #include "pidginstock.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
40 #include "util.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
41
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
42 #include "gtkaccount.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
43 #include "gtkblist.h"
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
44 #include "gtkcellrendererexpander.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
45 #include "gtkconv.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
46 #include "gtkdebug.h"
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9686
diff changeset
47 #include "gtkdialogs.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
48 #include "gtkft.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
49 #include "gtklog.h"
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
50 #include "gtkmenutray.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
51 #include "gtkpounce.h"
11740
2b605228ec11 [gaim-migrate @ 14031]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
52 #include "gtkplugin.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
53 #include "gtkprefs.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
54 #include "gtkprivacy.h"
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents: 8089
diff changeset
55 #include "gtkroomlist.h"
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10623
diff changeset
56 #include "gtkstatusbox.h"
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
57 #include "gtkscrollbook.h"
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
58 #include "gtkutils.h"
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
59
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60 #include <gdk/gdkkeysyms.h>
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61 #include <gtk/gtk.h>
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
62 #include <gdk/gdk.h>
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
63
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
64 #define HEADLINE_CLOSE_SIZE 12
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
65
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
66 typedef struct
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
67 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
68 PurpleAccount *account;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
69
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
70 GtkWidget *window;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
71 GtkWidget *combo;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
72 GtkWidget *entry;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
73 GtkWidget *entry_for_alias;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
74 GtkWidget *account_box;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
75
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
76 } PidginAddBuddyData;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
77
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
78 typedef struct
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
79 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
80 PurpleAccount *account;
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
81 gchar *default_chat_name;
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
82
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
83 GtkWidget *window;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
84 GtkWidget *account_menu;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
85 GtkWidget *alias_entry;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
86 GtkWidget *group_combo;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
87 GtkWidget *entries_box;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
88 GtkSizeGroup *sg;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
89
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
90 GList *entries;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
91
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
92 } PidginAddChatData;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
93
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
94 typedef struct
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
95 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
96 PurpleAccount *account;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
97
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
98 GtkWidget *window;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
99 GtkWidget *account_menu;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
100 GtkWidget *entries_box;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
101 GtkSizeGroup *sg;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
102
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
103 GList *entries;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
104 } PidginJoinChatData;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
105
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
106
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
107 static GtkWidget *accountmenu = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
108
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
109 static guint visibility_manager_count = 0;
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
110 static gboolean gtk_blist_obscured = FALSE;
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
111 static gboolean editing_blist = FALSE;
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
112
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
113 static GList *pidgin_blist_sort_methods = NULL;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
114 static struct pidgin_blist_sort_method *current_sort_method = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
115 static void sort_method_none(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
116
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
117 /* The functions we use for sorting aren't available in gtk 2.0.x, and
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
118 * segfault in 2.2.0. 2.2.1 is known to work, so I'll require that */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
119 #if GTK_CHECK_VERSION(2,2,1)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
120 static void sort_method_alphabetical(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
121 static void sort_method_status(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
122 static void sort_method_log(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
123 #endif
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
124 static PidginBuddyList *gtkblist = NULL;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
125
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
126 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
127 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean statusChange);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
128 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
129 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
130 static void pidgin_blist_update_group(PurpleBuddyList *list, PurpleBlistNode *node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
131 static void pidgin_blist_update_contact(PurpleBuddyList *list, PurpleBlistNode *node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
132 static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
133 static const char *item_factory_translate_func (const char *path, gpointer func_data);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
134 static gboolean get_iter_from_node(PurpleBlistNode *node, GtkTreeIter *iter);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
135 static void redo_buddy_list(PurpleBuddyList *list, gboolean remove, gboolean rerender);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
136 static void pidgin_blist_collapse_contact_cb(GtkWidget *w, PurpleBlistNode *node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
137 static char *pidgin_get_group_title(PurpleBlistNode *gnode, gboolean expanded);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
138
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
139 static void pidgin_blist_tooltip_destroy(void);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
140
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
141 struct _pidgin_blist_node {
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
142 GtkTreeRowReference *row;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
143 gboolean contact_expanded;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
144 gboolean recent_signonoff;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
145 gint recent_signonoff_timer;
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
146 };
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
147
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
148 static char dim_grey_string[8] = "";
10144
22c7584a403d [gaim-migrate @ 11216]
Mark Doliner <markdoliner@pidgin.im>
parents: 10129
diff changeset
149 static char *dim_grey()
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
150 {
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
151 if (!gtkblist)
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
152 return "dim grey";
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
153 if (!dim_grey_string[0]) {
18278
06bf54cee797 Chat topics in status line of chat infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18275
diff changeset
154 snprintf(dim_grey_string, sizeof(dim_grey_string), "%s", pidgin_get_dim_grey_string(gtkblist->treeview));
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
155 }
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
156 return dim_grey_string;
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
157 }
10144
22c7584a403d [gaim-migrate @ 11216]
Mark Doliner <markdoliner@pidgin.im>
parents: 10129
diff changeset
158
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
159 /***************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
160 * Callbacks *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
161 ***************************************************/
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
162 static gboolean gtk_blist_visibility_cb(GtkWidget *w, GdkEventVisibility *event, gpointer data)
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
163 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
164 if (event->state == GDK_VISIBILITY_FULLY_OBSCURED)
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
165 gtk_blist_obscured = TRUE;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
166 else if (gtk_blist_obscured) {
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
167 gtk_blist_obscured = FALSE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
168 pidgin_blist_refresh_timer(purple_get_blist());
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
169 }
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
170
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
171 /* continue to handle event normally */
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
172 return FALSE;
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
173 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
174
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
175 static gboolean gtk_blist_window_state_cb(GtkWidget *w, GdkEventWindowState *event, gpointer data)
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
176 {
18347
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
177 #if GTK_CHECK_VERSION(2,2,0)
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
178 if(event->changed_mask & GDK_WINDOW_STATE_WITHDRAWN) {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
179 if(event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN)
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
180 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", FALSE);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
181 else {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
182 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", TRUE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
183 pidgin_blist_refresh_timer(purple_get_blist());
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
184 }
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
185 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
186
12279
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
187 if(event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) {
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
188 if(event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED)
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
189 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", TRUE);
12279
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
190 else
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
191 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", FALSE);
12279
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
192 }
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
193
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
194 /* Refresh gtkblist if un-iconifying */
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
195 if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED){
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
196 if (!(event->new_window_state & GDK_WINDOW_STATE_ICONIFIED))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
197 pidgin_blist_refresh_timer(purple_get_blist());
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
198 }
18347
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
199 #else
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
200 /* At least gtk+ 2.0.6 does not properly set the change_mask when unsetting a
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
201 * GdkWindowState flag. To work around, the window state will be explicitly
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
202 * queried on these older versions of gtk+. See pidgin ticket #739.
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
203 */
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
204 GdkWindowState new_window_state = gdk_window_get_state(G_OBJECT(gtkblist->window->window));
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
205
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
206 if(new_window_state & GDK_WINDOW_STATE_WITHDRAWN) {
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
207 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", FALSE);
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
208 } else {
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
209 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", TRUE);
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
210 pidgin_blist_refresh_timer(purple_get_blist());
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
211 }
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
212
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
213 if(new_window_state & GDK_WINDOW_STATE_MAXIMIZED)
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
214 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", TRUE);
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
215 else
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
216 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", FALSE);
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
217
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
218 if (!(new_window_state & GDK_WINDOW_STATE_ICONIFIED))
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
219 pidgin_blist_refresh_timer(purple_get_blist());
b80fbc607f57 Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents: 18314
diff changeset
220 #endif
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
221
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
222 return FALSE;
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
223 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
224
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
225 static gboolean gtk_blist_delete_cb(GtkWidget *w, GdkEventAny *event, gpointer data)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
226 {
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
227 if(visibility_manager_count)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
228 purple_blist_set_visible(FALSE);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
229 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
230 purple_core_quit();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
231
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
232 /* we handle everything, event should not propogate further */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
233 return TRUE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
234 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
235
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
236 static gboolean gtk_blist_configure_cb(GtkWidget *w, GdkEventConfigure *event, gpointer data)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
237 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
238 /* unfortunately GdkEventConfigure ignores the window gravity, but *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
239 * the only way we have of setting the position doesn't. we have to *
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
240 * call get_position because it does pay attention to the gravity. *
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
241 * this is inefficient and I agree it sucks, but it's more likely *
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
242 * to work correctly. - Robot101 */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
243 gint x, y;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
244
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
245 /* check for visibility because when we aren't visible, this will *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
246 * give us bogus (0,0) coordinates. - xOr */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
247 if (GTK_WIDGET_VISIBLE(w))
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
248 gtk_window_get_position(GTK_WINDOW(w), &x, &y);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
249 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
250 return FALSE; /* carry on normally */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
251
13768
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
252 #ifdef _WIN32
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
253 /* Workaround for GTK+ bug # 169811 - "configure_event" is fired
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
254 * when the window is being maximized */
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
255 if (gdk_window_get_state(w->window)
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
256 & GDK_WINDOW_STATE_MAXIMIZED) {
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
257 return FALSE;
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
258 }
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
259 #endif
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
260
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
261 /* don't save if nothing changed */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
262 if (x == purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/x") &&
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
263 y == purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/y") &&
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
264 event->width == purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width") &&
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
265 event->height == purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/height")) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
266
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
267 return FALSE; /* carry on normally */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
268 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
269
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
270 /* don't save off-screen positioning */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
271 if (x + event->width < 0 ||
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
272 y + event->height < 0 ||
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
273 x > gdk_screen_width() ||
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
274 y > gdk_screen_height()) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
275
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
276 return FALSE; /* carry on normally */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
277 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
278
12279
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
279 /* ignore changes when maximized */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
280 if(purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized"))
12279
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
281 return FALSE;
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
282
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
283 /* store the position */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
284 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/blist/x", x);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
285 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/blist/y", y);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
286 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/blist/width", event->width);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
287 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/blist/height", event->height);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
288
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
289 /* continue to handle event normally */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
290 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
291 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
292
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
293 static void gtk_blist_menu_info_cb(GtkWidget *w, PurpleBuddy *b)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
294 {
17360
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17180
diff changeset
295 pidgin_retrieve_user_info(b->account->gc, purple_buddy_get_name(b));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
296 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
297
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
298 static void gtk_blist_menu_im_cb(GtkWidget *w, PurpleBuddy *b)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
299 {
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
300 pidgin_dialogs_im_with_user(b->account, b->name);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
301 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
302
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
303 static void gtk_blist_menu_send_file_cb(GtkWidget *w, PurpleBuddy *b)
9466
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
304 {
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
305 serv_send_file(b->account->gc, b->name, NULL);
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
306 }
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
307
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
308 static void gtk_blist_menu_autojoin_cb(GtkWidget *w, PurpleChat *chat)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
309 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
310 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-autojoin",
7693
1f736efbd12d [gaim-migrate @ 8338]
Nathan Walp <nwalp@pidgin.im>
parents: 7662
diff changeset
311 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w)));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
312 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
313
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
314 static void gtk_blist_join_chat(PurpleChat *chat)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
315 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
316 PurpleConversation *conv;
18280
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
317 PurplePluginProtocolInfo *prpl_info;
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
318 const char *name;
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
319 char *chat_name;
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
320
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
321 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_find_prpl(purple_account_get_protocol_id(chat->account)));
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
322
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
323 if (prpl_info && prpl_info->get_chat_name)
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
324 chat_name = prpl_info->get_chat_name(chat->components);
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
325 else
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
326 chat_name = NULL;
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
327
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
328 if (chat_name)
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
329 name = chat_name;
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
330 else
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
331 name = purple_chat_get_name(chat);
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
332
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
333 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, name,
12576
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
334 chat->account);
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
335
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
336 if (conv != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
337 purple_conversation_present(conv);
12592
5e1ce1a49ddb [gaim-migrate @ 14922]
Richard Laager <rlaager@pidgin.im>
parents: 12589
diff changeset
338
5e1ce1a49ddb [gaim-migrate @ 14922]
Richard Laager <rlaager@pidgin.im>
parents: 12589
diff changeset
339 serv_join_chat(chat->account->gc, chat->components);
18280
418dc6f0b080 fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@pidgin.im>
parents: 18278
diff changeset
340 g_free(chat_name);
12576
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
341 }
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
342
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
343 static void gtk_blist_menu_join_cb(GtkWidget *w, PurpleChat *chat)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
344 {
12576
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
345 gtk_blist_join_chat(chat);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
346 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
347
18270
244f38e6bf90 Fix a compile warning with gtk < 2.6
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18268
diff changeset
348 #if GTK_CHECK_VERSION(2,6,0)
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
349 static void gtk_blist_renderer_editing_cancelled_cb(GtkCellRenderer *renderer, PurpleBuddyList *list)
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
350 {
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
351 editing_blist = FALSE;
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
352 pidgin_blist_refresh(list);
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
353 }
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
354
16357
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
355 static void gtk_blist_renderer_editing_started_cb(GtkCellRenderer *renderer,
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
356 GtkCellEditable *editable,
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
357 gchar *path_str,
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
358 gpointer user_data)
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
359 {
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
360 GtkTreeIter iter;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
361 GtkTreePath *path = NULL;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
362 GValue val;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
363 PurpleBlistNode *node;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
364 const char *text = NULL;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
365
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
366 path = gtk_tree_path_new_from_string (path_str);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
367 gtk_tree_model_get_iter (GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
368 gtk_tree_path_free (path);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
369 val.g_type = 0;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
370 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
371 node = g_value_get_pointer(&val);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
372
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
373 switch (node->type) {
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
374 case PURPLE_BLIST_CONTACT_NODE:
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
375 text = purple_contact_get_alias((PurpleContact *)node);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
376 break;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
377 case PURPLE_BLIST_BUDDY_NODE:
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
378 text = purple_buddy_get_alias((PurpleBuddy *)node);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
379 break;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
380 case PURPLE_BLIST_GROUP_NODE:
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
381 text = ((PurpleGroup *)node)->name;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
382 break;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
383 default:
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
384 g_return_if_reached();
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
385 }
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
386
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
387 if (GTK_IS_ENTRY (editable)) {
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
388 GtkEntry *entry = GTK_ENTRY (editable);
17143
fbc8a7bdb006 Patch #702, Info not reset on URL redirect
Sean Egan <seanegan@pidgin.im>
parents: 17141
diff changeset
389 gtk_entry_set_text(entry, text);
fbc8a7bdb006 Patch #702, Info not reset on URL redirect
Sean Egan <seanegan@pidgin.im>
parents: 17141
diff changeset
390 }
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
391 editing_blist = TRUE;
16357
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
392 }
18270
244f38e6bf90 Fix a compile warning with gtk < 2.6
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18268
diff changeset
393 #endif
16357
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
394
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
395 static void gtk_blist_renderer_edited_cb(GtkCellRendererText *text_rend, char *arg1,
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
396 char *arg2, PurpleBuddyList *list)
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
397 {
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
398 GtkTreeIter iter;
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
399 GtkTreePath *path;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
400 GValue val;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
401 PurpleBlistNode *node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
402 PurpleGroup *dest;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
403
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
404 editing_blist = FALSE;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
405 path = gtk_tree_path_new_from_string (arg1);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
406 gtk_tree_model_get_iter (GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
407 gtk_tree_path_free (path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
408 val.g_type = 0;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
409 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
410 node = g_value_get_pointer(&val);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
411 gtk_tree_view_set_enable_search (GTK_TREE_VIEW(gtkblist->treeview), TRUE);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
412 g_object_set(G_OBJECT(gtkblist->text_rend), "editable", FALSE, NULL);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
413
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
414 switch (node->type)
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
415 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
416 case PURPLE_BLIST_CONTACT_NODE:
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
417 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
418 PurpleContact *contact = (PurpleContact *)node;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
419 struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)node->ui_data;
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
420
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
421 if (contact->alias || gtknode->contact_expanded)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
422 purple_blist_alias_contact(contact, arg2);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
423 else
12478
e752c74ff854 [gaim-migrate @ 14789]
Aleksander Piotrowski <alek@nic.com.pl>
parents: 12474
diff changeset
424 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
425 PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
426 purple_blist_alias_buddy(buddy, arg2);
12478
e752c74ff854 [gaim-migrate @ 14789]
Aleksander Piotrowski <alek@nic.com.pl>
parents: 12474
diff changeset
427 serv_alias_buddy(buddy);
e752c74ff854 [gaim-migrate @ 14789]
Aleksander Piotrowski <alek@nic.com.pl>
parents: 12474
diff changeset
428 }
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
429 }
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
430 break;
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
431
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
432 case PURPLE_BLIST_BUDDY_NODE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
433 purple_blist_alias_buddy((PurpleBuddy*)node, arg2);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
434 serv_alias_buddy((PurpleBuddy *)node);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
435 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
436 case PURPLE_BLIST_GROUP_NODE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
437 dest = purple_find_group(arg2);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
438 if (dest != NULL && strcmp(arg2, ((PurpleGroup*) node)->name)) {
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
439 pidgin_dialogs_merge_groups((PurpleGroup*) node, arg2);
14526
272b75278ff1 [gaim-migrate @ 17178]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14518
diff changeset
440 } else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
441 purple_blist_rename_group((PurpleGroup*)node, arg2);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
442 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
443 case PURPLE_BLIST_CHAT_NODE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
444 purple_blist_alias_chat((PurpleChat*)node, arg2);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
445 break;
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
446 default:
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
447 break;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
448 }
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
449 pidgin_blist_refresh(list);
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
450 }
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
451
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
452 static void gtk_blist_menu_alias_cb(GtkWidget *w, PurpleBlistNode *node)
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
453 {
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
454 GtkTreeIter iter;
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
455 GtkTreePath *path;
11494
60bfb30f6cba [gaim-migrate @ 13738]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11490
diff changeset
456
11258
6863ab327ec2 [gaim-migrate @ 13433]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11257
diff changeset
457 if (!(get_iter_from_node(node, &iter))) {
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
458 /* This is either a bug, or the buddy is in a collapsed contact */
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
459 node = node->parent;
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
460 if (!get_iter_from_node(node, &iter))
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
461 /* Now it's definitely a bug */
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
462 return;
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
463 }
11258
6863ab327ec2 [gaim-migrate @ 13433]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11257
diff changeset
464
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
465 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
466 g_object_set(G_OBJECT(gtkblist->text_rend), "editable", TRUE, NULL);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
467 gtk_tree_view_set_enable_search (GTK_TREE_VIEW(gtkblist->treeview), FALSE);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
468 gtk_widget_grab_focus(gtkblist->treeview);
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
469 #if GTK_CHECK_VERSION(2,2,0)
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
470 gtk_tree_view_set_cursor_on_cell(GTK_TREE_VIEW(gtkblist->treeview), path,
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
471 gtkblist->text_column, gtkblist->text_rend, TRUE);
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
472 #else
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
473 gtk_tree_view_set_cursor(GTK_TREE_VIEW(gtkblist->treeview), path, gtkblist->text_column, TRUE);
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
474 #endif
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
475 gtk_tree_path_free(path);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
476 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
477
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
478 static void gtk_blist_menu_bp_cb(GtkWidget *w, PurpleBuddy *b)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
479 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
480 pidgin_pounce_editor_show(b->account, b->name, NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
481 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
482
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
483 static void gtk_blist_menu_showlog_cb(GtkWidget *w, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
484 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
485 PurpleLogType type;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
486 PurpleAccount *account;
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
487 char *name = NULL;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
488
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
489 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
490
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
491 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
492 PurpleBuddy *b = (PurpleBuddy*) node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
493 type = PURPLE_LOG_IM;
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
494 name = g_strdup(b->name);
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
495 account = b->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
496 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
497 PurpleChat *c = (PurpleChat*) node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
498 PurplePluginProtocolInfo *prpl_info = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
499 type = PURPLE_LOG_CHAT;
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
500 account = c->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
501 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_find_prpl(purple_account_get_protocol_id(account)));
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
502 if (prpl_info && prpl_info->get_chat_name) {
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
503 name = prpl_info->get_chat_name(c->components);
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
504 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
505 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
506 pidgin_log_show_contact((PurpleContact *)node);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
507 pidgin_clear_cursor(gtkblist->window);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
508 return;
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
509 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
510 pidgin_clear_cursor(gtkblist->window);
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
511
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
512 /* This callback should not have been registered for a node
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
513 * that doesn't match the type of one of the blocks above. */
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
514 g_return_if_reached();
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
515 }
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
516
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
517 if (name && account) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
518 pidgin_log_show(type, name, account);
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
519 g_free(name);
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
520
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
521 pidgin_clear_cursor(gtkblist->window);
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
522 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
523 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
524
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
525 static void gtk_blist_show_systemlog_cb()
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
526 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
527 pidgin_syslog_show();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
528 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
529
17419
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
530 static void gtk_blist_show_onlinehelp_cb()
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
531 {
17748
a0105917df6f use pidgin.im/documentation as the help url (which redirects already)
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17747
diff changeset
532 purple_notify_uri(NULL, PURPLE_WEBSITE "documentation");
17419
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
533 }
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
534
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
535 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
536 do_join_chat(PidginJoinChatData *data)
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
537 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
538 if (data)
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
539 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
540 GHashTable *components =
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
541 g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
542 GList *tmp;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
543 PurpleChat *chat;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
544
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
545 for (tmp = data->entries; tmp != NULL; tmp = tmp->next)
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
546 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
547 if (g_object_get_data(tmp->data, "is_spin"))
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
548 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
549 g_hash_table_replace(components,
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
550 g_strdup(g_object_get_data(tmp->data, "identifier")),
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
551 g_strdup_printf("%d",
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
552 gtk_spin_button_get_value_as_int(tmp->data)));
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
553 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
554 else
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
555 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
556 g_hash_table_replace(components,
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
557 g_strdup(g_object_get_data(tmp->data, "identifier")),
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
558 g_strdup(gtk_entry_get_text(tmp->data)));
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
559 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
560 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
561
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
562 chat = purple_chat_new(data->account, NULL, components);
12576
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
563 gtk_blist_join_chat(chat);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
564 purple_blist_remove_chat(chat);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
565 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
566 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
567
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
568 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
569 do_joinchat(GtkWidget *dialog, int id, PidginJoinChatData *info)
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
570 {
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
571 switch(id)
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
572 {
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
573 case GTK_RESPONSE_OK:
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
574 do_join_chat(info);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
575
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
576 break;
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
577 }
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
578
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
579 gtk_widget_destroy(GTK_WIDGET(dialog));
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
580 g_list_free(info->entries);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
581 g_free(info);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
582 }
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
583
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
584 /*
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
585 * Check the values of all the text entry boxes. If any required input
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
586 * strings are empty then don't allow the user to click on "OK."
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
587 */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
588 static void
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
589 joinchat_set_sensitive_if_input_cb(GtkWidget *entry, gpointer user_data)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
590 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
591 PidginJoinChatData *data;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
592 GList *tmp;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
593 const char *text;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
594 gboolean required;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
595 gboolean sensitive = TRUE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
596
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
597 data = user_data;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
598
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
599 for (tmp = data->entries; tmp != NULL; tmp = tmp->next)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
600 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
601 if (!g_object_get_data(tmp->data, "is_spin"))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
602 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
603 required = GPOINTER_TO_INT(g_object_get_data(tmp->data, "required"));
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
604 text = gtk_entry_get_text(tmp->data);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
605 if (required && (*text == '\0'))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
606 sensitive = FALSE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
607 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
608 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
609
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
610 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), GTK_RESPONSE_OK, sensitive);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
611 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
612
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
613 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
614 pidgin_blist_update_privacy_cb(PurpleBuddy *buddy)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
615 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
616 pidgin_blist_update_buddy(purple_get_blist(), (PurpleBlistNode*)(buddy), TRUE);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
617 }
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
618
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
619 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
620 rebuild_joinchat_entries(PidginJoinChatData *data)
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
621 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
622 PurpleConnection *gc;
15051
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
623 GList *list = NULL, *tmp;
9770
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
624 GHashTable *defaults = NULL;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
625 struct proto_chat_entry *pce;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
626 gboolean focus = TRUE;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
627
10127
3ea502c95653 [gaim-migrate @ 11165]
Daniel Atallah <datallah@pidgin.im>
parents: 10118
diff changeset
628 g_return_if_fail(data->account != NULL);
3ea502c95653 [gaim-migrate @ 11165]
Daniel Atallah <datallah@pidgin.im>
parents: 10118
diff changeset
629
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
630 gc = purple_account_get_connection(data->account);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
631
15051
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
632 while ((tmp = gtk_container_get_children(GTK_CONTAINER(data->entries_box))))
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
633 gtk_widget_destroy(tmp->data);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
634
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
635 g_list_free(data->entries);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
636 data->entries = NULL;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
637
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
638 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info != NULL)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
639 list = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
640
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
641 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
642 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, NULL);
9770
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
643
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
644 for (tmp = list; tmp; tmp = tmp->next)
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
645 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
646 GtkWidget *label;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
647 GtkWidget *rowbox;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
648 GtkWidget *input;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
649
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
650 pce = tmp->data;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
651
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
652 rowbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
653 gtk_box_pack_start(GTK_BOX(data->entries_box), rowbox, FALSE, FALSE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
654
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
655 label = gtk_label_new_with_mnemonic(pce->label);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
656 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
657 gtk_size_group_add_widget(data->sg, label);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
658 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
659
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
660 if (pce->is_int)
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
661 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
662 GtkObject *adjust;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
663 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max,
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
664 1, 10, 10);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
665 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
666 gtk_widget_set_size_request(input, 50, -1);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
667 gtk_box_pack_end(GTK_BOX(rowbox), input, FALSE, FALSE, 0);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
668 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
669 else
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
670 {
9770
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
671 char *value;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
672 input = gtk_entry_new();
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
673 gtk_entry_set_activates_default(GTK_ENTRY(input), TRUE);
9770
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
674 value = g_hash_table_lookup(defaults, pce->identifier);
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
675 if (value != NULL)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
676 gtk_entry_set_text(GTK_ENTRY(input), value);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
677 if (pce->secret)
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11983
diff changeset
678 {
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
679 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE);
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15386
diff changeset
680 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*')
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
681 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR);
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11983
diff changeset
682 }
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
683 gtk_box_pack_end(GTK_BOX(rowbox), input, TRUE, TRUE, 0);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
684 g_signal_connect(G_OBJECT(input), "changed",
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
685 G_CALLBACK(joinchat_set_sensitive_if_input_cb), data);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
686 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
687
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
688 /* Do the following for any type of input widget */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
689 if (focus)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
690 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
691 gtk_widget_grab_focus(input);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
692 focus = FALSE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
693 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
694 gtk_label_set_mnemonic_widget(GTK_LABEL(label), input);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
695 pidgin_set_accessible_label(input, label);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
696 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
697 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int));
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
698 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required));
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
699 data->entries = g_list_append(data->entries, input);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
700
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
701 g_free(pce);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
702 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
703
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
704 g_list_free(list);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
705 g_hash_table_destroy(defaults);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
706
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
707 /* Set whether the "OK" button should be clickable initially */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
708 joinchat_set_sensitive_if_input_cb(NULL, data);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
709
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
710 gtk_widget_show_all(data->entries_box);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
711 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
712
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
713 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
714 joinchat_select_account_cb(GObject *w, PurpleAccount *account,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
715 PidginJoinChatData *data)
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
716 {
13560
bc440f376ffb [gaim-migrate @ 15938]
Etan Reisner <deryni@pidgin.im>
parents: 13546
diff changeset
717 data->account = account;
bc440f376ffb [gaim-migrate @ 15938]
Etan Reisner <deryni@pidgin.im>
parents: 13546
diff changeset
718 rebuild_joinchat_entries(data);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
719 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
720
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
721 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
722 chat_account_filter_func(PurpleAccount *account)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
723 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
724 PurpleConnection *gc = purple_account_get_connection(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
725 PurplePluginProtocolInfo *prpl_info = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
726
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
727 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
728
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
729 return (prpl_info->chat_info != NULL);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
730 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
731
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
732 gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
733 pidgin_blist_joinchat_is_showable()
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
734 {
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
735 GList *c;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
736 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
737
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
738 for (c = purple_connections_get_all(); c != NULL; c = c->next) {
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
739 gc = c->data;
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
740
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
741 if (chat_account_filter_func(purple_connection_get_account(gc)))
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
742 return TRUE;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
743 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
744
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
745 return FALSE;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
746 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
747
8305
5a6d1168a8b3 [gaim-migrate @ 9029]
Christian Hammond <chipx86@chipx86.com>
parents: 8303
diff changeset
748 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
749 pidgin_blist_joinchat_show(void)
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
750 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
751 GtkWidget *hbox, *vbox;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
752 GtkWidget *rowbox;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
753 GtkWidget *label;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
754 PidginBuddyList *gtkblist;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
755 GtkWidget *img = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
756 PidginJoinChatData *data = NULL;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
757
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
758 gtkblist = PIDGIN_BLIST(purple_get_blist());
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
759 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
760 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
761 data = g_new0(PidginJoinChatData, 1);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
762
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
763 data->window = gtk_dialog_new_with_buttons(_("Join a Chat"),
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
764 NULL, GTK_DIALOG_NO_SEPARATOR,
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
765 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
766 PIDGIN_STOCK_CHAT, GTK_RESPONSE_OK, NULL);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
767 gtk_dialog_set_default_response(GTK_DIALOG(data->window), GTK_RESPONSE_OK);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
768 gtk_container_set_border_width(GTK_CONTAINER(data->window), PIDGIN_HIG_BOX_SPACE);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
769 gtk_window_set_resizable(GTK_WINDOW(data->window), FALSE);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
770 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BORDER);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
771 gtk_container_set_border_width(
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
772 GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BOX_SPACE);
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
773 gtk_window_set_role(GTK_WINDOW(data->window), "join_chat");
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
774
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
775 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
776 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
777 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
778 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
779
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
780 vbox = gtk_vbox_new(FALSE, 5);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
781 gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
782 gtk_container_add(GTK_CONTAINER(hbox), vbox);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
783
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
784 label = gtk_label_new(_("Please enter the appropriate information "
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
785 "about the chat you would like to join.\n"));
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
786 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
787 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
788 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
789
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
790 rowbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
791 gtk_box_pack_start(GTK_BOX(vbox), rowbox, TRUE, TRUE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
792
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
793 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
794
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
795 label = gtk_label_new_with_mnemonic(_("_Account:"));
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
796 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
797 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
798 gtk_size_group_add_widget(data->sg, label);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
799
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
800 data->account_menu = pidgin_account_option_menu_new(NULL, FALSE,
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
801 G_CALLBACK(joinchat_select_account_cb),
9987
2396bd099335 [gaim-migrate @ 10900]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9959
diff changeset
802 chat_account_filter_func, data);
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
803 gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
804 gtk_label_set_mnemonic_widget(GTK_LABEL(label),
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
805 GTK_WIDGET(data->account_menu));
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
806 pidgin_set_accessible_label (data->account_menu, label);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
807
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
808 data->entries_box = gtk_vbox_new(FALSE, 5);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
809 gtk_container_add(GTK_CONTAINER(vbox), data->entries_box);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
810 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
811
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
812 data->account = pidgin_account_option_menu_get_selected(data->account_menu);
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
813
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
814 rebuild_joinchat_entries(data);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
815
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
816 g_signal_connect(G_OBJECT(data->window), "response",
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
817 G_CALLBACK(do_joinchat), data);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
818
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
819 g_object_unref(data->sg);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
820
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
821 gtk_widget_show_all(data->window);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
822 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
823
17180
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
824 static void gtk_blist_row_expanded_cb(GtkTreeView *tv, GtkTreeIter *iter, GtkTreePath *path, gpointer user_data)
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
825 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
826 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
827 GValue val;
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
828
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
829 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
830 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), iter, NODE_COLUMN, &val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
831
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
832 node = g_value_get_pointer(&val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
833
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
834 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
835 char *title;
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
836
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
837 title = pidgin_get_group_title(node, TRUE);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
838
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
839 gtk_tree_store_set(gtkblist->treemodel, iter,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
840 NAME_COLUMN, title,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
841 -1);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
842
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
843 g_free(title);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
844
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
845 purple_blist_node_set_bool(node, "collapsed", FALSE);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
846 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
847 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
848
17180
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
849 static void gtk_blist_row_collapsed_cb(GtkTreeView *tv, GtkTreeIter *iter, GtkTreePath *path, gpointer user_data)
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
850 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
851 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
852 GValue val;
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
853
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
854 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
855 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), iter, NODE_COLUMN, &val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
856
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
857 node = g_value_get_pointer(&val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
858
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
859 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
860 char *title;
17180
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
861 struct _pidgin_blist_node *gtknode;
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
862 PurpleBlistNode *cnode;
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
863
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
864 title = pidgin_get_group_title(node, FALSE);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
865
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
866 gtk_tree_store_set(gtkblist->treemodel, iter,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
867 NAME_COLUMN, title,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
868 -1);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
869
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
870 g_free(title);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
871
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
872 purple_blist_node_set_bool(node, "collapsed", TRUE);
17180
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
873
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
874 for(cnode = node->child; cnode; cnode = cnode->next) {
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
875 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
876 gtknode = cnode->ui_data;
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
877 if (!gtknode->contact_expanded)
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
878 continue;
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
879 gtknode->contact_expanded = FALSE;
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
880 pidgin_blist_update_contact(NULL, cnode);
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
881 }
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
882 }
280b99127139 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17143
diff changeset
883
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
884 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
885 pidgin_blist_collapse_contact_cb(NULL, node);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
886 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
887 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
888
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
889 static void gtk_blist_row_activated_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
890 PurpleBlistNode *node;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
891 GtkTreeIter iter;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
892 GValue val;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
893
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
894 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
895
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
896 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
897 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
898 node = g_value_get_pointer(&val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
899
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
900 if(PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
901 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
902
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
903 if(PURPLE_BLIST_NODE_IS_CONTACT(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
904 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
905 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
906 buddy = (PurpleBuddy*)node;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
907
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
908 pidgin_dialogs_im_with_user(buddy->account, buddy->name);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
909 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
910 gtk_blist_join_chat((PurpleChat *)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
911 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
912 /* if (gtk_tree_view_row_expanded(tv, path))
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
913 gtk_tree_view_collapse_row(tv, path);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
914 else
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
915 gtk_tree_view_expand_row(tv,path,FALSE);*/
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
916 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
917 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
918
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
919 static void pidgin_blist_add_chat_cb()
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
920 {
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
921 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview));
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
922 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
923 PurpleBlistNode *node;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
924
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
925 if(gtk_tree_selection_get_selected(sel, NULL, &iter)){
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
926 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
927 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
928 purple_blist_request_add_chat(NULL, (PurpleGroup*)node->parent->parent, NULL, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
929 if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
930 purple_blist_request_add_chat(NULL, (PurpleGroup*)node->parent, NULL, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
931 else if (PURPLE_BLIST_NODE_IS_GROUP(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
932 purple_blist_request_add_chat(NULL, (PurpleGroup*)node, NULL, NULL);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
933 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
934 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
935 purple_blist_request_add_chat(NULL, NULL, NULL, NULL);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
936 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
937 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
938
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
939 static void pidgin_blist_add_buddy_cb()
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
940 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
941 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview));
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
942 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
943 PurpleBlistNode *node;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
944
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
945 if(gtk_tree_selection_get_selected(sel, NULL, &iter)){
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
946 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
947 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
948 purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node->parent->parent)->name,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
949 NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
950 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
951 || PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
952 purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node->parent)->name, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
953 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
954 purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node)->name, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
955 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
956 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
957 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
958 purple_blist_request_add_buddy(NULL, NULL, NULL, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
959 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
960 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
961
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
962 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
963 pidgin_blist_remove_cb (GtkWidget *w, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
964 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
965 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
966 pidgin_dialogs_remove_buddy((PurpleBuddy*)node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
967 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
968 pidgin_dialogs_remove_chat((PurpleChat*)node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
969 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
970 pidgin_dialogs_remove_group((PurpleGroup*)node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
971 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
972 pidgin_dialogs_remove_contact((PurpleContact*)node);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
973 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
974 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
975
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
976 struct _expand {
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
977 GtkTreeView *treeview;
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
978 GtkTreePath *path;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
979 PurpleBlistNode *node;
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
980 };
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
981
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
982 static gboolean
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
983 scroll_to_expanded_cell(gpointer data)
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
984 {
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
985 struct _expand *ex = data;
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
986 gtk_tree_view_scroll_to_cell(ex->treeview, ex->path, NULL, FALSE, 0, 0);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
987 pidgin_blist_update_contact(NULL, ex->node);
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
988
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
989 gtk_tree_path_free(ex->path);
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
990 g_free(ex);
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
991
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
992 return FALSE;
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
993 }
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
994
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
995 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
996 pidgin_blist_expand_contact_cb(GtkWidget *w, PurpleBlistNode *node)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
997 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
998 struct _pidgin_blist_node *gtknode;
9632
e295aa712589 [gaim-migrate @ 10476]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
999 GtkTreeIter iter, parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1000 PurpleBlistNode *bnode;
10325
9bb530214bae [gaim-migrate @ 11532]
Mark Doliner <markdoliner@pidgin.im>
parents: 10320
diff changeset
1001 GtkTreePath *path;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1002
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1003 if(!PURPLE_BLIST_NODE_IS_CONTACT(node))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1004 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1005
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1006 gtknode = (struct _pidgin_blist_node *)node->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1007
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1008 gtknode->contact_expanded = TRUE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1009
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1010 for(bnode = node->child; bnode; bnode = bnode->next) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1011 pidgin_blist_update(NULL, bnode);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1012 }
10353
830e54bb7fa0 [gaim-migrate @ 11570]
Mark Doliner <markdoliner@pidgin.im>
parents: 10352
diff changeset
1013
9632
e295aa712589 [gaim-migrate @ 10476]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
1014 /* This ensures that the bottom buddy is visible, i.e. not scrolled off the alignment */
14748
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1015 if (get_iter_from_node(node, &parent)) {
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1016 struct _expand *ex = g_new0(struct _expand, 1);
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1017
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1018 gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(gtkblist->treemodel), &iter, &parent,
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1019 gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gtkblist->treemodel), &parent) -1);
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1020 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1021
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1022 /* Let the treeview draw so it knows where to scroll */
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1023 ex->treeview = GTK_TREE_VIEW(gtkblist->treeview);
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1024 ex->path = path;
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1025 ex->node = node->child;
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1026 g_idle_add(scroll_to_expanded_cell, ex);
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
1027 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1028 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1029
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1030 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1031 pidgin_blist_collapse_contact_cb(GtkWidget *w, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1032 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1033 PurpleBlistNode *bnode;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1034 struct _pidgin_blist_node *gtknode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1035
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1036 if(!PURPLE_BLIST_NODE_IS_CONTACT(node))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1037 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1038
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1039 gtknode = (struct _pidgin_blist_node *)node->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1040
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1041 gtknode->contact_expanded = FALSE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1042
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1043 for(bnode = node->child; bnode; bnode = bnode->next) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1044 pidgin_blist_update(NULL, bnode);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1045 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1046 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1047
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1048 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1049 toggle_privacy(GtkWidget *widget, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1050 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1051 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1052 PurpleAccount *account;
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1053 gboolean permitted;
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1054 const char *name;
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1055
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1056 if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1057 return;
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1058
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1059 buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1060 account = purple_buddy_get_account(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1061 name = purple_buddy_get_name(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1062
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1063 permitted = purple_privacy_check(account, name);
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1064
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1065 /* XXX: Perhaps ask whether to restore the previous lists where appropirate? */
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1066
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1067 if (permitted)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1068 purple_privacy_deny(account, name, FALSE, FALSE);
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1069 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1070 purple_privacy_allow(account, name, FALSE, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1071
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1072 pidgin_blist_update(purple_get_blist(), node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1073 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1074
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1075 void pidgin_append_blist_node_privacy_menu(GtkWidget *menu, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1076 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1077 PurpleBuddy *buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1078 PurpleAccount *account;
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1079 gboolean permitted;
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1080
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1081 account = purple_buddy_get_account(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1082 permitted = purple_privacy_check(account, purple_buddy_get_name(buddy));
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1083
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1084 pidgin_new_item_from_stock(menu, permitted ? _("_Block") : _("Un_block"),
16068
b1dac315ed09 block and unblock have the right icons now
Nathan Walp <nwalp@pidgin.im>
parents: 16040
diff changeset
1085 permitted ? PIDGIN_STOCK_TOOLBAR_BLOCK : PIDGIN_STOCK_TOOLBAR_UNBLOCK, G_CALLBACK(toggle_privacy),
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1086 node, 0 ,0, NULL);
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1087 }
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1088
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9030
diff changeset
1089 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1090 pidgin_append_blist_node_proto_menu(GtkWidget *menu, PurpleConnection *gc,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1091 PurpleBlistNode *node)
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1092 {
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1093 GList *l, *ll;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1094 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1095
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1096 if(!prpl_info || !prpl_info->blist_node_menu)
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1097 return;
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1098
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1099 for(l = ll = prpl_info->blist_node_menu(node); l; l = l->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1100 PurpleMenuAction *act = (PurpleMenuAction *) l->data;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1101 pidgin_append_menu_action(menu, act, node);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1102 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1103 g_list_free(ll);
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1104 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1105
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9030
diff changeset
1106 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1107 pidgin_append_blist_node_extended_menu(GtkWidget *menu, PurpleBlistNode *node)
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1108 {
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1109 GList *l, *ll;
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1110
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1111 for(l = ll = purple_blist_node_get_extended_menu(node); l; l = l->next) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1112 PurpleMenuAction *act = (PurpleMenuAction *) l->data;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1113 pidgin_append_menu_action(menu, act, node);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1114 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1115 g_list_free(ll);
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1116 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1117
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1118 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1119 pidgin_blist_make_buddy_menu(GtkWidget *menu, PurpleBuddy *buddy, gboolean sub) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1120 PurplePluginProtocolInfo *prpl_info;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1121 PurpleContact *contact;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1122 gboolean contact_expanded = FALSE;
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1123
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1124 g_return_if_fail(menu);
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1125 g_return_if_fail(buddy);
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1126
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1127 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(buddy->account->gc->prpl);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1128
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1129 contact = purple_buddy_get_contact(buddy);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1130 if (contact) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1131 contact_expanded = ((struct _pidgin_blist_node *)(((PurpleBlistNode*)contact)->ui_data))->contact_expanded;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1132 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1133
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1134 if (prpl_info && prpl_info->get_info) {
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
1135 pidgin_new_item_from_stock(menu, _("Get _Info"), PIDGIN_STOCK_TOOLBAR_USER_INFO,
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1136 G_CALLBACK(gtk_blist_menu_info_cb), buddy, 0, 0, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1137 }
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
1138 pidgin_new_item_from_stock(menu, _("I_M"), PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW,
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1139 G_CALLBACK(gtk_blist_menu_im_cb), buddy, 0, 0, NULL);
9466
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
1140 if (prpl_info && prpl_info->send_file) {
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1141 if (!prpl_info->can_receive_file ||
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1142 prpl_info->can_receive_file(buddy->account->gc, buddy->name))
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1143 {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1144 pidgin_new_item_from_stock(menu, _("_Send File"),
16881
e6bca9e3d85c New Send File icon
Hylke Bons <hbons@pidgin.im>
parents: 16879
diff changeset
1145 PIDGIN_STOCK_TOOLBAR_SEND_FILE,
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1146 G_CALLBACK(gtk_blist_menu_send_file_cb),
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1147 buddy, 0, 0, NULL);
9466
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
1148 }
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
1149 }
12024
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents: 12016
diff changeset
1150
15622
024584b350fb context menu cleanup
Sean Egan <seanegan@pidgin.im>
parents: 15621
diff changeset
1151 pidgin_new_item_from_stock(menu, _("Add Buddy _Pounce"), NULL,
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1152 G_CALLBACK(gtk_blist_menu_bp_cb), buddy, 0, 0, NULL);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1153
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1154 if(((PurpleBlistNode*)buddy)->parent->child->next && !sub && !contact_expanded) {
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
1155 pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1156 G_CALLBACK(gtk_blist_menu_showlog_cb),
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1157 contact, 0, 0, NULL);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1158 } else if (!sub) {
15622
024584b350fb context menu cleanup
Sean Egan <seanegan@pidgin.im>
parents: 15621
diff changeset
1159 pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1160 G_CALLBACK(gtk_blist_menu_showlog_cb), buddy, 0, 0, NULL);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1161 }
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1162
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1163
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1164 pidgin_append_blist_node_proto_menu(menu, buddy->account->gc,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1165 (PurpleBlistNode *)buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1166 pidgin_append_blist_node_extended_menu(menu, (PurpleBlistNode *)buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1167
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1168 if (((PurpleBlistNode*)buddy)->parent->child->next && !sub && !contact_expanded) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1169 pidgin_separator(menu);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1170 pidgin_append_blist_node_privacy_menu(menu, (PurpleBlistNode *)buddy);
17559
55efe450728c Add the mnemonics I really meant to add before I got distracted by Add Chat
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17556
diff changeset
1171 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS,
9925
7f33ac0e1878 [gaim-migrate @ 10817]
Nathan Walp <nwalp@pidgin.im>
parents: 9918
diff changeset
1172 G_CALLBACK(gtk_blist_menu_alias_cb),
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1173 contact, 0, 0, NULL);
17559
55efe450728c Add the mnemonics I really meant to add before I got distracted by Add Chat
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17556
diff changeset
1174 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1175 G_CALLBACK(pidgin_blist_remove_cb),
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1176 contact, 0, 0, NULL);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
1177 } else if (!sub || contact_expanded) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1178 pidgin_separator(menu);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1179 pidgin_append_blist_node_privacy_menu(menu, (PurpleBlistNode *)buddy);
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1180 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS,
9925
7f33ac0e1878 [gaim-migrate @ 10817]
Nathan Walp <nwalp@pidgin.im>
parents: 9918
diff changeset
1181 G_CALLBACK(gtk_blist_menu_alias_cb), buddy, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1182 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1183 G_CALLBACK(pidgin_blist_remove_cb), buddy,
9925
7f33ac0e1878 [gaim-migrate @ 10817]
Nathan Walp <nwalp@pidgin.im>
parents: 9918
diff changeset
1184 0, 0, NULL);
7f33ac0e1878 [gaim-migrate @ 10817]
Nathan Walp <nwalp@pidgin.im>
parents: 9918
diff changeset
1185 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1186 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1187
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1188 static gboolean
17360
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17180
diff changeset
1189 gtk_blist_key_press_cb(GtkWidget *tv, GdkEventKey *event, gpointer data)
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17180
diff changeset
1190 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1191 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1192 GValue val;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1193 GtkTreeIter iter;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1194 GtkTreeSelection *sel;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1195
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1196 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1197 if(!gtk_tree_selection_get_selected(sel, NULL, &iter))
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1198 return FALSE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1199
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1200 val.g_type = 0;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1201 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1202 NODE_COLUMN, &val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1203 node = g_value_get_pointer(&val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1204
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1205 if(event->state & GDK_CONTROL_MASK &&
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1206 (event->keyval == 'o' || event->keyval == 'O')) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1207 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1208
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1209 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1210 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1211 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1212 buddy = (PurpleBuddy*)node;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1213 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1214 return FALSE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1215 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1216 if(buddy)
17360
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17180
diff changeset
1217 pidgin_retrieve_user_info(buddy->account->gc, buddy->name);
16283
46f324c5465f Patch from SuperMMX, "I would like to be able to rename (alias)
Mark Doliner <markdoliner@pidgin.im>
parents: 16263
diff changeset
1218 } else if (event->keyval == GDK_F2) {
46f324c5465f Patch from SuperMMX, "I would like to be able to rename (alias)
Mark Doliner <markdoliner@pidgin.im>
parents: 16263
diff changeset
1219 gtk_blist_menu_alias_cb(tv, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1220 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1221
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1222 return FALSE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1223 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1224
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1225 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1226 create_group_menu (PurpleBlistNode *node, PurpleGroup *g)
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1227 {
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1228 GtkWidget *menu;
11988
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
1229 GtkWidget *item;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1230
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1231 menu = gtk_menu_new();
16825
e81d38d1f0e6 if you're offline, and right-click on a group, you shouldn't be presented
Nathan Walp <nwalp@pidgin.im>
parents: 16805
diff changeset
1232 item = pidgin_new_item_from_stock(menu, _("Add a _Buddy"), GTK_STOCK_ADD,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1233 G_CALLBACK(pidgin_blist_add_buddy_cb), node, 0, 0, NULL);
16825
e81d38d1f0e6 if you're offline, and right-click on a group, you shouldn't be presented
Nathan Walp <nwalp@pidgin.im>
parents: 16805
diff changeset
1234 gtk_widget_set_sensitive(item, purple_connections_get_all() != NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1235 item = pidgin_new_item_from_stock(menu, _("Add a C_hat"), GTK_STOCK_ADD,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1236 G_CALLBACK(pidgin_blist_add_chat_cb), node, 0, 0, NULL);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1237 gtk_widget_set_sensitive(item, pidgin_blist_joinchat_is_showable());
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1238 pidgin_new_item_from_stock(menu, _("_Delete Group"), GTK_STOCK_REMOVE,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1239 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1240 pidgin_new_item_from_stock(menu, _("_Rename"), NULL,
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
1241 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL);
8952
b8bf830b3731 [gaim-migrate @ 9724]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8945
diff changeset
1242
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1243 pidgin_append_blist_node_extended_menu(menu, node);
8952
b8bf830b3731 [gaim-migrate @ 9724]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8945
diff changeset
1244
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1245 return menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1246 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1247
8586
c8c7a19da549 [gaim-migrate @ 9336]
Pekka Riikonen <priikone@silcnet.org>
parents: 8573
diff changeset
1248
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1249 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1250 create_chat_menu(PurpleBlistNode *node, PurpleChat *c) {
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1251 GtkWidget *menu;
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1252 gboolean autojoin;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1253
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1254 menu = gtk_menu_new();
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1255 autojoin = (purple_blist_node_get_bool(node, "gtk-autojoin") ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1256 (purple_blist_node_get_string(node, "gtk-autojoin") != NULL));
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1257
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1258 pidgin_new_item_from_stock(menu, _("_Join"), PIDGIN_STOCK_CHAT,
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1259 G_CALLBACK(gtk_blist_menu_join_cb), node, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1260 pidgin_new_check_item(menu, _("Auto-Join"),
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1261 G_CALLBACK(gtk_blist_menu_autojoin_cb), node, autojoin);
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
1262 pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
1263 G_CALLBACK(gtk_blist_menu_showlog_cb), node, 0, 0, NULL);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1264
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1265 pidgin_append_blist_node_proto_menu(menu, c->account->gc, node);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1266 pidgin_append_blist_node_extended_menu(menu, node);
8586
c8c7a19da549 [gaim-migrate @ 9336]
Pekka Riikonen <priikone@silcnet.org>
parents: 8573
diff changeset
1267
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1268 pidgin_separator(menu);
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1269
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1270 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS,
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1271 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1272 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1273 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL);
8586
c8c7a19da549 [gaim-migrate @ 9336]
Pekka Riikonen <priikone@silcnet.org>
parents: 8573
diff changeset
1274
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1275 return menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1276 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1277
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1278 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1279 create_contact_menu (PurpleBlistNode *node)
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1280 {
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1281 GtkWidget *menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1282
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1283 menu = gtk_menu_new();
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1284
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
1285 pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1286 G_CALLBACK(gtk_blist_menu_showlog_cb),
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1287 node, 0, 0, NULL);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1288
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1289 pidgin_separator(menu);
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1290
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1291 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS,
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1292 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1293 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1294 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1295
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1296 pidgin_separator(menu);
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1297
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1298 pidgin_new_item_from_stock(menu, _("_Collapse"), GTK_STOCK_ZOOM_OUT,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1299 G_CALLBACK(pidgin_blist_collapse_contact_cb),
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1300 node, 0, 0, NULL);
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9030
diff changeset
1301
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1302 pidgin_append_blist_node_extended_menu(menu, node);
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9030
diff changeset
1303
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1304 return menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1305 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1306
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1307 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1308 create_buddy_menu(PurpleBlistNode *node, PurpleBuddy *b) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1309 struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)node->ui_data;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1310 GtkWidget *menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1311 GtkWidget *menuitem;
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1312 gboolean show_offline = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies");
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
1313
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1314 menu = gtk_menu_new();
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1315 pidgin_blist_make_buddy_menu(menu, b, FALSE);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1316
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1317 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1318 pidgin_separator(menu);
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
1319
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1320 if(gtknode->contact_expanded) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1321 pidgin_new_item_from_stock(menu, _("_Collapse"),
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1322 GTK_STOCK_ZOOM_OUT,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1323 G_CALLBACK(pidgin_blist_collapse_contact_cb),
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1324 node, 0, 0, NULL);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1325 } else {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1326 pidgin_new_item_from_stock(menu, _("_Expand"),
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1327 GTK_STOCK_ZOOM_IN,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1328 G_CALLBACK(pidgin_blist_expand_contact_cb), node,
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1329 0, 0, NULL);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1330 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1331 if(node->child->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1332 PurpleBlistNode *bnode;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1333
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1334 for(bnode = node->child; bnode; bnode = bnode->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1335 PurpleBuddy *buddy = (PurpleBuddy*)bnode;
9340
d9a87f3abbdf [gaim-migrate @ 10148]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9337
diff changeset
1336 GdkPixbuf *buf;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1337 GtkWidget *submenu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1338 GtkWidget *image;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1339
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1340 if(buddy == b)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1341 continue;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1342 if(!buddy->account->gc)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1343 continue;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1344 if(!show_offline && !PURPLE_BUDDY_IS_ONLINE(buddy))
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1345 continue;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1346
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1347 menuitem = gtk_image_menu_item_new_with_label(buddy->name);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1348 buf = pidgin_create_prpl_icon(buddy->account,PIDGIN_PRPL_ICON_SMALL);
9340
d9a87f3abbdf [gaim-migrate @ 10148]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9337
diff changeset
1349 image = gtk_image_new_from_pixbuf(buf);
d9a87f3abbdf [gaim-migrate @ 10148]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9337
diff changeset
1350 g_object_unref(G_OBJECT(buf));
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1351 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1352 image);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1353 gtk_widget_show(image);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1354 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1355 gtk_widget_show(menuitem);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1356
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1357 submenu = gtk_menu_new();
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1358 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1359 gtk_widget_show(submenu);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1360
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1361 pidgin_blist_make_buddy_menu(submenu, buddy, TRUE);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1362 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1363 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1364 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1365 return menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1366 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1367
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1368 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1369 pidgin_blist_show_context_menu(PurpleBlistNode *node,
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1370 GtkMenuPositionFunc func,
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1371 GtkWidget *tv,
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1372 guint button,
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1373 guint32 time)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1374 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1375 struct _pidgin_blist_node *gtknode;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1376 GtkWidget *menu = NULL;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1377 gboolean handled = FALSE;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1378
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1379 gtknode = (struct _pidgin_blist_node *)node->ui_data;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1380
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1381 /* Create a menu based on the thing we right-clicked on */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1382 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1383 PurpleGroup *g = (PurpleGroup *)node;
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1384
8952
b8bf830b3731 [gaim-migrate @ 9724]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8945
diff changeset
1385 menu = create_group_menu(node, g);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1386 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1387 PurpleChat *c = (PurpleChat *)node;
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1388
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1389 menu = create_chat_menu(node, c);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1390 } else if ((PURPLE_BLIST_NODE_IS_CONTACT(node)) && (gtknode->contact_expanded)) {
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1391 menu = create_contact_menu(node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1392 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1393 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1394
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1395 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1396 b = purple_contact_get_priority_buddy((PurpleContact*)node);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1397 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1398 b = (PurpleBuddy *)node;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1399
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1400 menu = create_buddy_menu(node, b);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1401 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1402
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1403 #ifdef _WIN32
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1404 /* Unhook the tooltip-timeout since we don't want a tooltip
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1405 * to appear and obscure the context menu we are about to show
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1406 This is a workaround for GTK+ bug 107320. */
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1407 if (gtkblist->timeout) {
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1408 g_source_remove(gtkblist->timeout);
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1409 gtkblist->timeout = 0;
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1410 }
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1411 #endif
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1412
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1413 /* Now display the menu */
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1414 if (menu != NULL) {
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1415 gtk_widget_show_all(menu);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1416 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, func, tv, button, time);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1417 handled = TRUE;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1418 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1419
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1420 return handled;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1421 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1422
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1423 static gboolean gtk_blist_button_press_cb(GtkWidget *tv, GdkEventButton *event, gpointer user_data)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1424 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1425 GtkTreePath *path;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1426 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1427 GValue val;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1428 GtkTreeIter iter;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1429 GtkTreeSelection *sel;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1430 PurplePlugin *prpl = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1431 PurplePluginProtocolInfo *prpl_info = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1432 struct _pidgin_blist_node *gtknode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1433 gboolean handled = FALSE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1434
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1435 /* Here we figure out which node was clicked */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1436 if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), event->x, event->y, &path, NULL, NULL, NULL))
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1437 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1438 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1439 val.g_type = 0;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1440 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1441 node = g_value_get_pointer(&val);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1442 gtknode = (struct _pidgin_blist_node *)node->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1443
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1444 /* Right click draws a context menu */
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1445 if ((event->button == 3) && (event->type == GDK_BUTTON_PRESS)) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1446 handled = pidgin_blist_show_context_menu(node, NULL, tv, 3, event->time);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1447
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1448 /* CTRL+middle click expands or collapse a contact */
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1449 } else if ((event->button == 2) && (event->type == GDK_BUTTON_PRESS) &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1450 (event->state & GDK_CONTROL_MASK) && (PURPLE_BLIST_NODE_IS_CONTACT(node))) {
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1451 if (gtknode->contact_expanded)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1452 pidgin_blist_collapse_contact_cb(NULL, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1453 else
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1454 pidgin_blist_expand_contact_cb(NULL, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1455 handled = TRUE;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1456
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1457 /* Double middle click gets info */
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1458 } else if ((event->button == 2) && (event->type == GDK_2BUTTON_PRESS) &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1459 ((PURPLE_BLIST_NODE_IS_CONTACT(node)) || (PURPLE_BLIST_NODE_IS_BUDDY(node)))) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1460 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1461 if(PURPLE_BLIST_NODE_IS_CONTACT(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1462 b = purple_contact_get_priority_buddy((PurpleContact*)node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1463 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1464 b = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1465
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1466 prpl = purple_find_prpl(purple_account_get_protocol_id(b->account));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1467 if (prpl != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1468 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1469
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1470 if (prpl && prpl_info->get_info)
17360
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17180
diff changeset
1471 pidgin_retrieve_user_info(b->account->gc, b->name);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1472 handled = TRUE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1473 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1474
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1475 #if (1)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1476 /*
10814
7e17cb56b019 [gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents: 10780
diff changeset
1477 * This code only exists because GTK+ doesn't work. If we return
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1478 * FALSE here, as would be normal the event propoagates down and
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1479 * somehow gets interpreted as the start of a drag event.
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1480 *
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1481 * Um, isn't it _normal_ to return TRUE here? Since the event
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1482 * was handled? --Mark
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1483 */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1484 if(handled) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1485 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1486 gtk_tree_selection_select_path(sel, path);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1487 gtk_tree_path_free(path);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1488 return TRUE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1489 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1490 #endif
7753
f3f9394afe6d [gaim-migrate @ 8398]
Ethan Blanton <elb@pidgin.im>
parents: 7737
diff changeset
1491 gtk_tree_path_free(path);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1492
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1493 return FALSE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1494 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1495
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1496 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1497 pidgin_blist_popup_menu_cb(GtkWidget *tv, void *user_data)
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1498 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1499 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1500 GValue val;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1501 GtkTreeIter iter;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1502 GtkTreeSelection *sel;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1503 gboolean handled = FALSE;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1504
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1505 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1506 if (!gtk_tree_selection_get_selected(sel, NULL, &iter))
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1507 return FALSE;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1508
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1509 val.g_type = 0;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1510 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel),
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1511 &iter, NODE_COLUMN, &val);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1512 node = g_value_get_pointer(&val);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1513
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1514 /* Shift+F10 draws a context menu */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1515 handled = pidgin_blist_show_context_menu(node, pidgin_treeview_popup_menu_position_func, tv, 0, GDK_CURRENT_TIME);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1516
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1517 return handled;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1518 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1519
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1520 static void pidgin_blist_buddy_details_cb(gpointer data, guint action, GtkWidget *item)
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1521 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1522 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
12569
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1523
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1524 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons",
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
1525 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)));
12569
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1526
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1527 pidgin_clear_cursor(gtkblist->window);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1528 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1529
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1530 static void pidgin_blist_show_idle_time_cb(gpointer data, guint action, GtkWidget *item)
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1531 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1532 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
1533
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1534 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time",
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
1535 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)));
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
1536
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1537 pidgin_clear_cursor(gtkblist->window);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1538 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1539
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1540 static void pidgin_blist_show_empty_groups_cb(gpointer data, guint action, GtkWidget *item)
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1541 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1542 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
12569
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1543
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1544 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups",
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1545 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)));
12569
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1546
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1547 pidgin_clear_cursor(gtkblist->window);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1548 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1549
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1550 static void pidgin_blist_edit_mode_cb(gpointer callback_data, guint callback_action,
12569
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1551 GtkWidget *checkitem)
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1552 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1553 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1554
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1555 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies",
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1556 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(checkitem)));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1557
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1558 pidgin_clear_cursor(gtkblist->window);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1559 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1560
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1561 static void pidgin_blist_mute_sounds_cb(gpointer data, guint action, GtkWidget *item)
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1562 {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1563 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", GTK_CHECK_MENU_ITEM(item)->active);
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1564 }
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1565
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12799
diff changeset
1566 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1567 pidgin_blist_mute_pref_cb(const char *name, PurplePrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12799
diff changeset
1568 gconstpointer value, gpointer data)
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1569 {
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1570 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(gtkblist->ift,
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1571 N_("/Tools/Mute Sounds"))), (gboolean)GPOINTER_TO_INT(value));
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1572 }
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1573
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12799
diff changeset
1574 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1575 pidgin_blist_sound_method_pref_cb(const char *name, PurplePrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12799
diff changeset
1576 gconstpointer value, gpointer data)
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1577 {
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1578 gboolean sensitive = TRUE;
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1579
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1580 if(!strcmp(value, "none"))
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1581 sensitive = FALSE;
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1582
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1583 gtk_widget_set_sensitive(gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Mute Sounds")), sensitive);
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1584 }
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1585
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1586 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1587 add_buddies_from_vcard(const char *prpl_id, PurpleGroup *group, GList *list,
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1588 const char *alias)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1589 {
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
1590 GList *l;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1591 PurpleAccount *account = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1592 PurpleConnection *gc;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1593
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1594 if (list == NULL)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1595 return;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1596
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1597 for (l = purple_connections_get_all(); l != NULL; l = l->next)
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1598 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1599 gc = (PurpleConnection *)l->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1600 account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1601
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1602 if (!strcmp(purple_account_get_protocol_id(account), prpl_id))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1603 break;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1604
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1605 account = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1606 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1607
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1608 if (account != NULL)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1609 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1610 for (l = list; l != NULL; l = l->next)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1611 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1612 purple_blist_request_add_buddy(account, l->data,
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1613 (group ? group->name : NULL),
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1614 alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1615 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1616 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1617
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1618 g_list_foreach(list, (GFunc)g_free, NULL);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1619 g_list_free(list);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1620 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1621
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1622 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1623 parse_vcard(const char *vcard, PurpleGroup *group)
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1624 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1625 char *temp_vcard;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1626 char *s, *c;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1627 char *alias = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1628 GList *aims = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1629 GList *icqs = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1630 GList *yahoos = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1631 GList *msns = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1632 GList *jabbers = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1633
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1634 s = temp_vcard = g_strdup(vcard);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1635
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1636 while (*s != '\0' && strncmp(s, "END:vCard", strlen("END:vCard")))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1637 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1638 char *field, *value;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1639
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1640 field = s;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1641
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1642 /* Grab the field */
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1643 while (*s != '\r' && *s != '\n' && *s != '\0' && *s != ':')
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1644 s++;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1645
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1646 if (*s == '\r') s++;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1647 if (*s == '\n')
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1648 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1649 s++;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1650 continue;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1651 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1652
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1653 if (*s != '\0') *s++ = '\0';
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1654
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1655 if ((c = strchr(field, ';')) != NULL)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1656 *c = '\0';
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1657
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1658 /* Proceed to the end of the line */
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1659 value = s;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1660
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1661 while (*s != '\r' && *s != '\n' && *s != '\0')
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1662 s++;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1663
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1664 if (*s == '\r') *s++ = '\0';
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1665 if (*s == '\n') *s++ = '\0';
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1666
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1667 /* We only want to worry about a few fields here. */
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1668 if (!strcmp(field, "FN"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1669 alias = g_strdup(value);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1670 else if (!strcmp(field, "X-AIM") || !strcmp(field, "X-ICQ") ||
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1671 !strcmp(field, "X-YAHOO") || !strcmp(field, "X-MSN") ||
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1672 !strcmp(field, "X-JABBER"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1673 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1674 char **values = g_strsplit(value, ":", 0);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1675 char **im;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1676
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1677 for (im = values; *im != NULL; im++)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1678 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1679 if (!strcmp(field, "X-AIM"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1680 aims = g_list_append(aims, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1681 else if (!strcmp(field, "X-ICQ"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1682 icqs = g_list_append(icqs, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1683 else if (!strcmp(field, "X-YAHOO"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1684 yahoos = g_list_append(yahoos, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1685 else if (!strcmp(field, "X-MSN"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1686 msns = g_list_append(msns, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1687 else if (!strcmp(field, "X-JABBER"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1688 jabbers = g_list_append(jabbers, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1689 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1690
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1691 g_strfreev(values);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1692 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1693 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1694
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1695 g_free(temp_vcard);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1696
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1697 if (aims == NULL && icqs == NULL && yahoos == NULL &&
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1698 msns == NULL && jabbers == NULL)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1699 {
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1700 g_free(alias);
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1701
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1702 return FALSE;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1703 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1704
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1705 add_buddies_from_vcard("prpl-oscar", group, aims, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1706 add_buddies_from_vcard("prpl-oscar", group, icqs, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1707 add_buddies_from_vcard("prpl-yahoo", group, yahoos, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1708 add_buddies_from_vcard("prpl-msn", group, msns, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1709 add_buddies_from_vcard("prpl-jabber", group, jabbers, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1710
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1711 g_free(alias);
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1712
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1713 return TRUE;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1714 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1715
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1716 #ifdef _WIN32
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1717 static void pidgin_blist_drag_begin(GtkWidget *widget,
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1718 GdkDragContext *drag_context, gpointer user_data)
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1719 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1720 pidgin_blist_tooltip_destroy();
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1721
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1722
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1723 /* Unhook the tooltip-timeout since we don't want a tooltip
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1724 * to appear and obscure the dragging operation.
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1725 * This is a workaround for GTK+ bug 107320. */
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1726 if (gtkblist->timeout) {
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1727 g_source_remove(gtkblist->timeout);
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1728 gtkblist->timeout = 0;
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1729 }
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1730 }
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1731 #endif
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1732
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1733 static void pidgin_blist_drag_data_get_cb(GtkWidget *widget,
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1734 GdkDragContext *dc,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1735 GtkSelectionData *data,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1736 guint info,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1737 guint time,
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1738 gpointer null)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1739 {
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1740
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1741 if (data->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1742 {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1743 GtkTreeRowReference *ref = g_object_get_data(G_OBJECT(dc), "gtk-tree-view-source-row");
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1744 GtkTreePath *sourcerow = gtk_tree_row_reference_get_path(ref);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1745 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1746 PurpleBlistNode *node = NULL;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1747 GValue val;
5273
0d7e92ea8b97 [gaim-migrate @ 5645]
Nathan Walp <nwalp@pidgin.im>
parents: 5263
diff changeset
1748 if(!sourcerow)
0d7e92ea8b97 [gaim-migrate @ 5645]
Nathan Walp <nwalp@pidgin.im>
parents: 5263
diff changeset
1749 return;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1750 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, sourcerow);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1751 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1752 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1753 node = g_value_get_pointer(&val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1754 gtk_selection_data_set (data,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1755 gdk_atom_intern ("PURPLE_BLIST_NODE", FALSE),
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1756 8, /* bits */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1757 (void*)&node,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1758 sizeof (node));
5273
0d7e92ea8b97 [gaim-migrate @ 5645]
Nathan Walp <nwalp@pidgin.im>
parents: 5263
diff changeset
1759
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1760 gtk_tree_path_free(sourcerow);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1761 }
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1762 else if (data->target == gdk_atom_intern("application/x-im-contact", FALSE))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1763 {
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1764 GtkTreeRowReference *ref;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1765 GtkTreePath *sourcerow;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1766 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1767 PurpleBlistNode *node = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1768 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1769 PurpleConnection *gc;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1770 GValue val;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1771 GString *str;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1772 const char *protocol;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1773
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1774 ref = g_object_get_data(G_OBJECT(dc), "gtk-tree-view-source-row");
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1775 sourcerow = gtk_tree_row_reference_get_path(ref);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1776
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1777 if (!sourcerow)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1778 return;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1779
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1780 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1781 sourcerow);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1782 val.g_type = 0;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1783 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1784 NODE_COLUMN, &val);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1785
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1786 node = g_value_get_pointer(&val);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1787
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1788 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1789 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1790 buddy = purple_contact_get_priority_buddy((PurpleContact *)node);
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1791 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1792 else if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1793 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1794 gtk_tree_path_free(sourcerow);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1795 return;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1796 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1797 else
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1798 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1799 buddy = (PurpleBuddy *)node;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1800 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1801
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1802 gc = purple_account_get_connection(buddy->account);
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1803
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1804 if (gc == NULL)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1805 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1806 gtk_tree_path_free(sourcerow);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1807 return;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1808 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1809
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1810 protocol =
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1811 PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->list_icon(buddy->account,
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1812 buddy);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1813
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1814 str = g_string_new(NULL);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1815 g_string_printf(str,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1816 "MIME-Version: 1.0\r\n"
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1817 "Content-Type: application/x-im-contact\r\n"
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1818 "X-IM-Protocol: %s\r\n"
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1819 "X-IM-Username: %s\r\n",
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1820 protocol,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1821 buddy->name);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1822
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1823 if (buddy->alias != NULL)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1824 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1825 g_string_append_printf(str,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1826 "X-IM-Alias: %s\r\n",
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1827 buddy->alias);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1828 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1829
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
1830 g_string_append(str, "\r\n");
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1831
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1832 gtk_selection_data_set(data,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1833 gdk_atom_intern("application/x-im-contact", FALSE),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1834 8, /* bits */
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1835 (const guchar *)str->str,
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1836 strlen(str->str) + 1);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1837
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1838 g_string_free(str, TRUE);
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1839 gtk_tree_path_free(sourcerow);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1840 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1841 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1842
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1843 static void pidgin_blist_drag_data_rcv_cb(GtkWidget *widget, GdkDragContext *dc, guint x, guint y,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1844 GtkSelectionData *sd, guint info, guint t)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1845 {
13834
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1846 if (gtkblist->drag_timeout) {
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1847 g_source_remove(gtkblist->drag_timeout);
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1848 gtkblist->drag_timeout = 0;
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1849 }
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1850
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1851 if (sd->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE) && sd->data) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1852 PurpleBlistNode *n = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1853 GtkTreePath *path = NULL;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1854 GtkTreeViewDropPosition position;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1855 memcpy(&n, sd->data, sizeof(n));
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1856 if(gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget), x, y, &path, &position)) {
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
1857 /* if we're here, I think it means the drop is ok */
7642
4e1735a499f5 [gaim-migrate @ 8285]
Nathan Walp <nwalp@pidgin.im>
parents: 7636
diff changeset
1858 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1859 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1860 GValue val;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1861 struct _pidgin_blist_node *gtknode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1862
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1863 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1864 &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1865 val.g_type = 0;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1866 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1867 &iter, NODE_COLUMN, &val);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1868 node = g_value_get_pointer(&val);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1869 gtknode = node->ui_data;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1870
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1871 if (PURPLE_BLIST_NODE_IS_CONTACT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1872 PurpleContact *c = (PurpleContact*)n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1873 if (PURPLE_BLIST_NODE_IS_CONTACT(node) && gtknode->contact_expanded) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1874 purple_blist_merge_contact(c, node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1875 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1876 PURPLE_BLIST_NODE_IS_CHAT(node)) {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1877 switch(position) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1878 case GTK_TREE_VIEW_DROP_AFTER:
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1879 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1880 purple_blist_add_contact(c, (PurpleGroup*)node->parent,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1881 node);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1882 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1883 case GTK_TREE_VIEW_DROP_BEFORE:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1884 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1885 purple_blist_add_contact(c, (PurpleGroup*)node->parent,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1886 node->prev);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1887 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1888 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1889 } else if(PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1890 purple_blist_add_contact(c, (PurpleGroup*)node, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1891 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1892 purple_blist_merge_contact(c, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1893 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1894 } else if (PURPLE_BLIST_NODE_IS_BUDDY(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1895 PurpleBuddy *b = (PurpleBuddy*)n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1896 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1897 switch(position) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1898 case GTK_TREE_VIEW_DROP_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1899 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1900 purple_blist_add_buddy(b, (PurpleContact*)node->parent,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1901 (PurpleGroup*)node->parent->parent, node);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1902 break;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1903 case GTK_TREE_VIEW_DROP_BEFORE:
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1904 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1905 purple_blist_add_buddy(b, (PurpleContact*)node->parent,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1906 (PurpleGroup*)node->parent->parent,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1907 node->prev);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1908 break;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1909 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1910 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1911 purple_blist_add_buddy(b, NULL, (PurpleGroup*)node->parent,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1912 NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1913 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1914 purple_blist_add_buddy(b, NULL, (PurpleGroup*)node, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1915 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1916 if(gtknode->contact_expanded) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1917 switch(position) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1918 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1919 case GTK_TREE_VIEW_DROP_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1920 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1921 purple_blist_add_buddy(b, (PurpleContact*)node,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1922 (PurpleGroup*)node->parent, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1923 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1924 case GTK_TREE_VIEW_DROP_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1925 purple_blist_add_buddy(b, NULL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1926 (PurpleGroup*)node->parent, node->prev);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1927 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1928 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1929 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1930 switch(position) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1931 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1932 case GTK_TREE_VIEW_DROP_AFTER:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1933 purple_blist_add_buddy(b, NULL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1934 (PurpleGroup*)node->parent, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1935 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1936 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1937 case GTK_TREE_VIEW_DROP_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1938 purple_blist_add_buddy(b, NULL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1939 (PurpleGroup*)node->parent, node->prev);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1940 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1941 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1942 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1943 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1944 } else if (PURPLE_BLIST_NODE_IS_CHAT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1945 PurpleChat *chat = (PurpleChat *)n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1946 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1947 switch(position) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1948 case GTK_TREE_VIEW_DROP_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1949 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1950 case GTK_TREE_VIEW_DROP_BEFORE:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1951 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1952 purple_blist_add_chat(chat,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1953 (PurpleGroup*)node->parent->parent,
13543
25f9c386270c [gaim-migrate @ 15919]
Daniel Atallah <datallah@pidgin.im>
parents: 13541
diff changeset
1954 node->parent);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1955 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1956 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1957 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1958 PURPLE_BLIST_NODE_IS_CHAT(node)) {
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1959 switch(position) {
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1960 case GTK_TREE_VIEW_DROP_AFTER:
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1961 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1962 purple_blist_add_chat(chat, (PurpleGroup*)node->parent, node);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1963 break;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1964 case GTK_TREE_VIEW_DROP_BEFORE:
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1965 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1966 purple_blist_add_chat(chat, (PurpleGroup*)node->parent, node->prev);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1967 break;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1968 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1969 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1970 purple_blist_add_chat(chat, (PurpleGroup*)node, NULL);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1971 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1972 } else if (PURPLE_BLIST_NODE_IS_GROUP(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1973 PurpleGroup *g = (PurpleGroup*)n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1974 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1975 switch (position) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1976 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1977 case GTK_TREE_VIEW_DROP_AFTER:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1978 purple_blist_add_group(g, node);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1979 break;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1980 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1981 case GTK_TREE_VIEW_DROP_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1982 purple_blist_add_group(g, node->prev);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1983 break;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1984 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1985 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1986 purple_blist_add_group(g, node->parent->parent);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1987 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1988 PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1989 purple_blist_add_group(g, node->parent);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1990 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1991 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1992
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1993 gtk_tree_path_free(path);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1994 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1995 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1996 }
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1997 else if (sd->target == gdk_atom_intern("application/x-im-contact",
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1998 FALSE) && sd->data)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1999 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2000 PurpleGroup *group = NULL;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2001 GtkTreePath *path = NULL;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2002 GtkTreeViewDropPosition position;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2003 PurpleAccount *account;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2004 char *protocol = NULL;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2005 char *username = NULL;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2006 char *alias = NULL;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2007
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2008 if (gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2009 x, y, &path, &position))
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2010 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2011 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2012 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2013 GValue val;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2014
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2015 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2016 &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2017 val.g_type = 0;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2018 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2019 &iter, NODE_COLUMN, &val);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2020 node = g_value_get_pointer(&val);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2021
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2022 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2023 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2024 group = (PurpleGroup *)node->parent->parent;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2025 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2026 else if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2027 PURPLE_BLIST_NODE_IS_CONTACT(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2028 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2029 group = (PurpleGroup *)node->parent;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2030 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2031 else if (PURPLE_BLIST_NODE_IS_GROUP(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2032 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2033 group = (PurpleGroup *)node;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2034 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2035 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2036
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2037 if (pidgin_parse_x_im_contact((const char *)sd->data, FALSE, &account,
7712
74af9358b808 [gaim-migrate @ 8357]
Christian Hammond <chipx86@chipx86.com>
parents: 7706
diff changeset
2038 &protocol, &username, &alias))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2039 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2040 if (account == NULL)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2041 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2042 purple_notify_error(NULL, NULL,
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2043 _("You are not currently signed on with an account that "
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2044 "can add that buddy."), NULL);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2045 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2046 else
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2047 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2048 purple_blist_request_add_buddy(account, username,
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2049 (group ? group->name : NULL),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2050 alias);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2051 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2052 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2053
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
2054 g_free(username);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
2055 g_free(protocol);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
2056 g_free(alias);
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2057
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2058 if (path != NULL)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2059 gtk_tree_path_free(path);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2060
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2061 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2062 }
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2063 else if (sd->target == gdk_atom_intern("text/x-vcard", FALSE) && sd->data)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2064 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2065 gboolean result;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2066 PurpleGroup *group = NULL;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2067 GtkTreePath *path = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2068 GtkTreeViewDropPosition position;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2069
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2070 if (gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget),
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2071 x, y, &path, &position))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2072 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2073 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2074 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2075 GValue val;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2076
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2077 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel),
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2078 &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2079 val.g_type = 0;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2080 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel),
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2081 &iter, NODE_COLUMN, &val);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2082 node = g_value_get_pointer(&val);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2083
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2084 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2085 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2086 group = (PurpleGroup *)node->parent->parent;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2087 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2088 else if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2089 PURPLE_BLIST_NODE_IS_CONTACT(node))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2090 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2091 group = (PurpleGroup *)node->parent;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2092 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2093 else if (PURPLE_BLIST_NODE_IS_GROUP(node))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2094 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2095 group = (PurpleGroup *)node;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2096 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2097 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2098
11137
cf40226ddff7 [gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents: 11134
diff changeset
2099 result = parse_vcard((const gchar *)sd->data, group);
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2100
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2101 gtk_drag_finish(dc, result, (dc->action == GDK_ACTION_MOVE), t);
9525
28a430d517db [gaim-migrate @ 10352]
Sean Egan <seanegan@pidgin.im>
parents: 9498
diff changeset
2102 } else if (sd->target == gdk_atom_intern("text/uri-list", FALSE) && sd->data) {
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2103 GtkTreePath *path = NULL;
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2104 GtkTreeViewDropPosition position;
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2105
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2106 if (gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
2107 x, y, &path, &position))
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2108 {
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2109 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2110 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2111 GValue val;
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2112
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2113 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel),
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2114 &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2115 val.g_type = 0;
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2116 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel),
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2117 &iter, NODE_COLUMN, &val);
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2118 node = g_value_get_pointer(&val);
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2119
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2120 if (PURPLE_BLIST_NODE_IS_BUDDY(node) || PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2121 PurpleBuddy *b = PURPLE_BLIST_NODE_IS_BUDDY(node) ? (PurpleBuddy*)node : purple_contact_get_priority_buddy((PurpleContact*)node);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
2122 pidgin_dnd_file_manage(sd, b->account, b->name);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10222
diff changeset
2123 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10222
diff changeset
2124 } else {
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10222
diff changeset
2125 gtk_drag_finish(dc, FALSE, FALSE, t);
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2126 }
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2127 }
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2128 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2129 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2130
15552
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2131 /* Altered from do_colorshift in gnome-panel */
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2132 static void
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2133 do_alphashift (GdkPixbuf *dest, GdkPixbuf *src, int shift)
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2134 {
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2135 gint i, j;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2136 gint width, height, has_alpha, srcrowstride, destrowstride;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2137 guchar *target_pixels;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2138 guchar *original_pixels;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2139 guchar *pixsrc;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2140 guchar *pixdest;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2141 int val;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2142 guchar a;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2143
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2144 has_alpha = gdk_pixbuf_get_has_alpha (src);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2145 if (!has_alpha)
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2146 return;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2147
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2148 width = gdk_pixbuf_get_width (src);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2149 height = gdk_pixbuf_get_height (src);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2150 srcrowstride = gdk_pixbuf_get_rowstride (src);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2151 destrowstride = gdk_pixbuf_get_rowstride (dest);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2152 target_pixels = gdk_pixbuf_get_pixels (dest);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2153 original_pixels = gdk_pixbuf_get_pixels (src);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2154
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2155 for (i = 0; i < height; i++) {
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2156 pixdest = target_pixels + i*destrowstride;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2157 pixsrc = original_pixels + i*srcrowstride;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2158 for (j = 0; j < width; j++) {
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2159 *(pixdest++) = *(pixsrc++);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2160 *(pixdest++) = *(pixsrc++);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2161 *(pixdest++) = *(pixsrc++);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2162 a = *(pixsrc++);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2163 val = a - shift;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2164 *(pixdest++) = CLAMP(val, 0, 255);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2165 }
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2166 }
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2167 }
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2168
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2169
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2170 static GdkPixbuf *pidgin_blist_get_buddy_icon(PurpleBlistNode *node,
16437
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2171 gboolean scaled, gboolean greyed)
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2172 {
10483
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2173 GdkPixbuf *buf, *ret = NULL;
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2174 GdkPixbufLoader *loader;
16900
e9f12eb06c5b Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents: 16825
diff changeset
2175 PurpleBuddyIcon *icon = NULL;
14914
290eb2170f38 [gaim-migrate @ 17621]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14882
diff changeset
2176 const guchar *data = NULL;
11137
cf40226ddff7 [gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents: 11134
diff changeset
2177 gsize len;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2178 PurpleBuddy *buddy = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2179 PurpleAccount *account = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2180 PurplePluginProtocolInfo *prpl_info = NULL;
16437
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2181 PurpleStoredImage *custom_img;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2182
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2183 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2184 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2185 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2186 buddy = (PurpleBuddy*)node;
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2187 } else {
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2188 return NULL;
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2189 }
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2190
16625
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2191 if(buddy == NULL)
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2192 return NULL;
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2193
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2194 account = purple_buddy_get_account(buddy);
15490
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
2195
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
2196 if(account && account->gc)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2197 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(account->gc->prpl);
15490
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
2198
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2199 #if 0
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2200 if (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"))
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2201 return NULL;
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2202 #endif
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2203
16437
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2204 custom_img = purple_buddy_icons_find_custom_icon(purple_buddy_get_contact(buddy));
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2205 if (custom_img)
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2206 {
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2207 data = purple_imgstore_get_data(custom_img);
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2208 len = purple_imgstore_get_size(custom_img);
14914
290eb2170f38 [gaim-migrate @ 17621]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14882
diff changeset
2209 }
290eb2170f38 [gaim-migrate @ 17621]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14882
diff changeset
2210
290eb2170f38 [gaim-migrate @ 17621]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14882
diff changeset
2211 if (data == NULL) {
16900
e9f12eb06c5b Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents: 16825
diff changeset
2212 /* Not sure I like this...*/
e9f12eb06c5b Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents: 16825
diff changeset
2213 if (!(icon = purple_buddy_icons_find(buddy->account, buddy->name)))
e9f12eb06c5b Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents: 16825
diff changeset
2214 return NULL;
16625
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2215 data = purple_buddy_icon_get_data(icon, &len);
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2216
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2217 if(data == NULL)
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2218 return NULL;
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2219 }
15490
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
2220
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2221 loader = gdk_pixbuf_loader_new();
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2222 gdk_pixbuf_loader_write(loader, data, len, NULL);
12601
be19ef28e2ce [gaim-migrate @ 14935]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
2223 gdk_pixbuf_loader_close(loader, NULL);
16531
98363f6cdc6c Fix the memory leaking and improper calls to ref_filename(). Also, remove some debugging code.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2224
98363f6cdc6c Fix the memory leaking and improper calls to ref_filename(). Also, remove some debugging code.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2225 purple_imgstore_unref(custom_img);
16900
e9f12eb06c5b Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents: 16825
diff changeset
2226 purple_buddy_icon_unref(icon);
16531
98363f6cdc6c Fix the memory leaking and improper calls to ref_filename(). Also, remove some debugging code.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2227
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2228 buf = gdk_pixbuf_loader_get_pixbuf(loader);
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2229 if (buf)
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2230 g_object_ref(G_OBJECT(buf));
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2231 g_object_unref(G_OBJECT(loader));
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2232
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2233 if (buf) {
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2234 int orig_width, orig_height;
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2235 int scale_width, scale_height;
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2236
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2237 if (greyed) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2238 PurplePresence *presence = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2239 if (!PURPLE_BUDDY_IS_ONLINE(buddy))
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2240 gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.0, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2241 if (purple_presence_is_idle(presence))
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2242 gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.25, FALSE);
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2243 }
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2244
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2245 /* i'd use the pidgin_buddy_icon_get_scale_size() thing,
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2246 * but it won't tell me the original size, which I need for scaling
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2247 * purposes */
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2248 scale_width = orig_width = gdk_pixbuf_get_width(buf);
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2249 scale_height = orig_height = gdk_pixbuf_get_height(buf);
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2250
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2251 if (prpl_info && prpl_info->icon_spec.scale_rules & PURPLE_ICON_SCALE_DISPLAY)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2252 purple_buddy_icon_get_scale_size(&prpl_info->icon_spec, &scale_width, &scale_height);
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2253
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2254 if (scaled) {
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2255 if(scale_height > scale_width) {
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2256 scale_width = 32.0 * (double)scale_width / (double)scale_height;
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2257 scale_height = 32;
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2258 } else {
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2259 scale_height = 32.0 * (double)scale_height / (double)scale_width;
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2260 scale_width = 32;
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2261 }
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2262
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2263 ret = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 32, 32);
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2264 gdk_pixbuf_fill(ret, 0x00000000);
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2265 gdk_pixbuf_scale(buf, ret, (32-scale_width)/2, (32-scale_height)/2, scale_width, scale_height, (32-scale_width)/2, (32-scale_height)/2, (double)scale_width/(double)orig_width, (double)scale_height/(double)orig_height, GDK_INTERP_BILINEAR);
16150
d283d848c73c Hylke requested that we slightly round the corners of budy icons in the blist to better match the round status icons
Sean Egan <seanegan@pidgin.im>
parents: 16123
diff changeset
2266 if (pidgin_gdk_pixbuf_is_opaque(ret))
18275
b9633ef422b0 Rounds icons in the infopane. Since gdk_pixbuf_animation_get_static_image seems to return pixbufs without alpha channels, this only rounds animated icons that aren't transparent.
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
2267 pidgin_gdk_pixbuf_make_round(ret);
10483
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2268 } else {
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2269 ret = gdk_pixbuf_scale_simple(buf,scale_width,scale_height, GDK_INTERP_BILINEAR);
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2270 }
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2271 g_object_unref(G_OBJECT(buf));
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2272 }
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2273
10483
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2274 return ret;
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2275 }
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2276 /* # - Status Icon
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2277 * P - Protocol Icon
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2278 * A - Buddy Icon
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2279 * [ - SMALL_SPACE
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2280 * = - LARGE_SPACE
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2281 * +--- STATUS_SIZE +--- td->avatar_width
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2282 * | +-- td->name_width |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2283 * +----+ +-------+ +---------+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2284 * | | | | | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2285 * +-------------------------------------------+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2286 * | [ = [ |--- TOOLTIP_BORDER
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2287 *name_height --+-| ######[BuddyName = PP [ AAAAAAAAAAA |--+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2288 * | | ######[ = PP [ AAAAAAAAAAA | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2289 * STATUS SIZE -| | ######[[[[[[[[[[[[[[[[[[[[[ AAAAAAAAAAA | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2290 * +--+-| ######[Account: So-and-so [ AAAAAAAAAAA | |-- td->avatar_height
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2291 * | | [Idle: 4h 15m [ AAAAAAAAAAA | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2292 * height --+ | [Foo: Bar, Baz [ AAAAAAAAAAA | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2293 * | | [Status: Awesome [ AAAAAAAAAAA |--+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2294 * +----| [Stop: Hammer Time [ |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2295 * | [ [ |--- TOOLTIP_BORDER
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2296 * +-------------------------------------------+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2297 * | | | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2298 * | +----------------+ |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2299 * | | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2300 * | +-- td->width |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2301 * | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2302 * +---- TOOLTIP_BORDER +---- TOOLTIP_BORDER
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2303 *
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
2304 *
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2305 */
15606
a070ac7366f8 Perhaps a 22px icon is better in the tooltip
Sean Egan <seanegan@pidgin.im>
parents: 15588
diff changeset
2306 #define STATUS_SIZE 22
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2307 #define TOOLTIP_BORDER 12
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2308 #define SMALL_SPACE 6
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2309 #define LARGE_SPACE 12
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
2310 #define PRPL_SIZE 16
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2311 struct tooltip_data {
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2312 PangoLayout *layout;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2313 PangoLayout *name_layout;
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2314 GdkPixbuf *prpl_icon;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2315 GdkPixbuf *status_icon;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2316 GdkPixbuf *avatar;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2317 gboolean avatar_is_prpl_icon;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2318 int avatar_width;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2319 int avatar_height;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2320 int name_height;
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2321 int name_width;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2322 int width;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2323 int height;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2324 };
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2325
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2326 static struct tooltip_data * create_tip_for_node(PurpleBlistNode *node, gboolean full)
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2327 {
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2328 char *tooltip_text = NULL;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2329 struct tooltip_data *td = g_new0(struct tooltip_data, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2330 PurpleAccount *account = NULL;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2331 char *tmp, *node_name;
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2332
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2333 if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2334 account = ((PurpleBuddy*)(node))->account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2335 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2336 account = ((PurpleChat*)(node))->account;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2337 }
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2338
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
2339 td->status_icon = pidgin_blist_get_status_icon(node, PIDGIN_STATUS_ICON_LARGE);
16437
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2340 td->avatar = pidgin_blist_get_buddy_icon(node, !full, FALSE);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2341 td->prpl_icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
2342 tooltip_text = pidgin_get_tooltip_text(node, full);
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2343 td->layout = gtk_widget_create_pango_layout(gtkblist->tipwindow, NULL);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2344 td->name_layout = gtk_widget_create_pango_layout(gtkblist->tipwindow, NULL);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2345
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2346 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2347 tmp = g_markup_escape_text(purple_buddy_get_name((PurpleBuddy*)node), -1);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2348 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2349 tmp = g_markup_escape_text(purple_chat_get_name((PurpleChat*)node), -1);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2350 node_name = g_strdup_printf("<span size='x-large' weight='bold'>%s</span>", tmp);
15982
31ae61be5792 Fix a small tooltip-related memleak
Mark Doliner <markdoliner@pidgin.im>
parents: 15931
diff changeset
2351 g_free(tmp);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2352
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2353 pango_layout_set_markup(td->layout, tooltip_text, -1);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2354 pango_layout_set_wrap(td->layout, PANGO_WRAP_WORD);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2355 pango_layout_set_width(td->layout, 300000);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2356
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2357 pango_layout_get_size (td->layout, &td->width, &td->height);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2358 td->width = PANGO_PIXELS(td->width);
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2359 td->height = PANGO_PIXELS(td->height);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2360
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2361 pango_layout_set_markup(td->name_layout, node_name, -1);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2362 pango_layout_set_wrap(td->name_layout, PANGO_WRAP_WORD);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2363 pango_layout_set_width(td->name_layout, 300000);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2364
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2365 pango_layout_get_size (td->name_layout, &td->name_width, &td->name_height);
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2366 td->name_width = PANGO_PIXELS(td->name_width) + SMALL_SPACE + PRPL_SIZE;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2367 td->name_height = MAX(PANGO_PIXELS(td->name_height), PRPL_SIZE + SMALL_SPACE);
15526
2aa8c06f946e tooltip tweaks
Sean Egan <seanegan@pidgin.im>
parents: 15525
diff changeset
2368 #if 0 /* PRPL Icon as avatar */
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2369 if(!td->avatar && full) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2370 td->avatar = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_LARGE);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2371 td->avatar_is_prpl_icon = TRUE;
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2372 }
15526
2aa8c06f946e tooltip tweaks
Sean Egan <seanegan@pidgin.im>
parents: 15525
diff changeset
2373 #endif
15769
813f36d31f6c Fix asserts when there is no buddy icon
Daniel Atallah <datallah@pidgin.im>
parents: 15692
diff changeset
2374
813f36d31f6c Fix asserts when there is no buddy icon
Daniel Atallah <datallah@pidgin.im>
parents: 15692
diff changeset
2375 if (td->avatar) {
813f36d31f6c Fix asserts when there is no buddy icon
Daniel Atallah <datallah@pidgin.im>
parents: 15692
diff changeset
2376 td->avatar_width = gdk_pixbuf_get_width(td->avatar);
813f36d31f6c Fix asserts when there is no buddy icon
Daniel Atallah <datallah@pidgin.im>
parents: 15692
diff changeset
2377 td->avatar_height = gdk_pixbuf_get_height(td->avatar);
813f36d31f6c Fix asserts when there is no buddy icon
Daniel Atallah <datallah@pidgin.im>
parents: 15692
diff changeset
2378 }
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2379
15550
d710f85e6d0e A small memory leak in the tooltip.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15546
diff changeset
2380 g_free(node_name);
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2381 g_free(tooltip_text);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2382 return td;
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2383 }
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2384
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2385 static void pidgin_blist_paint_tip(GtkWidget *widget, GdkEventExpose *event, PurpleBlistNode *node)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2386 {
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2387 GtkStyle *style;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2388 int current_height, max_width;
15542
8de6f9738f5b fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents: 15539
diff changeset
2389 int max_text_width;
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2390 int max_avatar_width;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2391 GList *l;
15526
2aa8c06f946e tooltip tweaks
Sean Egan <seanegan@pidgin.im>
parents: 15525
diff changeset
2392 int prpl_col = 0;
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2393 GtkTextDirection dir = gtk_widget_get_direction(widget);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
2394
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2395 if(gtkblist->tooltipdata == NULL)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2396 return;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2397
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2398 style = gtkblist->tipwindow->style;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2399 gtk_paint_flat_box(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT,
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2400 NULL, gtkblist->tipwindow, "tooltip", 0, 0, -1, -1);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2401
15542
8de6f9738f5b fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents: 15539
diff changeset
2402 max_text_width = 0;
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2403 max_avatar_width = 0;
15545
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2404
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2405 for(l = gtkblist->tooltipdata; l; l = l->next)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2406 {
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2407 struct tooltip_data *td = l->data;
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2408
15542
8de6f9738f5b fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents: 15539
diff changeset
2409 max_text_width = MAX(max_text_width,
8de6f9738f5b fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents: 15539
diff changeset
2410 MAX(td->width, td->name_width));
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2411 max_avatar_width = MAX(max_avatar_width, td->avatar_width);
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2412 }
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2413
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2414 max_width = TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE + max_text_width + SMALL_SPACE + max_avatar_width + TOOLTIP_BORDER;
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2415 if (dir == GTK_TEXT_DIR_RTL)
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2416 prpl_col = TOOLTIP_BORDER + max_avatar_width + SMALL_SPACE;
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2417 else
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2418 prpl_col = TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE + max_text_width - PRPL_SIZE;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2419
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2420 current_height = 12;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2421 for(l = gtkblist->tooltipdata; l; l = l->next)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2422 {
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2423 struct tooltip_data *td = l->data;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2424
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
2425 if (td->avatar && pidgin_gdk_pixbuf_is_opaque(td->avatar))
15648
47e9eddcf323 Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@pidgin.im>
parents: 15644
diff changeset
2426 {
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2427 if (dir == GTK_TEXT_DIR_RTL)
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2428 gtk_paint_flat_box(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2429 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2430 TOOLTIP_BORDER -1, current_height -1, td->avatar_width +2, td->avatar_height + 2);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2431 else
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2432 gtk_paint_flat_box(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2433 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2434 max_width - (td->avatar_width+ TOOLTIP_BORDER)-1,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2435 current_height-1,td->avatar_width+2, td->avatar_height+2);
15648
47e9eddcf323 Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@pidgin.im>
parents: 15644
diff changeset
2436 }
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2437
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2438 #if GTK_CHECK_VERSION(2,2,0)
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2439 if (dir == GTK_TEXT_DIR_RTL)
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2440 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->status_icon,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2441 0, 0, max_width - TOOLTIP_BORDER - STATUS_SIZE, current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2442 else
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2443 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->status_icon,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2444 0, 0, TOOLTIP_BORDER, current_height, -1 , -1, GDK_RGB_DITHER_NONE, 0, 0);
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2445 if(td->avatar)
15648
47e9eddcf323 Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@pidgin.im>
parents: 15644
diff changeset
2446 {
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2447 if (dir == GTK_TEXT_DIR_RTL)
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2448 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2449 td->avatar, 0, 0, TOOLTIP_BORDER, current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2450 else
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2451 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2452 td->avatar, 0, 0, max_width - (td->avatar_width + TOOLTIP_BORDER),
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2453 current_height, -1 , -1, GDK_RGB_DITHER_NONE, 0, 0);
15648
47e9eddcf323 Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@pidgin.im>
parents: 15644
diff changeset
2454 }
47e9eddcf323 Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@pidgin.im>
parents: 15644
diff changeset
2455
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2456 if (!td->avatar_is_prpl_icon)
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2457 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->prpl_icon,
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2458 0, 0,
15526
2aa8c06f946e tooltip tweaks
Sean Egan <seanegan@pidgin.im>
parents: 15525
diff changeset
2459 prpl_col,
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2460 current_height + ((td->name_height / 2) - (PRPL_SIZE / 2)),
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2461 -1 , -1, GDK_RGB_DITHER_NONE, 0, 0);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2462
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2463 #else
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2464 gdk_pixbuf_render_to_drawable(td->status_icon, GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, 0, 0, 12, current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2465 if(td->avatar)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2466 gdk_pixbuf_render_to_drawable(td->avatar,
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2467 GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, 0, 0,
15545
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2468 max_width - (td->avatar_width + TOOLTIP_BORDER),
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2469 current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2470 #endif
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2471 if (dir == GTK_TEXT_DIR_RTL) {
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2472 gtk_paint_layout(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2473 NULL, gtkblist->tipwindow, "tooltip",
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
2474 max_width -(TOOLTIP_BORDER + STATUS_SIZE +SMALL_SPACE) - PANGO_PIXELS(300000),
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2475 current_height, td->name_layout);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2476 } else {
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2477 gtk_paint_layout (style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2478 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2479 TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE, current_height, td->name_layout);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2480 }
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2481 if (dir != GTK_TEXT_DIR_RTL) {
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2482 gtk_paint_layout (style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2483 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2484 TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE, current_height + td->name_height, td->layout);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2485 } else {
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2486 gtk_paint_layout(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2487 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2488 max_width - (TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE) - PANGO_PIXELS(300000),
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2489 current_height + td->name_height,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2490 td->layout);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2491 }
15539
b204042fba24 fix overlapping in tooltips w/ large avatars
Nathan Walp <nwalp@pidgin.im>
parents: 15526
diff changeset
2492
b204042fba24 fix overlapping in tooltips w/ large avatars
Nathan Walp <nwalp@pidgin.im>
parents: 15526
diff changeset
2493 current_height += MAX(td->name_height + td->height, td->avatar_height) + TOOLTIP_BORDER;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2494 }
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2495 }
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2496
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2497
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2498 static void pidgin_blist_tooltip_destroy()
8254
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2499 {
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2500 while(gtkblist->tooltipdata) {
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2501 struct tooltip_data *td = gtkblist->tooltipdata->data;
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2502
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2503 if(td->avatar)
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2504 g_object_unref(td->avatar);
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2505 if(td->status_icon)
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2506 g_object_unref(td->status_icon);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2507 if(td->prpl_icon)
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2508 g_object_unref(td->prpl_icon);
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2509 g_object_unref(td->layout);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2510 g_object_unref(td->name_layout);
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2511 g_free(td);
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2512 gtkblist->tooltipdata = g_list_delete_link(gtkblist->tooltipdata, gtkblist->tooltipdata);
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2513 }
11636
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2514
8254
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2515 if (gtkblist->tipwindow == NULL)
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2516 return;
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2517
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2518 gtk_widget_destroy(gtkblist->tipwindow);
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2519 gtkblist->tipwindow = NULL;
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2520 }
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2521
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2522 static gboolean pidgin_blist_expand_timeout(GtkWidget *tv)
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2523 {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2524 GtkTreePath *path;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2525 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2526 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2527 GValue val;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2528 struct _pidgin_blist_node *gtknode;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2529
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2530 if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), gtkblist->tip_rect.x, gtkblist->tip_rect.y, &path, NULL, NULL, NULL))
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2531 return FALSE;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2532 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2533 val.g_type = 0;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2534 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2535 node = g_value_get_pointer(&val);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2536
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2537 if(!PURPLE_BLIST_NODE_IS_CONTACT(node)) {
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
2538 gtk_tree_path_free(path);
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2539 return FALSE;
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
2540 }
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2541
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2542 gtknode = node->ui_data;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2543
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2544 if (!gtknode->contact_expanded) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2545 GtkTreeIter i;
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2546
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2547 pidgin_blist_expand_contact_cb(NULL, node);
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2548
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2549 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &gtkblist->contact_rect);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2550 gdk_drawable_get_size(GDK_DRAWABLE(tv->window), &(gtkblist->contact_rect.width), NULL);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2551 gtkblist->mouseover_contact = node;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2552 gtk_tree_path_down (path);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2553 while (gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &i, path)) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2554 GdkRectangle rect;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2555 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &rect);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2556 gtkblist->contact_rect.height += rect.height;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2557 gtk_tree_path_next(path);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2558 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2559 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2560 gtk_tree_path_free(path);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2561 return FALSE;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2562 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2563
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2564 static gboolean buddy_is_displayable(PurpleBuddy *buddy)
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2565 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2566 struct _pidgin_blist_node *gtknode;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2567
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2568 if(!buddy)
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2569 return FALSE;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2570
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2571 gtknode = ((PurpleBlistNode*)buddy)->ui_data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2572
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2573 return (purple_account_is_connected(buddy->account) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2574 (purple_presence_is_online(buddy->presence) ||
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2575 (gtknode && gtknode->recent_signonoff) ||
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2576 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies") ||
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2577 purple_blist_node_get_bool((PurpleBlistNode*)buddy, "show_offline")));
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2578 }
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2579
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2580 static gboolean pidgin_blist_tooltip_timeout(GtkWidget *tv)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2581 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2582 GtkTreePath *path;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2583 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2584 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2585 GValue val;
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2586 int scr_w, scr_h, w, h, x, y;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2587 #if GTK_CHECK_VERSION(2,2,0)
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2588 int mon_num;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2589 GdkScreen *screen = NULL;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2590 #endif
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2591 gboolean tooltip_top = FALSE;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2592 struct _pidgin_blist_node *gtknode;
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2593 GdkRectangle mon_size;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2594
11636
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2595 /*
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2596 * Attempt to free the previous tooltip. I have a feeling
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2597 * this is never needed... but just in case.
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2598 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2599 pidgin_blist_tooltip_destroy();
11636
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2600
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2601 if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), gtkblist->tip_rect.x, gtkblist->tip_rect.y, &path, NULL, NULL, NULL))
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2602 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2603 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2604 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2605 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2606 node = g_value_get_pointer(&val);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2607
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
2608 gtk_tree_path_free(path);
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
2609
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2610 gtkblist->tipwindow = gtk_window_new(GTK_WINDOW_POPUP);
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2611
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2612 if(PURPLE_BLIST_NODE_IS_CHAT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) {
12530
b33f97566985 [gaim-migrate @ 14843]
Nathan Walp <nwalp@pidgin.im>
parents: 12522
diff changeset
2613 struct tooltip_data *td = create_tip_for_node(node, TRUE);
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2614 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td);
15542
8de6f9738f5b fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents: 15539
diff changeset
2615 w = TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE +
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2616 MAX(td->width, td->name_width) + SMALL_SPACE + td->avatar_width + TOOLTIP_BORDER;
16160
9bc0d03311bc The things that C will allow to compile astound me. Removes an errant apostrophe.
Sean Egan <seanegan@pidgin.im>
parents: 16159
diff changeset
2617 h = TOOLTIP_BORDER + MAX(td->height + td->name_height, MAX(STATUS_SIZE, td->avatar_height))
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2618 + TOOLTIP_BORDER;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2619 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2620 PurpleBlistNode *child;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2621 PurpleBuddy *b = purple_contact_get_priority_buddy((PurpleContact *)node);
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2622 int max_text_width = 0;
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2623 int max_avatar_width = 0;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2624 w = h = 0;
15545
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2625
12530
b33f97566985 [gaim-migrate @ 14843]
Nathan Walp <nwalp@pidgin.im>
parents: 12522
diff changeset
2626 for(child = node->child; child; child = child->next)
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2627 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2628 if(PURPLE_BLIST_NODE_IS_BUDDY(child) && buddy_is_displayable((PurpleBuddy*)child)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2629 struct tooltip_data *td = create_tip_for_node(child, (b == (PurpleBuddy*)child));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2630 if (b == (PurpleBuddy *)child) {
11988
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
2631 gtkblist->tooltipdata = g_list_prepend(gtkblist->tooltipdata, td);
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
2632 } else {
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
2633 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td);
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
2634 }
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2635 max_text_width = MAX(max_text_width, MAX(td->width, td->name_width));
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2636 max_avatar_width = MAX(max_avatar_width, td->avatar_width);
16159
67d12aa69723 Fix ticket #52
Sean Egan <seanegan@pidgin.im>
parents: 16152
diff changeset
2637 h += MAX(TOOLTIP_BORDER + MAX(STATUS_SIZE,td->avatar_height),
67d12aa69723 Fix ticket #52
Sean Egan <seanegan@pidgin.im>
parents: 16152
diff changeset
2638 TOOLTIP_BORDER + td->height + td->name_height);
15545
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2639 }
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2640 }
16159
67d12aa69723 Fix ticket #52
Sean Egan <seanegan@pidgin.im>
parents: 16152
diff changeset
2641 h += TOOLTIP_BORDER;
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2642 w = TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE + max_text_width + SMALL_SPACE + max_avatar_width + TOOLTIP_BORDER;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2643 } else {
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2644 gtk_widget_destroy(gtkblist->tipwindow);
11892
88eba6864684 [gaim-migrate @ 14183]
Nathan Walp <nwalp@pidgin.im>
parents: 11890
diff changeset
2645 gtkblist->tipwindow = NULL;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2646 return FALSE;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2647 }
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2648
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2649 if (gtkblist->tooltipdata == NULL) {
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2650 gtk_widget_destroy(gtkblist->tipwindow);
11892
88eba6864684 [gaim-migrate @ 14183]
Nathan Walp <nwalp@pidgin.im>
parents: 11890
diff changeset
2651 gtkblist->tipwindow = NULL;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2652 return FALSE;
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2653 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2654
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2655 gtknode = node->ui_data;
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2656
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2657 gtk_widget_set_app_paintable(gtkblist->tipwindow, TRUE);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2658 gtk_window_set_resizable(GTK_WINDOW(gtkblist->tipwindow), FALSE);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2659 gtk_widget_set_name(gtkblist->tipwindow, "gtk-tooltips");
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2660 g_signal_connect(G_OBJECT(gtkblist->tipwindow), "expose_event",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2661 G_CALLBACK(pidgin_blist_paint_tip), NULL);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2662 gtk_widget_ensure_style (gtkblist->tipwindow);
7837
edc688e327dc [gaim-migrate @ 8490]
Nathan Walp <nwalp@pidgin.im>
parents: 7811
diff changeset
2663
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2664
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2665 #if GTK_CHECK_VERSION(2,2,0)
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2666 gdk_display_get_pointer(gdk_display_get_default(), &screen, &x, &y, NULL);
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2667 mon_num = gdk_screen_get_monitor_at_point(screen, x, y);
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2668 gdk_screen_get_monitor_geometry(screen, mon_num, &mon_size);
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2669
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2670 scr_w = mon_size.width + mon_size.x;
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2671 scr_h = mon_size.height + mon_size.y;
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2672 #else
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2673 scr_w = gdk_screen_width();
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2674 scr_h = gdk_screen_height();
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2675 gdk_window_get_pointer(NULL, &x, &y, NULL);
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2676 mon_size.x = 0;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2677 mon_size.y = 0;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2678 #endif
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2679
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2680 #if GTK_CHECK_VERSION(2,2,0)
10046
7e9175ee9b63 [gaim-migrate @ 11007]
Mark Doliner <markdoliner@pidgin.im>
parents: 10036
diff changeset
2681 if (w > mon_size.width)
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2682 w = mon_size.width - 10;
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2683
10046
7e9175ee9b63 [gaim-migrate @ 11007]
Mark Doliner <markdoliner@pidgin.im>
parents: 10036
diff changeset
2684 if (h > mon_size.height)
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2685 h = mon_size.height - 10;
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2686 #endif
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2687
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2688 if (GTK_WIDGET_NO_WINDOW(gtkblist->window))
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2689 y+=gtkblist->window->allocation.y;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2690
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2691 x -= ((w >> 1) + 4);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2692
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2693 if ((y + h + 4) > scr_h || tooltip_top)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2694 y = y - h - 5;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2695 else
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2696 y = y + 6;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2697
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2698 if (y < mon_size.y)
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2699 y = mon_size.y;
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2700
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2701 if (y != mon_size.y) {
7719
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2702 if ((x + w) > scr_w)
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2703 x -= (x + w + 5) - scr_w;
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2704 else if (x < mon_size.x)
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2705 x = mon_size.x;
7719
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2706 } else {
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2707 x -= (w / 2 + 10);
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2708 if (x < mon_size.x)
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2709 x = mon_size.x;
7719
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2710 }
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2711
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2712 gtk_widget_set_size_request(gtkblist->tipwindow, w, h);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2713 gtk_window_move(GTK_WINDOW(gtkblist->tipwindow), x, y);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2714 gtk_widget_show(gtkblist->tipwindow);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2715
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2716 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2717 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2718
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2719 static gboolean pidgin_blist_drag_motion_cb(GtkWidget *tv, GdkDragContext *drag_context,
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2720 gint x, gint y, guint time, gpointer user_data)
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2721 {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2722 GtkTreePath *path;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2723 int delay;
17485
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2724 GdkRectangle rect;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2725
12679
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2726 /*
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2727 * When dragging a buddy into a contact, this is the delay before
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2728 * the contact auto-expands.
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2729 */
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2730 delay = 900;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2731
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2732 if (gtkblist->drag_timeout) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2733 if ((y > gtkblist->tip_rect.y) && ((y - gtkblist->tip_rect.height) < gtkblist->tip_rect.y))
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2734 return FALSE;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2735 /* We've left the cell. Remove the timeout and create a new one below */
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2736 g_source_remove(gtkblist->drag_timeout);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2737 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2738
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2739 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), x, y, &path, NULL, NULL, NULL);
17485
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2740 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &rect);
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2741
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2742 /* Only autoexpand when in the middle of the cell to avoid annoying un-intended expands */
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2743 if (y < rect.y + (rect.height / 3) ||
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2744 y > rect.y + (2 * (rect.height /3)))
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2745 return FALSE;
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2746
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2747 rect.height = rect.height / 3;
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2748 rect.y += rect.height;
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2749
e010c3ae591a Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@pidgin.im>
parents: 17418
diff changeset
2750 gtkblist->tip_rect = rect;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2751
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2752 if (path)
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2753 gtk_tree_path_free(path);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2754 gtkblist->drag_timeout = g_timeout_add(delay, (GSourceFunc)pidgin_blist_expand_timeout, tv);
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2755
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2756 if (gtkblist->mouseover_contact) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2757 if ((y < gtkblist->contact_rect.y) || ((y - gtkblist->contact_rect.height) > gtkblist->contact_rect.y)) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2758 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact);
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2759 gtkblist->mouseover_contact = NULL;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2760 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2761 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2762
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2763 return FALSE;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2764 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2765
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2766 static gboolean pidgin_blist_motion_cb (GtkWidget *tv, GdkEventMotion *event, gpointer null)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2767 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2768 GtkTreePath *path;
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2769 int delay;
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2770
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2771 delay = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/tooltip_delay");
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2772
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2773 if (delay == 0)
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2774 return FALSE;
8083
312f60085554 [gaim-migrate @ 8782]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
2775
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2776 if (gtkblist->timeout) {
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2777 if ((event->y > gtkblist->tip_rect.y) && ((event->y - gtkblist->tip_rect.height) < gtkblist->tip_rect.y))
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2778 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2779 /* We've left the cell. Remove the timeout and create a new one below */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2780 pidgin_blist_tooltip_destroy();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2781 g_source_remove(gtkblist->timeout);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2782 }
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2783
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2784 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), event->x, event->y, &path, NULL, NULL, NULL);
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2785 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &gtkblist->tip_rect);
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2786
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2787 if (path)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2788 gtk_tree_path_free(path);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2789 gtkblist->timeout = g_timeout_add(delay, (GSourceFunc)pidgin_blist_tooltip_timeout, tv);
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2790
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2791 if (gtkblist->mouseover_contact) {
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2792 if ((event->y < gtkblist->contact_rect.y) || ((event->y - gtkblist->contact_rect.height) > gtkblist->contact_rect.y)) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2793 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact);
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2794 gtkblist->mouseover_contact = NULL;
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2795 }
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2796 }
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2797
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2798 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2799 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2800
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2801 static void pidgin_blist_leave_cb (GtkWidget *w, GdkEventCrossing *e, gpointer n)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2802 {
8083
312f60085554 [gaim-migrate @ 8782]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
2803
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2804 if (gtkblist->timeout) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2805 g_source_remove(gtkblist->timeout);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2806 gtkblist->timeout = 0;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2807 }
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2808
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2809 if (gtkblist->drag_timeout) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2810 g_source_remove(gtkblist->drag_timeout);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2811 gtkblist->drag_timeout = 0;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2812 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2813
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2814 pidgin_blist_tooltip_destroy();
7720
ee21f446e1fe [gaim-migrate @ 8365]
Sean Egan <seanegan@pidgin.im>
parents: 7719
diff changeset
2815
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2816 if (gtkblist->mouseover_contact &&
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
2817 !((e->x > gtkblist->contact_rect.x) && (e->x < (gtkblist->contact_rect.x + gtkblist->contact_rect.width)) &&
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
2818 (e->y > gtkblist->contact_rect.y) && (e->y < (gtkblist->contact_rect.y + gtkblist->contact_rect.height)))) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2819 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact);
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2820 gtkblist->mouseover_contact = NULL;
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2821 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2822 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2823
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2824 static void
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2825 toggle_debug(void)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2826 {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2827 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/debug/enabled",
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2828 !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/enabled"));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2829 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2830
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2831
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2832 /***************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2833 * Crap *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2834 ***************************************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2835 static GtkItemFactoryEntry blist_menu[] =
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2836 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2837 /* Buddies menu */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2838 { N_("/_Buddies"), NULL, NULL, 0, "<Branch>", NULL },
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
2839 { N_("/Buddies/New Instant _Message..."), "<CTL>M", pidgin_dialogs_im, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW },
15614
8dcd6c09d69a Remove excess menu item icon clutter, especialy where our icons made no sense. The Redo icon for Buddy Pounces?! Come on.
Sean Egan <seanegan@pidgin.im>
parents: 15606
diff changeset
2840 { N_("/Buddies/Join a _Chat..."), "<CTL>C", pidgin_blist_joinchat_show, 0, "<Item>", NULL },
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
2841 { N_("/Buddies/Get User _Info..."), "<CTL>I", pidgin_dialogs_info, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO },
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
2842 { N_("/Buddies/View User _Log..."), "<CTL>L", pidgin_dialogs_log, 0, "<Item>", NULL },
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2843 { "/Buddies/sep1", NULL, NULL, 0, "<Separator>", NULL },
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2844 { N_("/Buddies/Show _Offline Buddies"), NULL, pidgin_blist_edit_mode_cb, 1, "<CheckItem>", NULL },
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2845 { N_("/Buddies/Show _Empty Groups"), NULL, pidgin_blist_show_empty_groups_cb, 1, "<CheckItem>", NULL },
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2846 { N_("/Buddies/Show Buddy _Details"), NULL, pidgin_blist_buddy_details_cb, 1, "<CheckItem>", NULL },
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2847 { N_("/Buddies/Show Idle _Times"), NULL, pidgin_blist_show_idle_time_cb, 1, "<CheckItem>", NULL },
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2848 { N_("/Buddies/_Sort Buddies"), NULL, NULL, 0, "<Branch>", NULL },
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2849 { "/Buddies/sep2", NULL, NULL, 0, "<Separator>", NULL },
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2850 { N_("/Buddies/_Add Buddy..."), "<CTL>B", pidgin_blist_add_buddy_cb, 0, "<StockItem>", GTK_STOCK_ADD },
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2851 { N_("/Buddies/Add C_hat..."), NULL, pidgin_blist_add_chat_cb, 0, "<StockItem>", GTK_STOCK_ADD },
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2852 { N_("/Buddies/Add _Group..."), NULL, purple_blist_request_add_group, 0, "<StockItem>", GTK_STOCK_ADD },
12799
3a4678907219 [gaim-migrate @ 15146]
Mark Doliner <markdoliner@pidgin.im>
parents: 12797
diff changeset
2853 { "/Buddies/sep3", NULL, NULL, 0, "<Separator>", NULL },
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2854 { N_("/Buddies/_Quit"), "<CTL>Q", purple_core_quit, 0, "<StockItem>", GTK_STOCK_QUIT },
12300
c24609bae42d [gaim-migrate @ 14604]
Peter Lawler <pidgin@bleeter.id.au>
parents: 12298
diff changeset
2855
c24609bae42d [gaim-migrate @ 14604]
Peter Lawler <pidgin@bleeter.id.au>
parents: 12298
diff changeset
2856 /* Accounts menu */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2857 { N_("/_Accounts"), NULL, NULL, 0, "<Branch>", NULL },
15614
8dcd6c09d69a Remove excess menu item icon clutter, especialy where our icons made no sense. The Redo icon for Buddy Pounces?! Come on.
Sean Egan <seanegan@pidgin.im>
parents: 15606
diff changeset
2858 { N_("/Accounts/Add\\/Edit"), "<CTL>A", pidgin_accounts_window_show, 0, "<Item>", NULL },
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2859
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2860 /* Tools */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2861 { N_("/_Tools"), NULL, NULL, 0, "<Branch>", NULL },
15614
8dcd6c09d69a Remove excess menu item icon clutter, especialy where our icons made no sense. The Redo icon for Buddy Pounces?! Come on.
Sean Egan <seanegan@pidgin.im>
parents: 15606
diff changeset
2862 { N_("/Tools/Buddy _Pounces"), NULL, pidgin_pounces_manager_show, 0, "<Item>", NULL },
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
2863 { N_("/Tools/Plu_gins"), "<CTL>U", pidgin_plugin_dialog_show, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_PLUGINS },
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2864 { N_("/Tools/Pr_eferences"), "<CTL>P", pidgin_prefs_show, 0, "<StockItem>", GTK_STOCK_PREFERENCES },
15614
8dcd6c09d69a Remove excess menu item icon clutter, especialy where our icons made no sense. The Redo icon for Buddy Pounces?! Come on.
Sean Egan <seanegan@pidgin.im>
parents: 15606
diff changeset
2865 { N_("/Tools/Pr_ivacy"), NULL, pidgin_privacy_dialog_show, 0, "<Item>", NULL },
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2866 { "/Tools/sep2", NULL, NULL, 0, "<Separator>", NULL },
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16259
diff changeset
2867 { N_("/Tools/_File Transfers"), "<CTL>T", pidgin_xfer_dialog_show, 0, "<Item>", NULL },
15614
8dcd6c09d69a Remove excess menu item icon clutter, especialy where our icons made no sense. The Redo icon for Buddy Pounces?! Come on.
Sean Egan <seanegan@pidgin.im>
parents: 15606
diff changeset
2868 { N_("/Tools/R_oom List"), NULL, pidgin_roomlist_dialog_show, 0, "<Item>", NULL },
8dcd6c09d69a Remove excess menu item icon clutter, especialy where our icons made no sense. The Redo icon for Buddy Pounces?! Come on.
Sean Egan <seanegan@pidgin.im>
parents: 15606
diff changeset
2869 { N_("/Tools/System _Log"), NULL, gtk_blist_show_systemlog_cb, 0, "<Item>", NULL },
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2870 { "/Tools/sep3", NULL, NULL, 0, "<Separator>", NULL },
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2871 { N_("/Tools/Mute _Sounds"), "<CTL>S", pidgin_blist_mute_sounds_cb, 0, "<CheckItem>", NULL },
17419
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
2872 /* Help */
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
2873 { N_("/_Help"), NULL, NULL, 0, "<Branch>", NULL },
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
2874 { N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP },
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
2875 { N_("/Help/_Debug Window"), NULL, toggle_debug, 0, "<Item>", NULL },
18556
9517c517e59d propagate from branch 'im.pidgin.pidgin' (head ececd1bd99e3ce53bf5484ade30665f8d00fad85)
Richard Laager <rlaager@pidgin.im>
parents: 18373 17548
diff changeset
2876 #if GTK_CHECK_VERSION(2,6,0)
9517c517e59d propagate from branch 'im.pidgin.pidgin' (head ececd1bd99e3ce53bf5484ade30665f8d00fad85)
Richard Laager <rlaager@pidgin.im>
parents: 18373 17548
diff changeset
2877 { N_("/Help/_About"), NULL, pidgin_dialogs_about, 0, "<StockItem>", GTK_STOCK_ABOUT },
9517c517e59d propagate from branch 'im.pidgin.pidgin' (head ececd1bd99e3ce53bf5484ade30665f8d00fad85)
Richard Laager <rlaager@pidgin.im>
parents: 18373 17548
diff changeset
2878 #else
17419
2a7045fc50bf disapproval of revision 'e582f0260df20a57244730dc433866e754975417'
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17417
diff changeset
2879 { N_("/Help/_About"), NULL, pidgin_dialogs_about, 0, "<Item>", NULL },
18556
9517c517e59d propagate from branch 'im.pidgin.pidgin' (head ececd1bd99e3ce53bf5484ade30665f8d00fad85)
Richard Laager <rlaager@pidgin.im>
parents: 18373 17548
diff changeset
2880 #endif
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2881 };
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2882
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2883 /*********************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2884 * Private Utility functions *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2885 *********************************************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2886
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2887 static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2888 {
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2889 GString *str = g_string_new("");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2890 PurplePlugin *prpl;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2891 PurplePluginProtocolInfo *prpl_info = NULL;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2892 char *tmp;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2893
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2894 if (PURPLE_BLIST_NODE_IS_CHAT(node))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2895 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2896 PurpleChat *chat;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2897 GList *cur;
5274
71553f31db2e [gaim-migrate @ 5646]
Nathan Walp <nwalp@pidgin.im>
parents: 5273
diff changeset
2898 struct proto_chat_entry *pce;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2899 char *name, *value;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2900
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2901 chat = (PurpleChat *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2902 prpl = purple_find_prpl(purple_account_get_protocol_id(chat->account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2903 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2904
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
2905 if (g_list_length(purple_connections_get_all()) > 1)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2906 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2907 tmp = g_markup_escape_text(chat->account->username, -1);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2908 g_string_append_printf(str, _("\n<b>Account:</b> %s"), tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2909 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2910 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2911
9959
e80396496a78 [gaim-migrate @ 10866]
Luke Schierer <lschiere@pidgin.im>
parents: 9954
diff changeset
2912 if (prpl_info->chat_info != NULL)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2913 cur = prpl_info->chat_info(chat->account->gc);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2914 else
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2915 cur = NULL;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2916
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2917 while (cur != NULL)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2918 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2919 pce = cur->data;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2920
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2921 if (!pce->secret && (!pce->required &&
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2922 g_hash_table_lookup(chat->components, pce->identifier) == NULL))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2923 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2924 tmp = purple_text_strip_mnemonic(pce->label);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2925 name = g_markup_escape_text(tmp, -1);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2926 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2927 value = g_markup_escape_text(g_hash_table_lookup(
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2928 chat->components, pce->identifier), -1);
10924
248233a58180 [gaim-migrate @ 12695]
Daniel Atallah <datallah@pidgin.im>
parents: 10918
diff changeset
2929 g_string_append_printf(str, "\n<b>%s</b> %s",
248233a58180 [gaim-migrate @ 12695]
Daniel Atallah <datallah@pidgin.im>
parents: 10918
diff changeset
2930 name ? name : "",
248233a58180 [gaim-migrate @ 12695]
Daniel Atallah <datallah@pidgin.im>
parents: 10918
diff changeset
2931 value ? value : "");
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2932 g_free(name);
8020
9c5ae652fc7f [gaim-migrate @ 8700]
Nathan Walp <nwalp@pidgin.im>
parents: 8003
diff changeset
2933 g_free(value);
9c5ae652fc7f [gaim-migrate @ 8700]
Nathan Walp <nwalp@pidgin.im>
parents: 8003
diff changeset
2934 }
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2935
5274
71553f31db2e [gaim-migrate @ 5646]
Nathan Walp <nwalp@pidgin.im>
parents: 5273
diff changeset
2936 g_free(pce);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2937 cur = g_list_remove(cur, pce);
5274
71553f31db2e [gaim-migrate @ 5646]
Nathan Walp <nwalp@pidgin.im>
parents: 5273
diff changeset
2938 }
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2939 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2940 else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2941 {
15209
9dd48f6c8805 [gaim-migrate @ 17933]
Evan Schoenberg <evands@pidgin.im>
parents: 15206
diff changeset
2942 /* NOTE: THIS FUNCTION IS NO LONGER CALLED FOR CONTACTS.
9dd48f6c8805 [gaim-migrate @ 17933]
Evan Schoenberg <evands@pidgin.im>
parents: 15206
diff changeset
2943 * It is only called by create_tip_for_node(), and create_tip_for_node() is never called for a contact.
9dd48f6c8805 [gaim-migrate @ 17933]
Evan Schoenberg <evands@pidgin.im>
parents: 15206
diff changeset
2944 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2945 PurpleContact *c;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2946 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2947 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2948 PurpleNotifyUserInfo *user_info;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2949 char *tmp;
10567
87b02dd40349 [gaim-migrate @ 11951]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10544
diff changeset
2950 time_t idle_secs, signon;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2951
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2952 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2953 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2954 c = (PurpleContact *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2955 b = purple_contact_get_priority_buddy(c);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2956 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2957 else
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2958 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2959 b = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2960 c = purple_buddy_get_contact(b);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2961 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2962
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2963 prpl = purple_find_prpl(purple_account_get_protocol_id(b->account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2964 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2965
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2966 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2967 user_info = purple_notify_user_info_new();
15206
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
2968
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2969 /* Account */
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
2970 if (full && g_list_length(purple_connections_get_all()) > 1)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2971 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2972 tmp = g_markup_escape_text(purple_account_get_username(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2973 purple_buddy_get_account(b)), -1);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2974 purple_notify_user_info_add_pair(user_info, _("Account"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2975 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2976 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2977
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2978 /* Alias */
12942
b0b4accb55fb [gaim-migrate @ 15295]
Richard Laager <rlaager@pidgin.im>
parents: 12941
diff changeset
2979 /* If there's not a contact alias, the node is being displayed with
b0b4accb55fb [gaim-migrate @ 15295]
Richard Laager <rlaager@pidgin.im>
parents: 12941
diff changeset
2980 * this alias, so there's no point in showing it in the tooltip. */
b0b4accb55fb [gaim-migrate @ 15295]
Richard Laager <rlaager@pidgin.im>
parents: 12941
diff changeset
2981 if (full && b->alias != NULL && b->alias[0] != '\0' &&
13218
47708e4d453e [gaim-migrate @ 15581]
Richard Laager <rlaager@pidgin.im>
parents: 13202
diff changeset
2982 (c->alias != NULL && c->alias[0] != '\0') &&
47708e4d453e [gaim-migrate @ 15581]
Richard Laager <rlaager@pidgin.im>
parents: 13202
diff changeset
2983 strcmp(c->alias, b->alias) != 0)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2984 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2985 tmp = g_markup_escape_text(b->alias, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2986 purple_notify_user_info_add_pair(user_info, _("Buddy Alias"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2987 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2988 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2989
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2990 /* Nickname/Server Alias */
12966
4ef0b7997610 [gaim-migrate @ 15319]
Richard Laager <rlaager@pidgin.im>
parents: 12943
diff changeset
2991 /* I'd like to only show this if there's a contact or buddy
4ef0b7997610 [gaim-migrate @ 15319]
Richard Laager <rlaager@pidgin.im>
parents: 12943
diff changeset
2992 * alias, but many people on MSN set long nicknames, which
4ef0b7997610 [gaim-migrate @ 15319]
Richard Laager <rlaager@pidgin.im>
parents: 12943
diff changeset
2993 * get ellipsized, so the only way to see the whole thing is
4ef0b7997610 [gaim-migrate @ 15319]
Richard Laager <rlaager@pidgin.im>
parents: 12943
diff changeset
2994 * to look at the tooltip. */
4ef0b7997610 [gaim-migrate @ 15319]
Richard Laager <rlaager@pidgin.im>
parents: 12943
diff changeset
2995 if (full && b->server_alias != NULL && b->server_alias[0] != '\0')
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2996 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2997 tmp = g_markup_escape_text(b->server_alias, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2998 purple_notify_user_info_add_pair(user_info, _("Nickname"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2999 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3000 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3001
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3002 /* Logged In */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3003 signon = purple_presence_get_login_time(presence);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3004 if (full && PURPLE_BUDDY_IS_ONLINE(b) && signon > 0)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3005 {
18314
4e4e7aa803b3 This is a less dumb way to make sure we don't wrap
Mark Doliner <markdoliner@pidgin.im>
parents: 18280
diff changeset
3006 if (signon > time(NULL)) {
17698
939730b308fe Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <markdoliner@pidgin.im>
parents: 17658
diff changeset
3007 /*
18314
4e4e7aa803b3 This is a less dumb way to make sure we don't wrap
Mark Doliner <markdoliner@pidgin.im>
parents: 18280
diff changeset
3008 * They signed on in the future?! Our local clock
4e4e7aa803b3 This is a less dumb way to make sure we don't wrap
Mark Doliner <markdoliner@pidgin.im>
parents: 18280
diff changeset
3009 * must be wrong, show the actual date instead of
4e4e7aa803b3 This is a less dumb way to make sure we don't wrap
Mark Doliner <markdoliner@pidgin.im>
parents: 18280
diff changeset
3010 * "4 days", etc.
17698
939730b308fe Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <markdoliner@pidgin.im>
parents: 17658
diff changeset
3011 */
939730b308fe Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <markdoliner@pidgin.im>
parents: 17658
diff changeset
3012 tmp = g_strdup(purple_date_format_long(localtime(&signon)));
939730b308fe Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <markdoliner@pidgin.im>
parents: 17658
diff changeset
3013 } else
939730b308fe Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <markdoliner@pidgin.im>
parents: 17658
diff changeset
3014 tmp = purple_str_seconds_to_string(time(NULL) - signon);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3015 purple_notify_user_info_add_pair(user_info, _("Logged In"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3016 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3017 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3018
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3019 /* Idle */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3020 if (purple_presence_is_idle(presence))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3021 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3022 idle_secs = purple_presence_get_idle_time(presence);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3023 if (idle_secs > 0)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3024 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3025 tmp = purple_str_seconds_to_string(time(NULL) - idle_secs);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3026 purple_notify_user_info_add_pair(user_info, _("Idle"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3027 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3028 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3029 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3030
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3031 /* Last Seen */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3032 if (full && !PURPLE_BUDDY_IS_ONLINE(b))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3033 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3034 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode *)c)->ui_data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3035 PurpleBlistNode *bnode;
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3036 int lastseen = 0;
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3037
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3038 if (!gtknode->contact_expanded || PURPLE_BLIST_NODE_IS_CONTACT(node))
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3039 {
11437
20ba0815b4f8 [gaim-migrate @ 13674]
Richard Laager <rlaager@pidgin.im>
parents: 11436
diff changeset
3040 /* We're either looking at a buddy for a collapsed contact or
11438
46e5a461d0aa [gaim-migrate @ 13675]
Richard Laager <rlaager@pidgin.im>
parents: 11437
diff changeset
3041 * an expanded contact itself so we show the most recent
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3042 * (largest) last_seen time for any of the buddies under
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3043 * the contact. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3044 for (bnode = ((PurpleBlistNode *)c)->child ; bnode != NULL ; bnode = bnode->next)
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3045 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3046 int value = purple_blist_node_get_int(bnode, "last_seen");
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3047 if (value > lastseen)
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3048 lastseen = value;
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3049 }
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3050 }
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3051 else
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3052 {
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3053 /* We're dealing with a buddy under an expanded contact,
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3054 * so we show the last_seen time for the buddy. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3055 lastseen = purple_blist_node_get_int(&b->node, "last_seen");
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3056 }
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3057
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3058 if (lastseen > 0)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3059 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3060 tmp = purple_str_seconds_to_string(time(NULL) - lastseen);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3061 purple_notify_user_info_add_pair(user_info, _("Last Seen"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3062 g_free(tmp);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3063 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3064 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3065
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3066
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3067 /* Offline? */
12970
c2f3b4dcf711 [gaim-migrate @ 15323]
Richard Laager <rlaager@pidgin.im>
parents: 12966
diff changeset
3068 /* FIXME: Why is this status special-cased by the core? -- rlaager */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3069 if (!PURPLE_BUDDY_IS_ONLINE(b)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3070 purple_notify_user_info_add_pair(user_info, _("Status"), _("Offline"));
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3071 }
10992
ccf59743dae4 [gaim-migrate @ 12830]
Daniel Atallah <datallah@pidgin.im>
parents: 10968
diff changeset
3072
ccf59743dae4 [gaim-migrate @ 12830]
Daniel Atallah <datallah@pidgin.im>
parents: 10968
diff changeset
3073 if (prpl_info && prpl_info->tooltip_text)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3074 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3075 /* Additional text from the PRPL */
15206
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
3076 prpl_info->tooltip_text(b, user_info, full);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3077 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3078
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3079 /* These are Easter Eggs. Patches to remove them will be rejected. */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3080 if (!g_ascii_strcasecmp(b->name, "robflynn"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3081 purple_notify_user_info_add_pair(user_info, _("Description"), _("Spooky"));
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3082 if (!g_ascii_strcasecmp(b->name, "seanegn"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3083 purple_notify_user_info_add_pair(user_info, _("Status"), _("Awesome"));
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3084 if (!g_ascii_strcasecmp(b->name, "chipx86"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3085 purple_notify_user_info_add_pair(user_info, _("Status"), _("Rockin'"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3086
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3087 tmp = purple_notify_user_info_get_text_with_newline(user_info, "\n");
15206
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
3088 g_string_append(str, tmp);
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
3089 g_free(tmp);
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
3090
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3091 purple_notify_user_info_destroy(user_info);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3092 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3093
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3094 purple_signal_emit(pidgin_blist_get_handle(),
12713
6f057a6e0516 [gaim-migrate @ 15057]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12679
diff changeset
3095 "drawing-tooltip", node, str, full);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3096
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3097 return g_string_free(str, FALSE);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3098 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3099
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3100 GdkPixbuf *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3101 pidgin_blist_get_emblem(PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3102 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3103 PurpleBuddy *buddy = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3104 struct _pidgin_blist_node *gtknode = node->ui_data;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3105 struct _pidgin_blist_node *gtkbuddynode = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3106 PurplePlugin *prpl;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3107 PurplePluginProtocolInfo *prpl_info;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3108 const char *name = NULL;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3109 char *filename, *path;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3110 GdkPixbuf *ret;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3111 PurplePresence *p;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3112
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3113
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3114
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3115 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3116 if(!gtknode->contact_expanded) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3117 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3118 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3119 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3120 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3121 buddy = (PurpleBuddy*)node;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3122 gtkbuddynode = node->ui_data;
18373
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3123 p = purple_buddy_get_presence(buddy);
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3124 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) {
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3125 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems",
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3126 "16", "mobile.png", NULL);
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3127 ret = gdk_pixbuf_new_from_file(path, NULL);
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3128 g_free(path);
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3129 return ret;
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3130 }
f6b2e4dd0e9b Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@pidgin.im>
parents: 18372
diff changeset
3131
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3132 if (((struct _pidgin_blist_node*)(node->parent->ui_data))->contact_expanded)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3133 return pidgin_create_prpl_icon(((PurpleBuddy*)node)->account, PIDGIN_PRPL_ICON_SMALL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3134 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3135 return pidgin_create_prpl_icon(((PurpleChat*)node)->account, PIDGIN_PRPL_ICON_SMALL);
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3136 } else {
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3137 return NULL;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3138 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3139
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3140 if (!purple_privacy_check(buddy->account, purple_buddy_get_name(buddy))) {
15561
bdb019a1f485 Blocked emblem
Sean Egan <seanegan@pidgin.im>
parents: 15559
diff changeset
3141 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "blocked.png", NULL);
15588
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
3142 ret = gdk_pixbuf_new_from_file(path, NULL);
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
3143 g_free(path);
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
3144 return ret;
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
3145 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3146
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3147 p = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3148 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) {
15588
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
3149 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "mobile.png", NULL);
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
3150 ret = gdk_pixbuf_new_from_file(path, NULL);
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
3151 g_free(path);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3152 return ret;
15561
bdb019a1f485 Blocked emblem
Sean Egan <seanegan@pidgin.im>
parents: 15559
diff changeset
3153 }
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3154
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3155 prpl = purple_find_prpl(purple_account_get_protocol_id(buddy->account));
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3156 if (!prpl)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3157 return NULL;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3158
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3159 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3160 if (prpl_info && prpl_info->list_emblem)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3161 name = prpl_info->list_emblem(buddy);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3162
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3163 if (name == NULL)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3164 return NULL;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3165
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3166 filename = g_strdup_printf("%s.png", name);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3167
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3168 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", filename, NULL);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3169 ret = gdk_pixbuf_new_from_file(path, NULL);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3170
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3171 g_free(filename);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3172 g_free(path);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3173
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3174 return ret;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3175 }
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3176
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3177
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
3178 GdkPixbuf *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3179 pidgin_blist_get_status_icon(PurpleBlistNode *node, PidginStatusIconSize size)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3180 {
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
3181 GdkPixbuf *ret;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3182 const char *protoname = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3183 struct _pidgin_blist_node *gtknode = node->ui_data;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3184 struct _pidgin_blist_node *gtkbuddynode = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3185 PurpleBuddy *buddy = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3186 PurpleChat *chat = NULL;
15606
a070ac7366f8 Perhaps a 22px icon is better in the tooltip
Sean Egan <seanegan@pidgin.im>
parents: 15588
diff changeset
3187 GtkIconSize icon_size = gtk_icon_size_from_name((size == PIDGIN_STATUS_ICON_LARGE) ? PIDGIN_ICON_SIZE_TANGO_SMALL :
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
3188 PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3189
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3190 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
3191 if(!gtknode->contact_expanded) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3192 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
17086
4b6d59cdfaca This is what I actually intended to commit in aee2b2d67b643d59beb0b75b460c553c804e8220. The rest of the mess being pushed is me trying to clean up my mess.
Daniel Atallah <datallah@pidgin.im>
parents: 17082
diff changeset
3193 if (buddy != NULL)
4b6d59cdfaca This is what I actually intended to commit in aee2b2d67b643d59beb0b75b460c553c804e8220. The rest of the mess being pushed is me trying to clean up my mess.
Daniel Atallah <datallah@pidgin.im>
parents: 17082
diff changeset
3194 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
3195 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3196 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3197 buddy = (PurpleBuddy*)node;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
3198 gtkbuddynode = node->ui_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3199 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3200 chat = (PurpleChat*)node;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3201 } else {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3202 return NULL;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3203 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3204
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3205 if(buddy || chat) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3206 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3207 PurplePlugin *prpl;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3208 PurplePluginProtocolInfo *prpl_info;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3209
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3210 if(buddy)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3211 account = buddy->account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3212 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3213 account = chat->account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3214
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3215 prpl = purple_find_prpl(purple_account_get_protocol_id(account));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3216 if(!prpl)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3217 return NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3218
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3219 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3220
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3221 if(prpl_info && prpl_info->list_icon) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3222 protoname = prpl_info->list_icon(account, buddy);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3223 }
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3224 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3225
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
3226 if(buddy) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3227 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3228 purple_buddy_get_name(buddy),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3229 purple_buddy_get_account(buddy));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3230 PurplePresence *p;
15559
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3231 if(conv != NULL) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3232 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
3233 if(gtkconv != NULL && pidgin_conv_is_hidden(gtkconv) && size == PIDGIN_STATUS_ICON_SMALL) {
15559
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3234 return gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_MESSAGE,
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3235 icon_size, "GtkTreeView");
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3236 }
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3237 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3238 p = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3239
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3240 if (PURPLE_BUDDY_IS_ONLINE(buddy) && gtkbuddynode && gtkbuddynode->recent_signonoff)
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3241 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_LOGIN,
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3242 icon_size, "GtkTreeView");
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3243 else if (gtkbuddynode && gtkbuddynode->recent_signonoff)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3244 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_LOGOUT,
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3245 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3246 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_UNAVAILABLE))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3247 if (purple_presence_is_idle(p) && size == PIDGIN_STATUS_ICON_SMALL)
15554
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3248 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_BUSY_I,
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3249 icon_size, "GtkTreeView");
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3250 else
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3251 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_BUSY,
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3252 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3253 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_AWAY))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3254 if (purple_presence_is_idle(p) && size == PIDGIN_STATUS_ICON_SMALL)
15554
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3255 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_AWAY_I,
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3256 icon_size, "GtkTreeView");
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3257 else
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3258 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_AWAY,
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3259 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3260 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_EXTENDED_AWAY))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3261 if (purple_presence_is_idle(p) && size == PIDGIN_STATUS_ICON_SMALL)
15554
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3262 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_XA_I,
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3263 icon_size, "GtkTreeView");
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3264 else
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3265 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_XA,
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3266 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3267 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_OFFLINE))
17418
dca3c1ab101f Change Offline icon in buddy list back to opaque. I found it too hard to discern it from idle otherwise
Sean Egan <seanegan@pidgin.im>
parents: 17417
diff changeset
3268 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_OFFLINE,
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3269 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3270 else if (purple_presence_is_idle(p) && size == PIDGIN_STATUS_ICON_SMALL)
15554
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3271 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_AVAILABLE_I,
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3272 icon_size, "GtkTreeView");
17486
81eb43dbc844 Show the Invisible icon (the same one in the statusbox for buddies that are broadcasting an invisible status to you. This should fix #740, but I'm not positive
Sean Egan <seanegan@pidgin.im>
parents: 17485
diff changeset
3273 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_INVISIBLE))
81eb43dbc844 Show the Invisible icon (the same one in the statusbox for buddies that are broadcasting an invisible status to you. This should fix #740, but I'm not positive
Sean Egan <seanegan@pidgin.im>
parents: 17485
diff changeset
3274 ret = gtk_widget_render_icon(GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_INVISIBLE,
81eb43dbc844 Show the Invisible icon (the same one in the statusbox for buddies that are broadcasting an invisible status to you. This should fix #740, but I'm not positive
Sean Egan <seanegan@pidgin.im>
parents: 17485
diff changeset
3275 icon_size, "GtkTreeView");
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3276 else
15554
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3277 ret = gtk_widget_render_icon(GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_AVAILABLE,
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3278 icon_size, "GtkTreeView");
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3279 } else if (chat) {
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3280 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_CHAT,
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3281 icon_size, "GtkTreeView");
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3282 } else {
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3283 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_PERSON,
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3284 icon_size, "GtkTreeView");
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3285 }
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
3286
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
3287 return ret;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3288 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3289
18274
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3290 gchar *pidgin_blist_get_name_markup(PurpleBuddy *b, gboolean selected, gboolean aliased)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3291 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3292 const char *name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3293 char *esc, *text = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3294 PurplePlugin *prpl;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3295 PurplePluginProtocolInfo *prpl_info = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3296 PurpleContact *contact;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3297 PurplePresence *presence;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3298 struct _pidgin_blist_node *gtkcontactnode = NULL;
11257
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
3299 char *idletime = NULL, *statustext = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3300 time_t t;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3301 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3302 purple_buddy_get_name(b),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3303 purple_buddy_get_account(b));
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3304 PidginConversation *gtkconv;
15559
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3305 gboolean hidden_conv = FALSE;
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3306
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3307 if(conv != NULL) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3308 gtkconv = PIDGIN_CONVERSATION(conv);
15563
9eea2b8c2846 pidginconv to pidgin_conv
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
3309 if(gtkconv != NULL && pidgin_conv_is_hidden(gtkconv)) {
15559
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3310 hidden_conv = TRUE;
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3311 }
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3312 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3313
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3314 /* XXX Good luck cleaning up this crap */
18274
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3315 if (aliased) {
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3316 contact = (PurpleContact*)((PurpleBlistNode*)b)->parent;
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3317 if(contact)
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3318 gtkcontactnode = ((PurpleBlistNode*)contact)->ui_data;
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3319
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3320 if(gtkcontactnode && !gtkcontactnode->contact_expanded && contact->alias)
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3321 name = contact->alias;
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3322 else
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3323 name = purple_buddy_get_alias(b);
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3324 } else {
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3325 name = b->name;
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3326 }
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
3327
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3328 esc = g_markup_escape_text(name, strlen(name));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3329
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3330 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3331
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3332 if (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"))
13034
cfeb9826ba96 [gaim-migrate @ 15392]
Richard Laager <rlaager@pidgin.im>
parents: 13030
diff changeset
3333 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3334 if (!selected && purple_presence_is_idle(presence))
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
3335 {
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
3336 text = g_strdup_printf("<span color='%s'>%s</span>",
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
3337 dim_grey(), esc);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3338 g_free(esc);
15559
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3339 if (hidden_conv) {
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3340 char *tmp = text;
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3341 text = g_strdup_printf("<b>%s</b>", text);
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3342 g_free(tmp);
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3343 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3344 return text;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3345 }
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
3346 else
15559
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3347 if (hidden_conv) {
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3348 char *tmp = esc;
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3349 esc = g_strdup_printf("<b>%s</b>", esc);
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3350 g_free(tmp);
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3351 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3352 return esc;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3353 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3354
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3355 prpl = purple_find_prpl(purple_account_get_protocol_id(b->account));
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3356
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3357 if (prpl != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3358 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3359
8122
64dc12809940 [gaim-migrate @ 8826]
Christian Hammond <chipx86@chipx86.com>
parents: 8113
diff changeset
3360 if (prpl_info && prpl_info->status_text && b->account->gc) {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3361 char *tmp = prpl_info->status_text(b);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3362 const char *end;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3363
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3364 if(tmp && !g_utf8_validate(tmp, -1, &end)) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3365 char *new = g_strndup(tmp,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3366 g_utf8_pointer_to_offset(tmp, end));
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3367 g_free(tmp);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3368 tmp = new;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3369 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3370
10288
fc688f632351 [gaim-migrate @ 11462]
Nathan Walp <nwalp@pidgin.im>
parents: 10287
diff changeset
3371 #if !GTK_CHECK_VERSION(2,6,0)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3372 if(tmp) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3373 char buf[32];
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3374 char *c = tmp;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3375 int length = 0, vis=0;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3376 gboolean inside = FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3377 g_strdelimit(tmp, "\n", ' ');
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3378 purple_str_strip_char(tmp, '\r');
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3379
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3380 while(*c && vis < 20) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3381 if(*c == '&')
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3382 inside = TRUE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3383 else if(*c == ';')
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3384 inside = FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3385 if(!inside)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3386 vis++;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3387 c = g_utf8_next_char(c); /* this is fun */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3388 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3389
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3390 length = c - tmp;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3391
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3392 if(vis == 20)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3393 g_snprintf(buf, sizeof(buf), "%%.%ds...", length);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3394 else
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3395 g_snprintf(buf, sizeof(buf), "%%s ");
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3396
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3397 statustext = g_strdup_printf(buf, tmp);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3398
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3399 g_free(tmp);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3400 }
10288
fc688f632351 [gaim-migrate @ 11462]
Nathan Walp <nwalp@pidgin.im>
parents: 10287
diff changeset
3401 #else
13792
ceb938a873da [gaim-migrate @ 16202]
Joshua Honeycutt <coweater@users.sourceforge.net>
parents: 13768
diff changeset
3402 if(tmp) {
12437
8273decd4841 [gaim-migrate @ 14744]
Nathan Walp <nwalp@pidgin.im>
parents: 12436
diff changeset
3403 g_strdelimit(tmp, "\n", ' ');
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3404 purple_str_strip_char(tmp, '\r');
13792
ceb938a873da [gaim-migrate @ 16202]
Joshua Honeycutt <coweater@users.sourceforge.net>
parents: 13768
diff changeset
3405 }
10288
fc688f632351 [gaim-migrate @ 11462]
Nathan Walp <nwalp@pidgin.im>
parents: 10287
diff changeset
3406 statustext = tmp;
fc688f632351 [gaim-migrate @ 11462]
Nathan Walp <nwalp@pidgin.im>
parents: 10287
diff changeset
3407 #endif
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3408 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3409
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3410 if(!purple_presence_is_online(presence) && !statustext)
13034
cfeb9826ba96 [gaim-migrate @ 15392]
Richard Laager <rlaager@pidgin.im>
parents: 13030
diff changeset
3411 statustext = g_strdup(_("Offline"));
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3412 else if (!statustext)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3413 text = g_strdup(esc);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
3414
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3415 if (purple_presence_is_idle(presence)) {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3416 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time")) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3417 time_t idle_secs = purple_presence_get_idle_time(presence);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3418
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3419 if (idle_secs > 0) {
18444
3bac793de1ba Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@pidgin.im>
parents: 18280
diff changeset
3420 int iday, ihrs, imin;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3421
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3422 time(&t);
18444
3bac793de1ba Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@pidgin.im>
parents: 18280
diff changeset
3423 iday = (t - idle_secs) / (24 * 60 * 60);
3bac793de1ba Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@pidgin.im>
parents: 18280
diff changeset
3424 ihrs = ((t - idle_secs) / 60 / 60) % 24;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3425 imin = ((t - idle_secs) / 60) % 60;
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3426
18444
3bac793de1ba Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@pidgin.im>
parents: 18280
diff changeset
3427 if (iday)
3bac793de1ba Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@pidgin.im>
parents: 18280
diff changeset
3428 idletime = g_strdup_printf(_("Idle %dd %dh %02dm"), iday, ihrs, imin);
3bac793de1ba Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@pidgin.im>
parents: 18280
diff changeset
3429 else if (ihrs)
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3430 idletime = g_strdup_printf(_("Idle %dh %02dm"), ihrs, imin);
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3431 else
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3432 idletime = g_strdup_printf(_("Idle %dm"), imin);
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3433 }
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3434 else
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3435 idletime = g_strdup(_("Idle"));
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3436
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3437 if (!selected)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3438 text = g_strdup_printf("<span color='%s'>%s</span>\n"
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3439 "<span color='%s' size='smaller'>%s%s%s</span>",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3440 dim_grey(), esc, dim_grey(),
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3441 idletime != NULL ? idletime : "",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3442 (idletime != NULL && statustext != NULL) ? " - " : "",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3443 statustext != NULL ? statustext : "");
13034
cfeb9826ba96 [gaim-migrate @ 15392]
Richard Laager <rlaager@pidgin.im>
parents: 13030
diff changeset
3444 }
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3445 else if (!selected && !statustext) /* We handle selected text later */
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3446 text = g_strdup_printf("<span color='%s'>%s</span>", dim_grey(), esc);
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3447 else if (!selected && !text)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3448 text = g_strdup_printf("<span color='%s'>%s</span>\n"
14199
6a78ca00a50f [gaim-migrate @ 16779]
Daniel Atallah <datallah@pidgin.im>
parents: 14195
diff changeset
3449 "<span color='%s' size='smaller'>%s</span>",
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3450 dim_grey(), esc, dim_grey(),
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3451 statustext != NULL ? statustext : "");
17412
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3452 } else if (!PURPLE_BUDDY_IS_ONLINE(b)) {
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3453 if (!selected && !statustext) /* We handle selected text later */
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3454 text = g_strdup_printf("<span color='%s'>%s</span>", dim_grey(), esc);
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3455 else if (!selected && !text)
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3456 text = g_strdup_printf("<span color='%s'>%s</span>\n"
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3457 "<span color='%s' size='smaller'>%s</span>",
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3458 dim_grey(), esc, dim_grey(),
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3459 statustext != NULL ? statustext : "");
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3460
331b8cc4415a Fixes #464
Sean Egan <seanegan@pidgin.im>
parents: 17400
diff changeset
3461 }
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3462 /* Not idle and not selected */
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3463 else if (!selected && !text)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3464 {
13202
f5f21ca5b5a6 [gaim-migrate @ 15564]
Richard Laager <rlaager@pidgin.im>
parents: 13197
diff changeset
3465 text = g_strdup_printf("%s\n"
14136
0259a51abd4a [gaim-migrate @ 16695]
Daniel Atallah <datallah@pidgin.im>
parents: 14097
diff changeset
3466 "<span color='%s' size='smaller'>%s</span>",
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3467 esc, dim_grey(),
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3468 statustext != NULL ? statustext : "");
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3469 }
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3470
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3471 /* It is selected. */
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
3472 if ((selected && !text) || (selected && idletime))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3473 text = g_strdup_printf("%s\n"
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3474 "<span size='smaller'>%s%s%s</span>",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3475 esc,
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3476 idletime != NULL ? idletime : "",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3477 (idletime != NULL && statustext != NULL) ? " - " : "",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3478 statustext != NULL ? statustext : "");
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
3479
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
3480 g_free(idletime);
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
3481 g_free(statustext);
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
3482 g_free(esc);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3483
15559
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3484 if (hidden_conv) {
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3485 char *tmp = text;
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3486 text = g_strdup_printf("<b>%s</b>", tmp);
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3487 g_free(tmp);
58a8f57c6970 Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@pidgin.im>
parents: 15554
diff changeset
3488 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3489
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3490 return text;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3491 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3492
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3493 static void pidgin_blist_restore_position()
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3494 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3495 int blist_x, blist_y, blist_width, blist_height;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3496
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3497 blist_width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width");
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3498
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3499 /* if the window exists, is hidden, we're saving positions, and the
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3500 * position is sane... */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3501 if (gtkblist && gtkblist->window &&
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3502 !GTK_WIDGET_VISIBLE(gtkblist->window) && blist_width != 0) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3503
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3504 blist_x = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/x");
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3505 blist_y = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/y");
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3506 blist_height = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/height");
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3507
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3508 /* ...check position is on screen... */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3509 if (blist_x >= gdk_screen_width())
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3510 blist_x = gdk_screen_width() - 100;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3511 else if (blist_x + blist_width < 0)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3512 blist_x = 100;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3513
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3514 if (blist_y >= gdk_screen_height())
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3515 blist_y = gdk_screen_height() - 100;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3516 else if (blist_y + blist_height < 0)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3517 blist_y = 100;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3518
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3519 /* ...and move it back. */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3520 gtk_window_move(GTK_WINDOW(gtkblist->window), blist_x, blist_y);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3521 gtk_window_resize(GTK_WINDOW(gtkblist->window), blist_width, blist_height);
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3522 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized"))
12279
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
3523 gtk_window_maximize(GTK_WINDOW(gtkblist->window));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3524 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3525 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3526
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3527 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3528 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3529 PurpleBlistNode *gnode, *cnode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3530
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3531 if (gtk_blist_obscured || !GTK_WIDGET_VISIBLE(gtkblist->window))
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3532 return TRUE;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
3533
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3534 for(gnode = list->root; gnode; gnode = gnode->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3535 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3536 continue;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3537 for(cnode = gnode->child; cnode; cnode = cnode->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3538 if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3539 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3540
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3541 buddy = purple_contact_get_priority_buddy((PurpleContact*)cnode);
10012
da9fdfbf4c5a [gaim-migrate @ 10929]
Nathan Walp <nwalp@pidgin.im>
parents: 10006
diff changeset
3542
da9fdfbf4c5a [gaim-migrate @ 10929]
Nathan Walp <nwalp@pidgin.im>
parents: 10006
diff changeset
3543 if (buddy &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3544 purple_presence_is_idle(purple_buddy_get_presence(buddy)))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3545 pidgin_blist_update_contact(list, (PurpleBlistNode*)buddy);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3546 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3547 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3548 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3549
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3550 /* keep on going */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3551 return TRUE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3552 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3553
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3554 static void pidgin_blist_hide_node(PurpleBuddyList *list, PurpleBlistNode *node, gboolean update)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3555 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3556 struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)node->ui_data;
5260
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3557 GtkTreeIter iter;
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3558
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3559 if (!gtknode || !gtknode->row || !gtkblist)
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3560 return;
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3561
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3562 if(gtkblist->selected_node == node)
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3563 gtkblist->selected_node = NULL;
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3564 if (get_iter_from_node(node, &iter)) {
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3565 gtk_tree_store_remove(gtkblist->treemodel, &iter);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3566 if(update && (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3567 PURPLE_BLIST_NODE_IS_BUDDY(node) || PURPLE_BLIST_NODE_IS_CHAT(node))) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3568 pidgin_blist_update(list, node->parent);
5260
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3569 }
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3570 }
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3571 gtk_tree_row_reference_free(gtknode->row);
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3572 gtknode->row = NULL;
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3573 }
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3574
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3575 static const char *require_connection[] =
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3576 {
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3577 N_("/Buddies/New Instant Message..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3578 N_("/Buddies/Join a Chat..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3579 N_("/Buddies/Get User Info..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3580 N_("/Buddies/Add Buddy..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3581 N_("/Buddies/Add Chat..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3582 N_("/Buddies/Add Group..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3583 };
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3584
10357
f5ad7a664200 [gaim-migrate @ 11575]
Mark Doliner <markdoliner@pidgin.im>
parents: 10354
diff changeset
3585 static const int require_connection_size = sizeof(require_connection)
f5ad7a664200 [gaim-migrate @ 11575]
Mark Doliner <markdoliner@pidgin.im>
parents: 10354
diff changeset
3586 / sizeof(*require_connection);
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3587
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3588 /**
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3589 * Rebuild dynamic menus and make menu items sensitive/insensitive
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3590 * where appropriate.
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3591 */
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3592 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3593 update_menu_bar(PidginBuddyList *gtkblist)
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3594 {
8937
b436e9cbd701 [gaim-migrate @ 9707]
Mark Doliner <markdoliner@pidgin.im>
parents: 8911
diff changeset
3595 GtkWidget *widget;
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3596 gboolean sensitive;
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3597 int i;
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3598
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3599 g_return_if_fail(gtkblist != NULL);
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8254
diff changeset
3600
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3601 pidgin_blist_update_accounts_menu();
8937
b436e9cbd701 [gaim-migrate @ 9707]
Mark Doliner <markdoliner@pidgin.im>
parents: 8911
diff changeset
3602
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3603 sensitive = (purple_connections_get_all() != NULL);
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3604
10357
f5ad7a664200 [gaim-migrate @ 11575]
Mark Doliner <markdoliner@pidgin.im>
parents: 10354
diff changeset
3605 for (i = 0; i < require_connection_size; i++)
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3606 {
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3607 widget = gtk_item_factory_get_widget(gtkblist->ift, require_connection[i]);
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3608 gtk_widget_set_sensitive(widget, sensitive);
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3609 }
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3610
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
3611 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Join a Chat..."));
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3612 gtk_widget_set_sensitive(widget, pidgin_blist_joinchat_is_showable());
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
3613
11988
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
3614 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Add Chat..."));
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3615 gtk_widget_set_sensitive(widget, pidgin_blist_joinchat_is_showable());
11988
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
3616
8938
d13ed7491e43 [gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents: 8937
diff changeset
3617 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Privacy"));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3618 gtk_widget_set_sensitive(widget, (purple_connections_get_all() != NULL));
12136
027b7ebee256 [gaim-migrate @ 14436]
Kevin Stange <kstange@pidgin.im>
parents: 12133
diff changeset
3619
027b7ebee256 [gaim-migrate @ 14436]
Kevin Stange <kstange@pidgin.im>
parents: 12133
diff changeset
3620 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Room List"));
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3621 gtk_widget_set_sensitive(widget, pidgin_roomlist_is_showable());
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3622 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3623
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3624 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3625 sign_on_off_cb(PurpleConnection *gc, PurpleBuddyList *blist)
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3626 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3627 PidginBuddyList *gtkblist = PIDGIN_BLIST(blist);
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3628
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3629 update_menu_bar(gtkblist);
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3630 }
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3631
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3632 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3633 plugin_changed_cb(PurplePlugin *p, gpointer *data)
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3634 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3635 pidgin_blist_update_plugin_actions();
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3636 }
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3637
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3638 static void
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3639 unseen_conv_menu()
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3640 {
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3641 static GtkWidget *menu = NULL;
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3642 GList *convs = NULL;
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3643
15110
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3644 if (menu) {
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3645 gtk_widget_destroy(menu);
15110
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3646 menu = NULL;
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3647 }
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3648
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3649 convs = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_IM, PIDGIN_UNSEEN_TEXT, TRUE, 0);
15110
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3650 if (!convs)
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12163
diff changeset
3651 /* no conversations added, don't show the menu */
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3652 return;
15110
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3653
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3654 menu = gtk_menu_new();
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3655
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3656 pidgin_conversations_fill_menu(menu, convs);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3657 g_list_free(convs);
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3658 gtk_widget_show_all(menu);
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3659 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3,
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3660 gtk_get_current_event_time());
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3661 }
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3662
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3663 static gboolean
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3664 menutray_press_cb(GtkWidget *widget, GdkEventButton *event)
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3665 {
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3666 GList *convs;
12208
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
3667
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3668 switch (event->button) {
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3669 case 1:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3670 convs = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_IM,
15566
ce486027d329 GAIM_UNSEEN to PIDGIN_UNSEEN
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
3671 PIDGIN_UNSEEN_TEXT, TRUE, 1);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3672 if (convs) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3673 purple_conversation_present((PurpleConversation*)convs->data);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3674 g_list_free(convs);
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3675 }
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3676 break;
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3677 case 3:
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3678 unseen_conv_menu();
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3679 break;
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3680 }
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3681 return TRUE;
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3682 }
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3683
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
3684 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3685 conversation_updated_cb(PurpleConversation *conv, PurpleConvUpdateType type,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3686 PidginBuddyList *gtkblist)
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3687 {
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3688 GList *convs = NULL;
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3689 GList *l = NULL;
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3690
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3691 if (type != PURPLE_CONV_UPDATE_UNSEEN)
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12163
diff changeset
3692 return;
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12163
diff changeset
3693
12744
45d72d69f399 [gaim-migrate @ 15091]
Casey Harkins <charkins@pidgin.im>
parents: 12713
diff changeset
3694 if(conv->account != NULL && conv->name != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3695 PurpleBuddy *buddy = purple_find_buddy(conv->account, conv->name);
12744
45d72d69f399 [gaim-migrate @ 15091]
Casey Harkins <charkins@pidgin.im>
parents: 12713
diff changeset
3696 if(buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3697 pidgin_blist_update_buddy(NULL, (PurpleBlistNode *)buddy, TRUE);
12744
45d72d69f399 [gaim-migrate @ 15091]
Casey Harkins <charkins@pidgin.im>
parents: 12713
diff changeset
3698 }
45d72d69f399 [gaim-migrate @ 15091]
Casey Harkins <charkins@pidgin.im>
parents: 12713
diff changeset
3699
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12163
diff changeset
3700 if (gtkblist->menutrayicon) {
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3701 gtk_widget_destroy(gtkblist->menutrayicon);
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3702 gtkblist->menutrayicon = NULL;
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3703 }
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3704
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3705 convs = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_IM, PIDGIN_UNSEEN_TEXT, TRUE, 0);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3706 if (convs) {
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3707 GtkWidget *img = NULL;
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3708 GString *tooltip_text = NULL;
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3709
12117
b3781ac3f1da [gaim-migrate @ 14417]
Nathan Walp <nwalp@pidgin.im>
parents: 12116
diff changeset
3710 tooltip_text = g_string_new("");
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3711 l = convs;
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3712 while (l != NULL) {
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3713 if (PIDGIN_IS_PIDGIN_CONVERSATION(l->data)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3714 PidginConversation *gtkconv = PIDGIN_CONVERSATION((PurpleConversation *)l->data);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3715
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3716 g_string_append_printf(tooltip_text,
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3717 ngettext("%d unread message from %s\n", "%d unread messages from %s\n", gtkconv->unseen_count),
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3718 gtkconv->unseen_count,
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3719 gtk_label_get_text(GTK_LABEL(gtkconv->tab_label)));
12117
b3781ac3f1da [gaim-migrate @ 14417]
Nathan Walp <nwalp@pidgin.im>
parents: 12116
diff changeset
3720 }
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3721 l = l->next;
12117
b3781ac3f1da [gaim-migrate @ 14417]
Nathan Walp <nwalp@pidgin.im>
parents: 12116
diff changeset
3722 }
12239
e4f62729e2c7 [gaim-migrate @ 14541]
Nathan Walp <nwalp@pidgin.im>
parents: 12232
diff changeset
3723 if(tooltip_text->len > 0) {
12302
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3724 /* get rid of the last newline */
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
3725 g_string_truncate(tooltip_text, tooltip_text->len -1);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3726 img = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_PENDING,
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
3727 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL));
12302
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3728
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3729 gtkblist->menutrayicon = gtk_event_box_new();
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3730 gtk_container_add(GTK_CONTAINER(gtkblist->menutrayicon), img);
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3731 gtk_widget_show(img);
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3732 gtk_widget_show(gtkblist->menutrayicon);
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3733 g_signal_connect(G_OBJECT(gtkblist->menutrayicon), "button-press-event", G_CALLBACK(menutray_press_cb), NULL);
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3734
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3735 pidgin_menu_tray_append(PIDGIN_MENU_TRAY(gtkblist->menutray), gtkblist->menutrayicon, tooltip_text->str);
12239
e4f62729e2c7 [gaim-migrate @ 14541]
Nathan Walp <nwalp@pidgin.im>
parents: 12232
diff changeset
3736 }
12302
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3737 g_string_free(tooltip_text, TRUE);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3738 g_list_free(convs);
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3739 }
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3740 }
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3741
12208
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
3742 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3743 conversation_deleting_cb(PurpleConversation *conv, PidginBuddyList *gtkblist)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3744 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3745 conversation_updated_cb(conv, PURPLE_CONV_UPDATE_UNSEEN, gtkblist);
12208
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
3746 }
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
3747
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3748 /**********************************************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3749 * Public API Functions *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3750 **********************************************************************************/
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
3751
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3752 static void pidgin_blist_new_list(PurpleBuddyList *blist)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3753 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3754 PidginBuddyList *gtkblist;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3755
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3756 gtkblist = g_new0(PidginBuddyList, 1);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3757 gtkblist->connection_errors = g_hash_table_new_full(g_direct_hash,
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3758 g_direct_equal, NULL, g_free);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3759 blist->ui_data = gtkblist;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3760 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3761
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3762 static void pidgin_blist_new_node(PurpleBlistNode *node)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3763 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3764 node->ui_data = g_new0(struct _pidgin_blist_node, 1);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3765 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3766
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3767 gboolean pidgin_blist_node_is_contact_expanded(PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3768 {
17710
9a0fbabde044 Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17658
diff changeset
3769 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3770 node = node->parent;
17710
9a0fbabde044 Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17658
diff changeset
3771 if (node == NULL)
9a0fbabde044 Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17658
diff changeset
3772 return FALSE;
9a0fbabde044 Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17658
diff changeset
3773 }
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3774
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3775 g_return_val_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node), FALSE);
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3776
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3777 return ((struct _pidgin_blist_node *)node->ui_data)->contact_expanded;
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3778 }
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3779
10433
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3780 enum {
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3781 DRAG_BUDDY,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3782 DRAG_ROW,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3783 DRAG_VCARD,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3784 DRAG_TEXT,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3785 DRAG_URI,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3786 NUM_TARGETS
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3787 };
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3788
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
3789 static const char *
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3790 item_factory_translate_func (const char *path, gpointer func_data)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3791 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3792 return _((char *)path);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3793 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3794
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3795 void pidgin_blist_setup_sort_methods()
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3796 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3797 pidgin_blist_sort_method_reg("none", _("Manually"), sort_method_none);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3798 #if GTK_CHECK_VERSION(2,2,1)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3799 pidgin_blist_sort_method_reg("alphabetical", _("Alphabetically"), sort_method_alphabetical);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3800 pidgin_blist_sort_method_reg("status", _("By status"), sort_method_status);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3801 pidgin_blist_sort_method_reg("log_size", _("By log size"), sort_method_log);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3802 #endif
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3803 pidgin_blist_sort_method_set(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/sort_type"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3804 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3805
10433
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3806 static void _prefs_change_redo_list()
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3807 {
13511
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3808 GtkTreeSelection *sel;
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3809 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3810 PurpleBlistNode *node = NULL;
13511
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3811
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3812 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview));
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3813 if (gtk_tree_selection_get_selected(sel, NULL, &iter))
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3814 {
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3815 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3816 }
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3817
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3818 redo_buddy_list(purple_get_blist(), FALSE, FALSE);
13162
43420c10065b [gaim-migrate @ 15524]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13147
diff changeset
3819 #if GTK_CHECK_VERSION(2,6,0)
43420c10065b [gaim-migrate @ 15524]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13147
diff changeset
3820 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(gtkblist->treeview));
43420c10065b [gaim-migrate @ 15524]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13147
diff changeset
3821 #endif
13511
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3822
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3823 if (node)
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3824 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3825 struct _pidgin_blist_node *gtknode;
13511
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3826 GtkTreePath *path;
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3827
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3828 gtknode = node->ui_data;
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3829 if (gtknode && gtknode->row)
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3830 {
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3831 path = gtk_tree_row_reference_get_path(gtknode->row);
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3832 gtk_tree_selection_select_path(sel, path);
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3833 gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(gtkblist->treeview), path, NULL, FALSE, 0, 0);
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3834 gtk_tree_path_free(path);
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3835 }
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3836 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3837 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3838
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3839 static void _prefs_change_sort_method(const char *pref_name, PurplePrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12799
diff changeset
3840 gconstpointer val, gpointer data)
10433
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3841 {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3842 if(!strcmp(pref_name, PIDGIN_PREFS_ROOT "/blist/sort_type"))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3843 pidgin_blist_sort_method_set(val);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3844 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3845
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3846 static void account_modified(PurpleAccount *account, PidginBuddyList *gtkblist)
12522
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3847 {
15088
d5bb04caf6e1 [gaim-migrate @ 17809]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15086
diff changeset
3848 GList *list;
12522
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3849 if (!gtkblist)
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3850 return;
12589
e25ec53fe8b0 [gaim-migrate @ 14918]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
3851
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3852 if ((list = purple_accounts_get_all_active()) != NULL) {
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
3853 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 1);
15088
d5bb04caf6e1 [gaim-migrate @ 17809]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15086
diff changeset
3854 g_list_free(list);
d5bb04caf6e1 [gaim-migrate @ 17809]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15086
diff changeset
3855 } else
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
3856 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
3857
12522
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3858 update_menu_bar(gtkblist);
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3859 }
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3860
12766
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3861 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3862 account_status_changed(PurpleAccount *account, PurpleStatus *old,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3863 PurpleStatus *new, PidginBuddyList *gtkblist)
12766
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3864 {
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3865 if (!gtkblist)
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3866 return;
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3867
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3868 update_menu_bar(gtkblist);
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3869 }
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3870
12124
97ff43883157 [gaim-migrate @ 14424]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12119
diff changeset
3871 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3872 gtk_blist_window_key_press_cb(GtkWidget *w, GdkEventKey *event, PidginBuddyList *gtkblist)
12461
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3873 {
17844
77ca8872df94 Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17360
diff changeset
3874 GtkWidget *widget;
12461
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3875
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3876 if (!gtkblist)
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3877 return FALSE;
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3878
17844
77ca8872df94 Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17360
diff changeset
3879 widget = gtk_window_get_focus(GTK_WINDOW(gtkblist->window));
77ca8872df94 Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17360
diff changeset
3880
77ca8872df94 Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17360
diff changeset
3881 if (GTK_IS_IMHTML(widget) || GTK_IS_ENTRY(widget)) {
77ca8872df94 Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17360
diff changeset
3882 if (gtk_bindings_activate(GTK_OBJECT(widget), event->keyval, event->state))
77ca8872df94 Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17360
diff changeset
3883 return TRUE;
77ca8872df94 Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17360
diff changeset
3884 }
12461
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3885 return FALSE;
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3886 }
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3887
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3888 static gboolean
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3889 headline_hover_close(int x, int y)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3890 {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3891 GtkWidget *w = gtkblist->headline_hbox;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3892 if (x <= w->allocation.width && x >= w->allocation.width - HEADLINE_CLOSE_SIZE &&
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3893 y >= 0 && y <= HEADLINE_CLOSE_SIZE)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3894 return TRUE;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3895 return FALSE;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3896 }
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3897
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3898 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3899 headline_box_enter_cb(GtkWidget *widget, GdkEventCrossing *event, PidginBuddyList *gtkblist)
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3900 {
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3901 gdk_window_set_cursor(widget->window, gtkblist->hand_cursor);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3902
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3903 if (gtkblist->headline_close) {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3904 #if GTK_CHECK_VERSION(2,2,0)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3905 gdk_draw_pixbuf(widget->window, NULL, gtkblist->headline_close,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3906 #else
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3907 gdk_pixbuf_render_to_drawable(gtkblist->headline_close,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3908 GDK_DRAWABLE(widget->window), NULL,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3909 #endif
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3910 0, 0,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3911 widget->allocation.width - 2 - HEADLINE_CLOSE_SIZE, 2,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3912 HEADLINE_CLOSE_SIZE, HEADLINE_CLOSE_SIZE,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3913 GDK_RGB_DITHER_NONE, 0, 0);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3914 gtk_paint_focus(widget->style, widget->window, GTK_STATE_PRELIGHT,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3915 NULL, widget, NULL,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3916 widget->allocation.width - HEADLINE_CLOSE_SIZE - 3, 1,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3917 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3918 }
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3919
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3920 return FALSE;
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3921 }
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3922
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3923 #if 0
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3924 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3925 headline_box_motion_cb(GtkWidget *widget, GdkEventMotion *event, PidginBuddyList *gtkblist)
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3926 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3927 purple_debug_fatal("motion", "%d %d\n", (int)event->x, (int)event->y);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3928 if (headline_hover_close((int)event->x, (int)event->y))
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3929 gtk_paint_focus(widget->style, widget->window, GTK_STATE_PRELIGHT,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3930 NULL, widget, NULL,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3931 widget->allocation.width - HEADLINE_CLOSE_SIZE - 3, 1,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3932 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3933 return FALSE;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3934 }
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3935 #endif
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3936
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3937 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3938 headline_box_leave_cb(GtkWidget *widget, GdkEventCrossing *event, PidginBuddyList *gtkblist)
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3939 {
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3940 gdk_window_set_cursor(widget->window, gtkblist->arrow_cursor);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3941 if (gtkblist->headline_close) {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3942 GdkRectangle rect = {widget->allocation.width - 3 - HEADLINE_CLOSE_SIZE, 1,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3943 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2};
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3944 gdk_window_invalidate_rect(widget->window, &rect, TRUE);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3945 }
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3946 return FALSE;
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3947 }
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3948
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3949 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3950 reset_headline(PidginBuddyList *gtkblist)
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3951 {
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3952 gtkblist->headline_callback = NULL;
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3953 gtkblist->headline_data = NULL;
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3954 gtkblist->headline_destroy = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3955 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), FALSE);
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3956 }
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3957
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3958 static gboolean
15259
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3959 headline_click_callback(gpointer data)
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3960 {
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3961 ((GSourceFunc)gtkblist->headline_callback)(gtkblist->headline_data);
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3962 reset_headline(gtkblist);
15259
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3963 return FALSE;
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3964 }
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3965
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3966 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3967 headline_box_press_cb(GtkWidget *widget, GdkEventButton *event, PidginBuddyList *gtkblist)
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3968 {
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3969 gtk_widget_hide(gtkblist->headline_hbox);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3970 if (gtkblist->headline_callback && !headline_hover_close((int)event->x, (int)event->y))
15259
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3971 g_idle_add((GSourceFunc)headline_click_callback, gtkblist->headline_data);
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3972 else {
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3973 if (gtkblist->headline_destroy)
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3974 gtkblist->headline_destroy(gtkblist->headline_data);
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3975 reset_headline(gtkblist);
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3976 }
15259
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3977 return TRUE;
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3978 }
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3979
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3980 /***********************************/
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3981 /* Connection error handling stuff */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3982 /***********************************/
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3983
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3984 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3985 ce_modify_account_cb(PurpleAccount *account)
13316
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3986 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3987 pidgin_account_dialog_show(PIDGIN_MODIFY_ACCOUNT_DIALOG, account);
13316
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3988 }
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3989
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3990 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3991 ce_enable_account_cb(PurpleAccount *account)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3992 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3993 purple_account_set_enabled(account, purple_core_get_ui(), TRUE);
13316
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3994 }
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3995
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3996 static void
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3997 connection_error_button_clicked_cb(GtkButton *widget, gpointer user_data)
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3998 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3999 PurpleAccount *account;
13023
6c85f34839bf [gaim-migrate @ 15376]
Mark Doliner <markdoliner@pidgin.im>
parents: 13022
diff changeset
4000 char *primary;
6c85f34839bf [gaim-migrate @ 15376]
Mark Doliner <markdoliner@pidgin.im>
parents: 13022
diff changeset
4001 const char *text;
13732
924f1827ea50 [gaim-migrate @ 16141]
Mark Doliner <markdoliner@pidgin.im>
parents: 13691
diff changeset
4002 gboolean enabled;
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4003
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4004 account = user_data;
13023
6c85f34839bf [gaim-migrate @ 15376]
Mark Doliner <markdoliner@pidgin.im>
parents: 13022
diff changeset
4005 primary = g_strdup_printf(_("%s disconnected"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4006 purple_account_get_username(account));
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4007 text = g_hash_table_lookup(gtkblist->connection_errors, account);
13376
4b4c3c4d068e [gaim-migrate @ 15748]
Mark Doliner <markdoliner@pidgin.im>
parents: 13337
diff changeset
4008
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4009 enabled = purple_account_get_enabled(account, purple_core_get_ui());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4010 purple_request_action(account, _("Connection Error"), primary, text, 2,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16357
diff changeset
4011 account, NULL, NULL,
13732
924f1827ea50 [gaim-migrate @ 16141]
Mark Doliner <markdoliner@pidgin.im>
parents: 13691
diff changeset
4012 account, 3,
924f1827ea50 [gaim-migrate @ 16141]
Mark Doliner <markdoliner@pidgin.im>
parents: 13691
diff changeset
4013 _("OK"), NULL,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4014 _("Modify Account"), PURPLE_CALLBACK(ce_modify_account_cb),
13732
924f1827ea50 [gaim-migrate @ 16141]
Mark Doliner <markdoliner@pidgin.im>
parents: 13691
diff changeset
4015 enabled ? _("Connect") : _("Re-enable Account"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4016 enabled ? PURPLE_CALLBACK(purple_account_connect) :
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4017 PURPLE_CALLBACK(ce_enable_account_cb));
13630
b41b3225c2ce [gaim-migrate @ 16016]
Daniel Atallah <datallah@pidgin.im>
parents: 13613
diff changeset
4018 g_free(primary);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4019 gtk_widget_destroy(GTK_WIDGET(widget));
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4020 g_hash_table_remove(gtkblist->connection_errors, account);
17141
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4021 if (gtk_container_get_children(GTK_CONTAINER(gtkblist->error_buttons)) == NULL) {
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4022 gtk_widget_hide(gtkblist->error_buttons);
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4023 }
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4024 }
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4025
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4026 /* Add some buttons that show connection errors */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4027 static void
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4028 create_connection_error_buttons(gpointer key, gpointer value,
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4029 gpointer user_data)
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4030 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4031 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4032 PurpleStatusType *status_type;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
4033 gchar *escaped, *text;
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4034 GtkWidget *button, *label, *image, *hbox;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
4035 GdkPixbuf *pixbuf;
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4036
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4037 account = key;
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4038 escaped = g_markup_escape_text((const gchar *)value, -1);
13023
6c85f34839bf [gaim-migrate @ 15376]
Mark Doliner <markdoliner@pidgin.im>
parents: 13022
diff changeset
4039 text = g_strdup_printf(_("<span color=\"red\">%s disconnected: %s</span>"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4040 purple_account_get_username(account),
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4041 escaped);
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4042 g_free(escaped);
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4043
17141
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4044 hbox = gtk_hbox_new(FALSE, 6);
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4045
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4046 /* Create the icon */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4047 if ((status_type = purple_account_get_status_type_with_primitive(account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4048 PURPLE_STATUS_OFFLINE))) {
15799
ba7af742a0d1 Change some old, busted status icon stuff to use the new hotness
Sean Egan <seanegan@pidgin.im>
parents: 15769
diff changeset
4049 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
14137
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
4050 if (pixbuf != NULL) {
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
4051 image = gtk_image_new_from_pixbuf(pixbuf);
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
4052 g_object_unref(pixbuf);
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
4053
17141
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4054 gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0);
14137
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
4055 }
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4056 }
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4057
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4058 /* Create the text */
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4059 label = gtk_label_new("");
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4060 gtk_label_set_markup(GTK_LABEL(label), text);
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4061 g_free(text);
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4062 #if GTK_CHECK_VERSION(2,6,0)
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4063 g_object_set(label, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4064 #endif
17141
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4065 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4066
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4067 /* Create the actual button and put the icon and text on it */
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4068 button = gtk_button_new();
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4069 gtk_container_add(GTK_CONTAINER(button), hbox);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4070 g_signal_connect(G_OBJECT(button), "clicked",
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4071 G_CALLBACK(connection_error_button_clicked_cb),
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4072 account);
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4073 gtk_widget_show_all(button);
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4074 gtk_box_pack_end(GTK_BOX(gtkblist->error_buttons), button,
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4075 FALSE, FALSE, 0);
17141
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4076 gtk_widget_show_all(gtkblist->error_buttons);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4077 }
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4078
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4079 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4080 pidgin_blist_update_account_error_state(PurpleAccount *account, const char *text)
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4081 {
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4082 GList *l;
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4083
13016
29dd619e4d41 [gaim-migrate @ 15369]
Mark Doliner <markdoliner@pidgin.im>
parents: 13015
diff changeset
4084 if (text == NULL)
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4085 g_hash_table_remove(gtkblist->connection_errors, account);
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4086 else
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4087 g_hash_table_insert(gtkblist->connection_errors, account, g_strdup(text));
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4088
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4089 /* Remove the old error buttons */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4090 for (l = gtk_container_get_children(GTK_CONTAINER(gtkblist->error_buttons));
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4091 l != NULL;
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4092 l = l->next)
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4093 {
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4094 gtk_widget_destroy(GTK_WIDGET(l->data));
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4095 }
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4096
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4097 /* Add new error buttons */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4098 g_hash_table_foreach(gtkblist->connection_errors,
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4099 create_connection_error_buttons, NULL);
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4100 }
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4101
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4102 static gboolean
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4103 paint_headline_hbox (GtkWidget *widget,
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4104 GdkEventExpose *event,
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4105 gpointer user_data)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4106 {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4107 gtk_paint_flat_box (widget->style,
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4108 widget->window,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4109 GTK_STATE_NORMAL,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4110 GTK_SHADOW_OUT,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4111 NULL,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4112 widget,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4113 "tooltip",
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4114 widget->allocation.x + 1,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4115 widget->allocation.y + 1,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4116 widget->allocation.width - 2,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4117 widget->allocation.height - 2);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4118 return FALSE;
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4119 }
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4120
15621
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4121 /* This assumes there are not things like groupless buddies or multi-leveled groups.
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4122 * I'm sure other things in this code assumes that also.
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4123 */
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4124 static void
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4125 treeview_style_set (GtkWidget *widget,
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4126 GtkStyle *prev_style,
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4127 gpointer data)
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4128 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4129 PurpleBuddyList *list = data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4130 PurpleBlistNode *node = list->root;
15621
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4131 while (node) {
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4132 pidgin_blist_update_group(list, node);
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4133 node = node->next;
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4134 }
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4135 }
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4136
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4137 static void
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4138 headline_style_set (GtkWidget *widget,
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4139 GtkStyle *prev_style)
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4140 {
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4141 GtkTooltips *tooltips;
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4142 GtkStyle *style;
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4143
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4144 if (gtkblist->changing_style)
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4145 return;
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4146
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4147 tooltips = gtk_tooltips_new ();
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4148 #if GLIB_CHECK_VERSION(2,10,0)
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4149 g_object_ref_sink (tooltips);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4150 #else
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4151 g_object_ref(tooltips);
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4152 gtk_object_sink(GTK_OBJECT(tooltips));
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4153 #endif
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4154
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4155 gtk_tooltips_force_window (tooltips);
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4156 gtk_widget_ensure_style (tooltips->tip_window);
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4157 style = gtk_widget_get_style (tooltips->tip_window);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4158
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4159 gtkblist->changing_style = TRUE;
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4160 gtk_widget_set_style (gtkblist->headline_hbox, style);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4161 gtkblist->changing_style = FALSE;
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4162
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4163 g_object_unref (tooltips);
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4164 }
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4165
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4166 /******************************************/
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4167 /* End of connection error handling stuff */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4168 /******************************************/
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4169
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4170 static int
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4171 blist_focus_cb(GtkWidget *widget, gpointer data, PidginBuddyList *gtkblist)
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4172 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4173 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), FALSE);
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4174 return 0;
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4175 }
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4176
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4177 #if 0
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4178 static GtkWidget *
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4179 kiosk_page()
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4180 {
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
4181 GtkWidget *ret = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4182 GtkWidget *label;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4183 GtkWidget *entry;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4184 GtkWidget *bbox;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4185 GtkWidget *button;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4186
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4187 label = gtk_label_new(NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4188 gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4189
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4190 label = gtk_label_new(NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4191 gtk_label_set_markup(GTK_LABEL(label), _("<b>Username:</b>"));
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4192 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4193 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4194 entry = gtk_entry_new();
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4195 gtk_box_pack_start(GTK_BOX(ret), entry, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4196
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4197 label = gtk_label_new(NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4198 gtk_label_set_markup(GTK_LABEL(label), _("<b>Password:</b>"));
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4199 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4200 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4201 entry = gtk_entry_new();
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4202 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4203 gtk_box_pack_start(GTK_BOX(ret), entry, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4204
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4205 label = gtk_label_new(" ");
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4206 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4207
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4208 bbox = gtk_hbutton_box_new();
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4209 button = gtk_button_new_with_mnemonic(_("_Login"));
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4210 gtk_box_pack_start(GTK_BOX(ret), bbox, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4211 gtk_container_add(GTK_CONTAINER(bbox), button);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4212
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4213
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4214 label = gtk_label_new(NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4215 gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4216
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
4217 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4218
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4219 gtk_widget_show_all(ret);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4220 return ret;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4221 }
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4222 #endif
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4223
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4224 static void pidgin_blist_show(PurpleBuddyList *list)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4225 {
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
4226 void *handle;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4227 GtkCellRenderer *rend;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4228 GtkTreeViewColumn *column;
10178
16a2e27759fe [gaim-migrate @ 11293]
Christian Hammond <chipx86@chipx86.com>
parents: 10144
diff changeset
4229 GtkWidget *menu;
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4230 GtkWidget *ebox;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4231 GtkWidget *sw;
14608
6eea6c122238 [gaim-migrate @ 17269]
Sean Egan <seanegan@pidgin.im>
parents: 14603
diff changeset
4232 GtkWidget *sep;
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4233 GtkWidget *label;
15091
5eb0bf57d5a2 [gaim-migrate @ 17812]
Sean Egan <seanegan@pidgin.im>
parents: 15089
diff changeset
4234 GList *accounts;
16071
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16068
diff changeset
4235 char *pretty, *tmp;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4236 GtkAccelGroup *accel_group;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4237 GtkTreeSelection *selection;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4238 GtkTargetEntry dte[] = {{"PURPLE_BLIST_NODE", GTK_TARGET_SAME_APP, DRAG_ROW},
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
4239 {"application/x-im-contact", 0, DRAG_BUDDY},
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
4240 {"text/x-vcard", 0, DRAG_VCARD },
9525
28a430d517db [gaim-migrate @ 10352]
Sean Egan <seanegan@pidgin.im>
parents: 9498
diff changeset
4241 {"text/uri-list", 0, DRAG_URI},
28a430d517db [gaim-migrate @ 10352]
Sean Egan <seanegan@pidgin.im>
parents: 9498
diff changeset
4242 {"text/plain", 0, DRAG_TEXT}};
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4243 GtkTargetEntry ste[] = {{"PURPLE_BLIST_NODE", GTK_TARGET_SAME_APP, DRAG_ROW},
9556
26e2e1141081 [gaim-migrate @ 10392]
Sean Egan <seanegan@pidgin.im>
parents: 9533
diff changeset
4244 {"application/x-im-contact", 0, DRAG_BUDDY},
26e2e1141081 [gaim-migrate @ 10392]
Sean Egan <seanegan@pidgin.im>
parents: 9533
diff changeset
4245 {"text/x-vcard", 0, DRAG_VCARD }};
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4246 if (gtkblist && gtkblist->window) {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4247 purple_blist_set_visible(purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_visible"));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4248 return;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4249 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4250
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4251 gtkblist = PIDGIN_BLIST(list);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4252
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
4253 gtkblist->empty_avatar = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 32, 32);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
4254 gdk_pixbuf_fill(gtkblist->empty_avatar, 0x00000000);
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4255
17213
25a0ae0d0ff7 Added to gtkutils.c:
Gabriel Schulhof <nix@go-nix.ca>
parents: 17180
diff changeset
4256 gtkblist->window = pidgin_create_window(_("Buddy List"), 0, "buddy_list", TRUE);
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4257 g_signal_connect(G_OBJECT(gtkblist->window), "focus-in-event",
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4258 G_CALLBACK(blist_focus_cb), gtkblist);
12328
4a2611214a15 [gaim-migrate @ 14632]
Nathan Walp <nwalp@pidgin.im>
parents: 12326
diff changeset
4259 GTK_WINDOW(gtkblist->window)->allow_shrink = TRUE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4260
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4261 gtkblist->main_vbox = gtk_vbox_new(FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4262 gtk_widget_show(gtkblist->main_vbox);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4263 gtk_container_add(GTK_CONTAINER(gtkblist->window), gtkblist->main_vbox);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4264
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
4265 g_signal_connect(G_OBJECT(gtkblist->window), "delete_event", G_CALLBACK(gtk_blist_delete_cb), NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4266 g_signal_connect(G_OBJECT(gtkblist->window), "configure_event", G_CALLBACK(gtk_blist_configure_cb), NULL);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
4267 g_signal_connect(G_OBJECT(gtkblist->window), "visibility_notify_event", G_CALLBACK(gtk_blist_visibility_cb), NULL);
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
4268 g_signal_connect(G_OBJECT(gtkblist->window), "window_state_event", G_CALLBACK(gtk_blist_window_state_cb), NULL);
12461
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
4269 g_signal_connect(G_OBJECT(gtkblist->window), "key_press_event", G_CALLBACK(gtk_blist_window_key_press_cb), gtkblist);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4270 gtk_widget_add_events(gtkblist->window, GDK_VISIBILITY_NOTIFY_MASK);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4271
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4272 /******************************* Menu bar *************************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4273 accel_group = gtk_accel_group_new();
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4274 gtk_window_add_accel_group(GTK_WINDOW (gtkblist->window), accel_group);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4275 g_object_unref(accel_group);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4276 gtkblist->ift = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<PurpleMain>", accel_group);
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4277 gtk_item_factory_set_translate_func(gtkblist->ift,
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
4278 (GtkTranslateFunc)item_factory_translate_func,
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4279 NULL, NULL);
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
4280 gtk_item_factory_create_items(gtkblist->ift, sizeof(blist_menu) / sizeof(*blist_menu),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4281 blist_menu, NULL);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4282 pidgin_load_accels();
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4283 g_signal_connect(G_OBJECT(accel_group), "accel-changed",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4284 G_CALLBACK(pidgin_save_accels_cb), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4285 menu = gtk_item_factory_get_widget(gtkblist->ift, "<PurpleMain>");
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4286 gtkblist->menutray = pidgin_menu_tray_new();
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
4287 gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtkblist->menutray);
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
4288 gtk_widget_show(gtkblist->menutray);
10178
16a2e27759fe [gaim-migrate @ 11293]
Christian Hammond <chipx86@chipx86.com>
parents: 10144
diff changeset
4289 gtk_widget_show(menu);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4290 gtk_box_pack_start(GTK_BOX(gtkblist->main_vbox), menu, FALSE, FALSE, 0);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4291
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
4292 accountmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts"));
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
4293
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4294
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4295 /****************************** Notebook *************************************/
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4296 gtkblist->notebook = gtk_notebook_new();
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4297 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gtkblist->notebook), FALSE);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4298 gtk_notebook_set_show_border(GTK_NOTEBOOK(gtkblist->notebook), FALSE);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4299 gtk_box_pack_start(GTK_BOX(gtkblist->main_vbox), gtkblist->notebook, TRUE, TRUE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4300
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4301 #if 0
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4302 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), kiosk_page(), NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4303 #endif
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4304
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4305 /* Translators: Please maintain the use of -> and <- to refer to menu heirarchy */
16071
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16068
diff changeset
4306 tmp = g_strdup_printf(_("<span weight='bold' size='larger'>Welcome to %s!</span>\n\n"
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4307
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4308 "You have no accounts enabled. Enable your IM accounts from the "
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4309 "<b>Accounts</b> window at <b>Accounts->Add/Edit</b>. Once you "
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4310 "enable accounts, you'll be able to sign on, set your status, "
16071
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16068
diff changeset
4311 "and talk to your friends."), PIDGIN_NAME);
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16068
diff changeset
4312 pretty = pidgin_make_pretty_arrows(tmp);
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16068
diff changeset
4313 g_free(tmp);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4314 label = gtk_label_new(NULL);
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4315 gtk_widget_set_size_request(label, purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width") - 12, -1);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4316 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4317 gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.2);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4318 gtk_label_set_markup(GTK_LABEL(label), pretty);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4319 g_free(pretty);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4320 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook),label, NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4321 gtkblist->vbox = gtk_vbox_new(FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4322 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), gtkblist->vbox, NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4323 gtk_widget_show_all(gtkblist->notebook);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4324 if ((accounts = purple_accounts_get_all_active())) {
15091
5eb0bf57d5a2 [gaim-migrate @ 17812]
Sean Egan <seanegan@pidgin.im>
parents: 15089
diff changeset
4325 g_list_free(accounts);
15089
0522a7934420 [gaim-migrate @ 17810]
Sean Egan <seanegan@pidgin.im>
parents: 15088
diff changeset
4326 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 1);
15091
5eb0bf57d5a2 [gaim-migrate @ 17812]
Sean Egan <seanegan@pidgin.im>
parents: 15089
diff changeset
4327 }
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4328
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4329 ebox = gtk_event_box_new();
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4330 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), ebox, FALSE, FALSE, 0);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4331 gtkblist->headline_hbox = gtk_hbox_new(FALSE, 3);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4332 gtk_container_set_border_width(GTK_CONTAINER(gtkblist->headline_hbox), 6);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4333 gtk_container_add(GTK_CONTAINER(ebox), gtkblist->headline_hbox);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4334 gtkblist->headline_image = gtk_image_new_from_pixbuf(NULL);
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4335 gtk_misc_set_alignment(GTK_MISC(gtkblist->headline_image), 0.0, 0);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4336 gtkblist->headline_label = gtk_label_new(NULL);
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4337 gtk_widget_set_size_request(gtkblist->headline_label,
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4338 purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width")-25,-1);
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4339 gtk_label_set_line_wrap(GTK_LABEL(gtkblist->headline_label), TRUE);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4340 gtk_box_pack_start(GTK_BOX(gtkblist->headline_hbox), gtkblist->headline_image, FALSE, FALSE, 0);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4341 gtk_box_pack_start(GTK_BOX(gtkblist->headline_hbox), gtkblist->headline_label, TRUE, TRUE, 0);
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4342 g_signal_connect(gtkblist->headline_hbox,
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4343 "style-set",
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4344 G_CALLBACK(headline_style_set),
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4345 NULL);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4346 g_signal_connect (gtkblist->headline_hbox,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4347 "expose_event",
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4348 G_CALLBACK (paint_headline_hbox),
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4349 NULL);
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4350 gtk_widget_set_name(gtkblist->headline_hbox, "gtk-tooltips");
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4351
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4352 gtkblist->headline_close = gtk_widget_render_icon(ebox, GTK_STOCK_CLOSE, -1, NULL);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4353 if (gtkblist->headline_close) {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4354 GdkPixbuf *scale = gdk_pixbuf_scale_simple(gtkblist->headline_close,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4355 HEADLINE_CLOSE_SIZE, HEADLINE_CLOSE_SIZE, GDK_INTERP_BILINEAR);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4356 gdk_pixbuf_unref(gtkblist->headline_close);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4357 gtkblist->headline_close = scale;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4358 }
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4359
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4360 gtkblist->hand_cursor = gdk_cursor_new (GDK_HAND2);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4361 gtkblist->arrow_cursor = gdk_cursor_new (GDK_LEFT_PTR);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4362
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4363 g_signal_connect(G_OBJECT(ebox), "enter-notify-event", G_CALLBACK(headline_box_enter_cb), gtkblist);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4364 g_signal_connect(G_OBJECT(ebox), "leave-notify-event", G_CALLBACK(headline_box_leave_cb), gtkblist);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4365 g_signal_connect(G_OBJECT(ebox), "button-press-event", G_CALLBACK(headline_box_press_cb), gtkblist);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4366 #if 0
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4367 /* I couldn't get this to work. The idea was to draw the focus-border only
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4368 * when hovering over the close image. So for now, the focus-border is
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4369 * always there. -- sad */
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4370 gtk_widget_set_events(ebox, gtk_widget_get_events(ebox) | GDK_POINTER_MOTION_HINT_MASK);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4371 g_signal_connect(G_OBJECT(ebox), "motion-notify-event", G_CALLBACK(headline_box_motion_cb), gtkblist);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4372 #endif
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4373
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4374 /****************************** GtkTreeView **********************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4375 sw = gtk_scrolled_window_new(NULL,NULL);
10178
16a2e27759fe [gaim-migrate @ 11293]
Christian Hammond <chipx86@chipx86.com>
parents: 10144
diff changeset
4376 gtk_widget_show(sw);
14476
4a36547d336c [gaim-migrate @ 17122]
Sean Egan <seanegan@pidgin.im>
parents: 14471
diff changeset
4377 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4378 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4379
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4380 gtkblist->treemodel = gtk_tree_store_new(BLIST_COLUMNS,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4381 GDK_TYPE_PIXBUF, /* Status icon */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4382 G_TYPE_BOOLEAN, /* Status icon visible */
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4383 G_TYPE_STRING, /* Name */
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4384 G_TYPE_STRING, /* Idle */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4385 G_TYPE_BOOLEAN, /* Idle visible */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4386 GDK_TYPE_PIXBUF, /* Buddy icon */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4387 G_TYPE_BOOLEAN, /* Buddy icon visible */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4388 G_TYPE_POINTER, /* Node */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4389 GDK_TYPE_COLOR, /* bgcolor */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4390 G_TYPE_BOOLEAN, /* Group expander */
16182
88b7040408c8 Set the disable maximize button hint on the blist. I couldn't find a window manager that supports this, but I bet win32 does.
Sean Egan <seanegan@pidgin.im>
parents: 16162
diff changeset
4391 G_TYPE_BOOLEAN, /* Group expander visible */
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4392 G_TYPE_BOOLEAN, /* Contact expander */
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4393 G_TYPE_BOOLEAN, /* Contact expander visible */
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4394 GDK_TYPE_PIXBUF, /* Emblem */
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4395 G_TYPE_BOOLEAN); /* Emblem visible */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4396
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4397 gtkblist->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(gtkblist->treemodel));
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
4398
10178
16a2e27759fe [gaim-migrate @ 11293]
Christian Hammond <chipx86@chipx86.com>
parents: 10144
diff changeset
4399 gtk_widget_show(gtkblist->treeview);
16259
73b7c796c8d3 I don't like the pidginfoo_bar widget names that resulted from the sed.
Richard Laager <rlaager@pidgin.im>
parents: 16254
diff changeset
4400 gtk_widget_set_name(gtkblist->treeview, "pidgin_blist_treeview");
15621
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4401
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4402 g_signal_connect(gtkblist->treeview,
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4403 "style-set",
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4404 G_CALLBACK(treeview_style_set), list);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4405 /* Set up selection stuff */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4406 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview));
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4407 g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(pidgin_blist_selection_changed), NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4408
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4409 /* Set up dnd */
7650
bd193cc04594 [gaim-migrate @ 8293]
Mark Doliner <markdoliner@pidgin.im>
parents: 7642
diff changeset
4410 gtk_tree_view_enable_model_drag_source(GTK_TREE_VIEW(gtkblist->treeview),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4411 GDK_BUTTON1_MASK, ste, 3,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4412 GDK_ACTION_COPY);
7650
bd193cc04594 [gaim-migrate @ 8293]
Mark Doliner <markdoliner@pidgin.im>
parents: 7642
diff changeset
4413 gtk_tree_view_enable_model_drag_dest(GTK_TREE_VIEW(gtkblist->treeview),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4414 dte, 5,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4415 GDK_ACTION_COPY | GDK_ACTION_MOVE);
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
4416
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4417 g_signal_connect(G_OBJECT(gtkblist->treeview), "drag-data-received", G_CALLBACK(pidgin_blist_drag_data_rcv_cb), NULL);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4418 g_signal_connect(G_OBJECT(gtkblist->treeview), "drag-data-get", G_CALLBACK(pidgin_blist_drag_data_get_cb), NULL);
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
4419 #ifdef _WIN32
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4420 g_signal_connect(G_OBJECT(gtkblist->treeview), "drag-begin", G_CALLBACK(pidgin_blist_drag_begin), NULL);
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
4421 #endif
10433
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
4422
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4423 g_signal_connect(G_OBJECT(gtkblist->treeview), "drag-motion", G_CALLBACK(pidgin_blist_drag_motion_cb), NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4424
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4425 /* Tooltips */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4426 g_signal_connect(G_OBJECT(gtkblist->treeview), "motion-notify-event", G_CALLBACK(pidgin_blist_motion_cb), NULL);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4427 g_signal_connect(G_OBJECT(gtkblist->treeview), "leave-notify-event", G_CALLBACK(pidgin_blist_leave_cb), NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4428
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4429 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(gtkblist->treeview), FALSE);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4430
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4431 column = gtk_tree_view_column_new();
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4432 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), column);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4433 gtk_tree_view_column_set_visible(column, FALSE);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4434 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(gtkblist->treeview), column);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4435
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
4436 gtkblist->text_column = column = gtk_tree_view_column_new ();
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4437 rend = pidgin_cell_renderer_expander_new();
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4438 gtk_tree_view_column_pack_start(column, rend, FALSE);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4439 gtk_tree_view_column_set_attributes(column, rend,
16182
88b7040408c8 Set the disable maximize button hint on the blist. I couldn't find a window manager that supports this, but I bet win32 does.
Sean Egan <seanegan@pidgin.im>
parents: 16162
diff changeset
4440 "visible", GROUP_EXPANDER_VISIBLE_COLUMN,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4441 "expander-visible", GROUP_EXPANDER_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4442 #if GTK_CHECK_VERSION(2,6,0)
14626
964677efbddf [gaim-migrate @ 17287]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14624
diff changeset
4443 "sensitive", GROUP_EXPANDER_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4444 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4445 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4446 NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4447
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4448 rend = pidgin_cell_renderer_expander_new();
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4449 gtk_tree_view_column_pack_start(column, rend, FALSE);
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4450 gtk_tree_view_column_set_attributes(column, rend,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4451 "expander-visible", CONTACT_EXPANDER_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4452 #if GTK_CHECK_VERSION(2,6,0)
14626
964677efbddf [gaim-migrate @ 17287]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14624
diff changeset
4453 "sensitive", CONTACT_EXPANDER_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4454 "cell-background-gdk", BGCOLOR_COLUMN,
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4455 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4456 "visible", CONTACT_EXPANDER_VISIBLE_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4457 NULL);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4458
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4459 rend = gtk_cell_renderer_pixbuf_new();
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4460 gtk_tree_view_column_pack_start(column, rend, FALSE);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4461 gtk_tree_view_column_set_attributes(column, rend,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4462 "pixbuf", STATUS_ICON_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4463 "visible", STATUS_ICON_VISIBLE_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4464 #if GTK_CHECK_VERSION(2,6,0)
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4465 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4466 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4467 NULL);
16182
88b7040408c8 Set the disable maximize button hint on the blist. I couldn't find a window manager that supports this, but I bet win32 does.
Sean Egan <seanegan@pidgin.im>
parents: 16162
diff changeset
4468 g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4469
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
4470 gtkblist->text_rend = rend = gtk_cell_renderer_text_new();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4471 gtk_tree_view_column_pack_start (column, rend, TRUE);
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4472 gtk_tree_view_column_set_attributes(column, rend,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4473 #if GTK_CHECK_VERSION(2,6,0)
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4474 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4475 #endif
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4476 "markup", NAME_COLUMN,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4477 NULL);
18268
64f5e96df244 editing-started & editing-canceled signals are in gtk 2.6 and above only
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18253
diff changeset
4478 #if GTK_CHECK_VERSION(2,6,0)
16357
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
4479 g_signal_connect(G_OBJECT(rend), "editing-started", G_CALLBACK(gtk_blist_renderer_editing_started_cb), NULL);
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4480 g_signal_connect(G_OBJECT(rend), "editing-canceled", G_CALLBACK(gtk_blist_renderer_editing_cancelled_cb), list);
18268
64f5e96df244 editing-started & editing-canceled signals are in gtk 2.6 and above only
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18253
diff changeset
4481 #endif
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4482 g_signal_connect(G_OBJECT(rend), "edited", G_CALLBACK(gtk_blist_renderer_edited_cb), list);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4483 g_object_set(rend, "ypad", 0, "yalign", 0.5, NULL);
10285
22d4d807c5c3 [gaim-migrate @ 11456]
Sean Egan <seanegan@pidgin.im>
parents: 10282
diff changeset
4484 #if GTK_CHECK_VERSION(2,6,0)
10501
0dd069ed110e [gaim-migrate @ 11793]
Sean Egan <seanegan@pidgin.im>
parents: 10499
diff changeset
4485 g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
10285
22d4d807c5c3 [gaim-migrate @ 11456]
Sean Egan <seanegan@pidgin.im>
parents: 10282
diff changeset
4486 #endif
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4487 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), column);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4488
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4489 rend = gtk_cell_renderer_text_new();
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4490 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4491 gtk_tree_view_column_pack_start(column, rend, FALSE);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4492 gtk_tree_view_column_set_attributes(column, rend,
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4493 "markup", IDLE_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4494 "visible", IDLE_VISIBLE_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4495 #if GTK_CHECK_VERSION(2,6,0)
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4496 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4497 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4498 NULL);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4499
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4500 rend = gtk_cell_renderer_pixbuf_new();
16152
09e510e8b83b Add some padding between the emblem and the buddy icon
Sean Egan <seanegan@pidgin.im>
parents: 16151
diff changeset
4501 g_object_set(rend, "xalign", 1.0, "yalign", 0.5, "ypad", 0, "xpad", 3, NULL);
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4502 gtk_tree_view_column_pack_start(column, rend, FALSE);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4503 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", EMBLEM_COLUMN,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4504 #if GTK_CHECK_VERSION(2,6,0)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4505 "cell-background-gdk", BGCOLOR_COLUMN,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4506 #endif
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4507 "visible", EMBLEM_VISIBLE_COLUMN, NULL);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4508
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4509 rend = gtk_cell_renderer_pixbuf_new();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4510 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL);
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4511 gtk_tree_view_column_pack_start(column, rend, FALSE);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4512 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", BUDDY_ICON_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4513 #if GTK_CHECK_VERSION(2,6,0)
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4514 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4515 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4516 "visible", BUDDY_ICON_VISIBLE_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4517 NULL);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4518
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4519
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4520 g_signal_connect(G_OBJECT(gtkblist->treeview), "row-activated", G_CALLBACK(gtk_blist_row_activated_cb), NULL);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4521 g_signal_connect(G_OBJECT(gtkblist->treeview), "row-expanded", G_CALLBACK(gtk_blist_row_expanded_cb), NULL);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4522 g_signal_connect(G_OBJECT(gtkblist->treeview), "row-collapsed", G_CALLBACK(gtk_blist_row_collapsed_cb), NULL);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4523 g_signal_connect(G_OBJECT(gtkblist->treeview), "button-press-event", G_CALLBACK(gtk_blist_button_press_cb), NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4524 g_signal_connect(G_OBJECT(gtkblist->treeview), "key-press-event", G_CALLBACK(gtk_blist_key_press_cb), NULL);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4525 g_signal_connect(G_OBJECT(gtkblist->treeview), "popup-menu", G_CALLBACK(pidgin_blist_popup_menu_cb), NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4526
5419
062efd736788 [gaim-migrate @ 5798]
Mark Doliner <markdoliner@pidgin.im>
parents: 5398
diff changeset
4527 /* Enable CTRL+F searching */
062efd736788 [gaim-migrate @ 5798]
Mark Doliner <markdoliner@pidgin.im>
parents: 5398
diff changeset
4528 gtk_tree_view_set_search_column(GTK_TREE_VIEW(gtkblist->treeview), NAME_COLUMN);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4529 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(gtkblist->treeview), pidgin_tree_view_search_equal_func, NULL, NULL);
5419
062efd736788 [gaim-migrate @ 5798]
Mark Doliner <markdoliner@pidgin.im>
parents: 5398
diff changeset
4530
12583
d4f1bc373c67 [gaim-migrate @ 14911]
Sean Egan <seanegan@pidgin.im>
parents: 12576
diff changeset
4531 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), sw, TRUE, TRUE, 0);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4532 gtk_container_add(GTK_CONTAINER(sw), gtkblist->treeview);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4533
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4534 sep = gtk_hseparator_new();
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4535 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), sep, FALSE, FALSE, 0);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4536
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15571
diff changeset
4537 gtkblist->scrollbook = pidgin_scroll_book_new();
15096
128dd2bdf71d [gaim-migrate @ 17817]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
4538 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->scrollbook, FALSE, FALSE, 0);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4539
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4540 /* Create an empty vbox used for showing connection errors */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4541 gtkblist->error_buttons = gtk_vbox_new(FALSE, 0);
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4542 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->error_buttons, FALSE, FALSE, 0);
17141
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4543 gtk_container_set_border_width(GTK_CONTAINER(gtkblist->error_buttons), 3);
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4544
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4545 /* Add the statusbox */
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15571
diff changeset
4546 gtkblist->statusbox = pidgin_status_box_new();
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14137
diff changeset
4547 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->statusbox, FALSE, TRUE, 0);
16259
73b7c796c8d3 I don't like the pidginfoo_bar widget names that resulted from the sed.
Richard Laager <rlaager@pidgin.im>
parents: 16254
diff changeset
4548 gtk_widget_set_name(gtkblist->statusbox, "pidgin_blist_statusbox");
14608
6eea6c122238 [gaim-migrate @ 17269]
Sean Egan <seanegan@pidgin.im>
parents: 14603
diff changeset
4549 gtk_container_set_border_width(GTK_CONTAINER(gtkblist->statusbox), 3);
12583
d4f1bc373c67 [gaim-migrate @ 14911]
Sean Egan <seanegan@pidgin.im>
parents: 12576
diff changeset
4550 gtk_widget_show(gtkblist->statusbox);
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
4551
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4552 /* set the Show Offline Buddies option. must be done
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4553 * after the treeview or faceprint gets mad. -Robot101
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4554 */
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
4555 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show Offline Buddies"))),
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4556 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies"));
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4557
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
4558 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show Empty Groups"))),
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4559 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups"));
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4560
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
4561 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Tools/Mute Sounds"))),
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4562 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute"));
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4563
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
4564 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show Buddy Details"))),
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4565 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"));
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4566
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4567 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show Idle Times"))),
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4568 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time"));
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4569
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4570 if(!strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"), "none"))
11494
60bfb30f6cba [gaim-migrate @ 13738]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11490
diff changeset
4571 gtk_widget_set_sensitive(gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Mute Sounds")), FALSE);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4572
10353
830e54bb7fa0 [gaim-migrate @ 11570]
Mark Doliner <markdoliner@pidgin.im>
parents: 10352
diff changeset
4573 /* Update some dynamic things */
830e54bb7fa0 [gaim-migrate @ 11570]
Mark Doliner <markdoliner@pidgin.im>
parents: 10352
diff changeset
4574 update_menu_bar(gtkblist);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4575 pidgin_blist_update_plugin_actions();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4576 pidgin_blist_update_sort_methods();
10353
830e54bb7fa0 [gaim-migrate @ 11570]
Mark Doliner <markdoliner@pidgin.im>
parents: 10352
diff changeset
4577
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4578 /* OK... let's show this bad boy. */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4579 pidgin_blist_refresh(list);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4580 pidgin_blist_restore_position();
14543
cc2f90ffee6f [gaim-migrate @ 17200]
Casey Harkins <charkins@pidgin.im>
parents: 14526
diff changeset
4581 gtk_widget_show_all(GTK_WIDGET(gtkblist->vbox));
14574
4a60d4fadfc4 [gaim-migrate @ 17232]
Casey Harkins <charkins@pidgin.im>
parents: 14543
diff changeset
4582 gtk_widget_realize(GTK_WIDGET(gtkblist->window));
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4583 purple_blist_set_visible(purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_visible"));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4584
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4585 /* start the refresh timer */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4586 gtkblist->refresh_timer = g_timeout_add(30000, (GSourceFunc)pidgin_blist_refresh_timer, list);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4587
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4588 handle = pidgin_blist_get_handle();
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
4589
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4590 /* things that affect how buddies are displayed */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4591 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_buddy_icons",
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
4592 _prefs_change_redo_list, NULL);
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4593 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_idle_time",
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4594 _prefs_change_redo_list, NULL);
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4595 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_empty_groups",
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
4596 _prefs_change_redo_list, NULL);
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4597 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_offline_buddies",
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
4598 _prefs_change_redo_list, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4599
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4600 /* sorting */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4601 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/sort_type",
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
4602 _prefs_change_sort_method, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4603
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
4604 /* menus */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4605 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/sound/mute",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4606 pidgin_blist_mute_pref_cb, NULL);
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4607 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/sound/method",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4608 pidgin_blist_sound_method_pref_cb, NULL);
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
4609
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4610 /* Setup some purple signal handlers. */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4611 purple_signal_connect(purple_accounts_get_handle(), "account-enabled",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4612 gtkblist, PURPLE_CALLBACK(account_modified), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4613 purple_signal_connect(purple_accounts_get_handle(), "account-disabled",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4614 gtkblist, PURPLE_CALLBACK(account_modified), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4615 purple_signal_connect(purple_accounts_get_handle(), "account-removed",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4616 gtkblist, PURPLE_CALLBACK(account_modified), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4617 purple_signal_connect(purple_accounts_get_handle(), "account-status-changed",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4618 gtkblist, PURPLE_CALLBACK(account_status_changed), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4619
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4620 purple_signal_connect(pidgin_account_get_handle(), "account-modified",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4621 gtkblist, PURPLE_CALLBACK(account_modified), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4622
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4623 purple_signal_connect(purple_connections_get_handle(), "signed-on",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4624 gtkblist, PURPLE_CALLBACK(sign_on_off_cb), list);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4625 purple_signal_connect(purple_connections_get_handle(), "signed-off",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4626 gtkblist, PURPLE_CALLBACK(sign_on_off_cb), list);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4627
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4628 purple_signal_connect(purple_plugins_get_handle(), "plugin-load",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4629 gtkblist, PURPLE_CALLBACK(plugin_changed_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4630 purple_signal_connect(purple_plugins_get_handle(), "plugin-unload",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4631 gtkblist, PURPLE_CALLBACK(plugin_changed_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4632
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4633 purple_signal_connect(purple_conversations_get_handle(), "conversation-updated",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4634 gtkblist, PURPLE_CALLBACK(conversation_updated_cb),
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
4635 gtkblist);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4636 purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4637 gtkblist, PURPLE_CALLBACK(conversation_deleting_cb),
12208
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
4638 gtkblist);
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
4639
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4640 gtk_widget_hide(gtkblist->headline_hbox);
17141
f7d7dbca47cd Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@pidgin.im>
parents: 17086
diff changeset
4641 gtk_widget_hide(gtkblist->error_buttons);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4642
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
4643 /* emit our created signal */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4644 purple_signal_emit(handle, "gtkblist-created", list);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4645 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4646
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4647 static void redo_buddy_list(PurpleBuddyList *list, gboolean remove, gboolean rerender)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4648 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4649 PurpleBlistNode *node;
15307
57f6de61c714 [gaim-migrate @ 18035]
Mark Doliner <markdoliner@pidgin.im>
parents: 15306
diff changeset
4650
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4651 gtkblist = PIDGIN_BLIST(list);
15306
b4bb51751de0 [gaim-migrate @ 18034]
Ethan Blanton <elb@pidgin.im>
parents: 15300
diff changeset
4652 if(!gtkblist || !gtkblist->treeview)
b4bb51751de0 [gaim-migrate @ 18034]
Ethan Blanton <elb@pidgin.im>
parents: 15300
diff changeset
4653 return;
b4bb51751de0 [gaim-migrate @ 18034]
Ethan Blanton <elb@pidgin.im>
parents: 15300
diff changeset
4654
15307
57f6de61c714 [gaim-migrate @ 18035]
Mark Doliner <markdoliner@pidgin.im>
parents: 15306
diff changeset
4655 node = list->root;
12112
86a24bbf9a2c [gaim-migrate @ 14412]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12080
diff changeset
4656
86a24bbf9a2c [gaim-migrate @ 14412]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12080
diff changeset
4657 while (node)
86a24bbf9a2c [gaim-migrate @ 14412]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12080
diff changeset
4658 {
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4659 /* This is only needed when we're reverting to a non-GTK+ sorted
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4660 * status. We shouldn't need to remove otherwise.
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4661 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4662 if (remove && !PURPLE_BLIST_NODE_IS_GROUP(node))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4663 pidgin_blist_hide_node(list, node, FALSE);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4664
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4665 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4666 pidgin_blist_update_buddy(list, node, rerender);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4667 else if (PURPLE_BLIST_NODE_IS_CHAT(node))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4668 pidgin_blist_update(list, node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4669 else if (PURPLE_BLIST_NODE_IS_GROUP(node))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4670 pidgin_blist_update(list, node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4671 node = purple_blist_node_next(node, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4672 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4673
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4674 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4675
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4676 void pidgin_blist_refresh(PurpleBuddyList *list)
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
4677 {
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4678 redo_buddy_list(list, FALSE, TRUE);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
4679 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
4680
5297
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4681 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4682 pidgin_blist_update_refresh_timeout()
5297
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4683 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4684 PurpleBuddyList *blist;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4685 PidginBuddyList *gtkblist;
5297
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4686
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4687 blist = purple_get_blist();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4688 gtkblist = PIDGIN_BLIST(purple_get_blist());
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4689
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4690 gtkblist->refresh_timer = g_timeout_add(30000,(GSourceFunc)pidgin_blist_refresh_timer, blist);
5297
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4691 }
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4692
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4693 static gboolean get_iter_from_node(PurpleBlistNode *node, GtkTreeIter *iter) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4694 struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)node->ui_data;
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4695 GtkTreePath *path;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4696
5263
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4697 if (!gtknode) {
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4698 return FALSE;
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4699 }
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4700
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4701 if (!gtkblist) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4702 purple_debug_error("gtkblist", "get_iter_from_node was called, but we don't seem to have a blist\n");
5263
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4703 return FALSE;
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4704 }
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4705
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4706 if (!gtknode->row)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4707 return FALSE;
11494
60bfb30f6cba [gaim-migrate @ 13738]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11490
diff changeset
4708
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4709
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4710 if ((path = gtk_tree_row_reference_get_path(gtknode->row)) == NULL)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4711 return FALSE;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
4712
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4713 if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), iter, path)) {
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4714 gtk_tree_path_free(path);
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4715 return FALSE;
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4716 }
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4717 gtk_tree_path_free(path);
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4718 return TRUE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4719 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4720
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4721 static void pidgin_blist_remove(PurpleBuddyList *list, PurpleBlistNode *node)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4722 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4723 struct _pidgin_blist_node *gtknode = node->ui_data;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
4724
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4725 purple_request_close_with_handle(node);
10222
5371b5459fb9 [gaim-migrate @ 11351]
Andrew Hart <arhart@users.sourceforge.net>
parents: 10209
diff changeset
4726
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4727 pidgin_blist_hide_node(list, node, TRUE);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4728
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4729 if(node->parent)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4730 pidgin_blist_update(list, node->parent);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4731
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
4732 /* There's something I don't understand here - Ethan */
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
4733 /* Ethan said that back in 2003, but this g_free has been left commented
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
4734 * out ever since. I can't find any reason at all why this is bad and
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
4735 * valgrind found several reasons why it's good. If this causes problems
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
4736 * comment it out again. Stu */
10510
a9d90a5b7556 [gaim-migrate @ 11808]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10504
diff changeset
4737 /* Of course it still causes problems - this breaks dragging buddies into
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4738 * contacts, the dragged buddy mysteriously 'disappears'. Stu. */
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4739 /* I think it's fixed now. Stu. */
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
4740
11915
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4741 if(gtknode) {
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4742 if(gtknode->recent_signonoff_timer > 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4743 purple_timeout_remove(gtknode->recent_signonoff_timer);
11915
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4744
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4745 g_free(node->ui_data);
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4746 node->ui_data = NULL;
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4747 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4748 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4749
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4750 static gboolean do_selection_changed(PurpleBlistNode *new_selection)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4751 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4752 PurpleBlistNode *old_selection = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4753
5254
6717daf94719 [gaim-migrate @ 5626]
Robert McQueen <robot101@debian.org>
parents: 5241
diff changeset
4754 /* test for gtkblist because crazy timeout means we can be called after the blist is gone */
6717daf94719 [gaim-migrate @ 5626]
Robert McQueen <robot101@debian.org>
parents: 5241
diff changeset
4755 if (gtkblist && new_selection != gtkblist->selected_node) {
6717daf94719 [gaim-migrate @ 5626]
Robert McQueen <robot101@debian.org>
parents: 5241
diff changeset
4756 old_selection = gtkblist->selected_node;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4757 gtkblist->selected_node = new_selection;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4758 if(new_selection)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4759 pidgin_blist_update(NULL, new_selection);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4760 if(old_selection)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4761 pidgin_blist_update(NULL, old_selection);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4762 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4763
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4764 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4765 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4766
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4767 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4768 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4769 PurpleBlistNode *new_selection = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4770 GtkTreeIter iter;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4771
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4772 if(gtk_tree_selection_get_selected(selection, NULL, &iter)){
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4773 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4774 NODE_COLUMN, &new_selection, -1);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4775 }
5254
6717daf94719 [gaim-migrate @ 5626]
Robert McQueen <robot101@debian.org>
parents: 5241
diff changeset
4776
17542
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4777 /* we set this up as a timeout, otherwise the blist flickers ...
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4778 * but we don't do it for groups, because it causes total bizarness -
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4779 * the previously selected buddy node might rendered at half height.
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4780 */
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4781 if ((new_selection != NULL) && PURPLE_BLIST_NODE_IS_GROUP(new_selection)) {
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4782 do_selection_changed(new_selection);
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4783 } else {
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4784 g_timeout_add(0, (GSourceFunc)do_selection_changed, new_selection);
6179ea7a4334 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17486
diff changeset
4785 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4786 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4787
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4788 static gboolean insert_node(PurpleBuddyList *list, PurpleBlistNode *node, GtkTreeIter *iter)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4789 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4790 GtkTreeIter parent_iter, cur, *curptr = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4791 struct _pidgin_blist_node *gtknode = node->ui_data;
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4792 GtkTreePath *newpath;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4793
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4794 if(!iter)
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
4795 return FALSE;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4796
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4797 if(node->parent && !get_iter_from_node(node->parent, &parent_iter))
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
4798 return FALSE;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4799
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4800 if(get_iter_from_node(node, &cur))
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4801 curptr = &cur;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4802
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4803 if(PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node)) {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
4804 current_sort_method->func(node, list, parent_iter, curptr, iter);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4805 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
4806 sort_method_none(node, list, parent_iter, curptr, iter);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4807 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4808
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4809 if(gtknode != NULL) {
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4810 gtk_tree_row_reference_free(gtknode->row);
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4811 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4812 pidgin_blist_new_node(node);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4813 gtknode = (struct _pidgin_blist_node *)node->ui_data;
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4814 }
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4815
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4816 newpath = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4817 iter);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4818 gtknode->row =
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4819 gtk_tree_row_reference_new(GTK_TREE_MODEL(gtkblist->treemodel),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4820 newpath);
11494
60bfb30f6cba [gaim-migrate @ 13738]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11490
diff changeset
4821
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4822 gtk_tree_path_free(newpath);
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4823
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4824 if (!editing_blist)
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4825 gtk_tree_store_set(gtkblist->treemodel, iter,
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4826 NODE_COLUMN, node,
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4827 -1);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4828
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4829 if(node->parent) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4830 GtkTreePath *expand = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4831 struct _pidgin_blist_node *gtkparentnode = node->parent->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4832
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4833 if(PURPLE_BLIST_NODE_IS_GROUP(node->parent)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4834 if(!purple_blist_node_get_bool(node->parent, "collapsed"))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4835 expand = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent_iter);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4836 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node->parent) &&
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4837 gtkparentnode->contact_expanded) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4838 expand = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent_iter);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4839 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4840 if(expand) {
7693
1f736efbd12d [gaim-migrate @ 8338]
Nathan Walp <nwalp@pidgin.im>
parents: 7662
diff changeset
4841 gtk_tree_view_expand_row(GTK_TREE_VIEW(gtkblist->treeview), expand, FALSE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4842 gtk_tree_path_free(expand);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4843 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4844 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4845
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
4846 return TRUE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4847 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4848
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4849 /*This version of pidgin_blist_update_group can take the original buddy
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4850 or a group, but has much better algorithmic performance with a pre-known buddy*/
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4851 static void pidgin_blist_update_group(PurpleBuddyList *list, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4852 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4853 PurpleGroup *group;
8203
23f66d41ff8c [gaim-migrate @ 8926]
Alex Smith <madalex@users.sourceforge.net>
parents: 8198
diff changeset
4854 int count;
12341
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
4855 gboolean show = FALSE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4856 PurpleBlistNode* gnode;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4857
13982
b1d1248b2789 [gaim-migrate @ 16432]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13951
diff changeset
4858 g_return_if_fail(node != NULL);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4859
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4860 if (editing_blist)
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4861 return;
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4862
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4863 if (PURPLE_BLIST_NODE_IS_GROUP(node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4864 gnode = node;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4865 else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4866 gnode = node->parent->parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4867 else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4868 gnode = node->parent;
13982
b1d1248b2789 [gaim-migrate @ 16432]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13951
diff changeset
4869 else
b1d1248b2789 [gaim-migrate @ 16432]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13951
diff changeset
4870 return;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4871
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4872 group = (PurpleGroup*)gnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4873
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4874 if(purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4875 count = purple_blist_get_group_size(group, FALSE);
8203
23f66d41ff8c [gaim-migrate @ 8926]
Alex Smith <madalex@users.sourceforge.net>
parents: 8198
diff changeset
4876 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4877 count = purple_blist_get_group_online_count(group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4878
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4879 if (count > 0 || purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups"))
12341
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
4880 show = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4881 else if (PURPLE_BLIST_NODE_IS_BUDDY(node)){ /* Or chat? */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4882 if (buddy_is_displayable((PurpleBuddy*)node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4883 show = TRUE;}
12341
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
4884
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
4885 if (show) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4886 GtkTreeIter iter;
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4887 GtkTreePath *path;
14722
6f567e2961ae [gaim-migrate @ 17406]
Etan Reisner <deryni@pidgin.im>
parents: 14682
diff changeset
4888 gboolean expanded;
14501
17032cb417f9 [gaim-migrate @ 17153]
Gary Kramlich <grim@reaperworld.com>
parents: 14476
diff changeset
4889 GdkColor bgcolor;
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4890 char *title;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4891
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4892
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4893 if(!insert_node(list, gnode, &iter))
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
4894 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4895
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
4896 bgcolor = gtkblist->treeview->style->bg[GTK_STATE_ACTIVE];
14501
17032cb417f9 [gaim-migrate @ 17153]
Gary Kramlich <grim@reaperworld.com>
parents: 14476
diff changeset
4897
17032cb417f9 [gaim-migrate @ 17153]
Gary Kramlich <grim@reaperworld.com>
parents: 14476
diff changeset
4898 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
17032cb417f9 [gaim-migrate @ 17153]
Gary Kramlich <grim@reaperworld.com>
parents: 14476
diff changeset
4899 expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(gtkblist->treeview), path);
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4900 gtk_tree_path_free(path);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4901
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
4902 title = pidgin_get_group_title(gnode, expanded);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4903
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4904 gtk_tree_store_set(gtkblist->treemodel, &iter,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4905 STATUS_ICON_VISIBLE_COLUMN, FALSE,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4906 STATUS_ICON_COLUMN, NULL,
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4907 NAME_COLUMN, title,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4908 NODE_COLUMN, gnode,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4909 BGCOLOR_COLUMN, &bgcolor,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4910 GROUP_EXPANDER_COLUMN, TRUE,
16182
88b7040408c8 Set the disable maximize button hint on the blist. I couldn't find a window manager that supports this, but I bet win32 does.
Sean Egan <seanegan@pidgin.im>
parents: 16162
diff changeset
4911 GROUP_EXPANDER_VISIBLE_COLUMN, TRUE,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4912 CONTACT_EXPANDER_VISIBLE_COLUMN, FALSE,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4913 BUDDY_ICON_VISIBLE_COLUMN, FALSE,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4914 IDLE_VISIBLE_COLUMN, FALSE,
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4915 EMBLEM_VISIBLE_COLUMN, FALSE,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4916 -1);
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4917 g_free(title);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4918 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4919 pidgin_blist_hide_node(list, gnode, TRUE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4920 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4921 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4922
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4923 static char *pidgin_get_group_title(PurpleBlistNode *gnode, gboolean expanded)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4924 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4925 PurpleGroup *group;
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4926 GdkColor textcolor;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4927 gboolean selected;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4928 char group_count[12] = "";
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4929 char *mark, *esc;
18372
9eee190f0584 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@pidgin.im>
parents: 18347
diff changeset
4930 PurpleBlistNode *selected_node = NULL;
9eee190f0584 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@pidgin.im>
parents: 18347
diff changeset
4931 GtkTreeIter iter;
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4932
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4933 group = (PurpleGroup*)gnode;
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4934 textcolor = gtkblist->treeview->style->fg[GTK_STATE_ACTIVE];
18372
9eee190f0584 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@pidgin.im>
parents: 18347
diff changeset
4935
9eee190f0584 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@pidgin.im>
parents: 18347
diff changeset
4936 if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview)), NULL, &iter)) {
9eee190f0584 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@pidgin.im>
parents: 18347
diff changeset
4937 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
9eee190f0584 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@pidgin.im>
parents: 18347
diff changeset
4938 NODE_COLUMN, &selected_node, -1);
9eee190f0584 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@pidgin.im>
parents: 18347
diff changeset
4939 }
9eee190f0584 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@pidgin.im>
parents: 18347
diff changeset
4940 selected = (gnode == selected_node);
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4941
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4942 if (!expanded) {
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4943 g_snprintf(group_count, sizeof(group_count), " (%d/%d)",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4944 purple_blist_get_group_online_count(group),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4945 purple_blist_get_group_size(group, FALSE));
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4946 }
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4947
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4948 esc = g_markup_escape_text(group->name, -1);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4949 if (selected)
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4950 mark = g_strdup_printf("<span weight='bold'>%s</span>%s", esc, group_count);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4951 else
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4952 mark = g_strdup_printf("<span color='#%02x%02x%02x' weight='bold'>%s</span>%s",
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4953 textcolor.red>>8, textcolor.green>>8, textcolor.blue>>8,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4954 esc, group_count);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4955
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4956 g_free(esc);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4957 return mark;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4958 }
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4959
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4960 static void buddy_node(PurpleBuddy *buddy, GtkTreeIter *iter, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4961 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4962 PurplePresence *presence;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4963 GdkPixbuf *status, *avatar, *emblem;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4964 char *mark;
11257
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
4965 char *idle = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4966 gboolean expanded = ((struct _pidgin_blist_node *)(node->parent->ui_data))->contact_expanded;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4967 gboolean selected = (gtkblist->selected_node == node);
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4968 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4969 presence = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4970
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4971 if (editing_blist)
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4972 return;
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
4973
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4974 status = pidgin_blist_get_status_icon((PurpleBlistNode*)buddy,
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
4975 PIDGIN_STATUS_ICON_SMALL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4976
16950
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4977 /* Speed it up if we don't want buddy icons. */
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4978 if(biglist)
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4979 avatar = pidgin_blist_get_buddy_icon((PurpleBlistNode *)buddy, TRUE, TRUE);
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4980 else
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4981 avatar = NULL;
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4982
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4983 if (!avatar) {
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4984 g_object_ref(G_OBJECT(gtkblist->empty_avatar));
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4985 avatar = gtkblist->empty_avatar;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4986 } else if ((!PURPLE_BUDDY_IS_ONLINE(buddy) || purple_presence_is_idle(presence))) {
15552
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
4987 do_alphashift(avatar, avatar, 77);
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
4988 }
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
4989
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4990 emblem = pidgin_blist_get_emblem((PurpleBlistNode*) buddy);
18274
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18270
diff changeset
4991 mark = pidgin_blist_get_name_markup(buddy, selected, TRUE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4992
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4993 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time") &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4994 purple_presence_is_idle(presence) &&
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4995 !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"))
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4996 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4997 time_t idle_secs = purple_presence_get_idle_time(presence);
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4998
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4999 if (idle_secs > 0)
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5000 {
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5001 time_t t;
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5002 int ihrs, imin;
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5003 time(&t);
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5004 ihrs = (t - idle_secs) / 3600;
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5005 imin = ((t - idle_secs) / 60) % 60;
13821
3eda6c8a2b75 [gaim-migrate @ 16251]
Richard Laager <rlaager@pidgin.im>
parents: 13792
diff changeset
5006 idle = g_strdup_printf("%d:%02d", ihrs, imin);
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5007 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5008 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5009
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5010 if (purple_presence_is_idle(presence))
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5011 {
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
5012 if (idle && !selected) {
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
5013 char *i2 = g_strdup_printf("<span color='%s'>%s</span>",
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
5014 dim_grey(), idle);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5015 g_free(idle);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5016 idle = i2;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5017 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5018 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5019
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5020 gtk_tree_store_set(gtkblist->treemodel, iter,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5021 STATUS_ICON_COLUMN, status,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5022 STATUS_ICON_VISIBLE_COLUMN, TRUE,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5023 NAME_COLUMN, mark,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5024 IDLE_COLUMN, idle,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5025 IDLE_VISIBLE_COLUMN, !biglist && idle,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5026 BUDDY_ICON_COLUMN, avatar,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5027 BUDDY_ICON_VISIBLE_COLUMN, biglist,
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
5028 EMBLEM_COLUMN, emblem,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
5029 EMBLEM_VISIBLE_COLUMN, emblem,
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
5030 BGCOLOR_COLUMN, NULL,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5031 CONTACT_EXPANDER_COLUMN, NULL,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5032 CONTACT_EXPANDER_VISIBLE_COLUMN, expanded,
16182
88b7040408c8 Set the disable maximize button hint on the blist. I couldn't find a window manager that supports this, but I bet win32 does.
Sean Egan <seanegan@pidgin.im>
parents: 16162
diff changeset
5033 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5034 -1);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5035
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5036 g_free(mark);
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
5037 g_free(idle);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5038 if(status)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5039 g_object_unref(status);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5040 if(avatar)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5041 g_object_unref(avatar);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5042 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5043
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5044 /* This is a variation on the original gtk_blist_update_contact. Here we
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5045 can know in advance which buddy has changed so we can just update that */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5046 static void pidgin_blist_update_contact(PurpleBuddyList *list, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5047 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5048 PurpleBlistNode *cnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5049 PurpleContact *contact;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5050 PurpleBuddy *buddy;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5051 struct _pidgin_blist_node *gtknode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5052
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
5053 if (editing_blist)
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
5054 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5055
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5056 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5057 cnode = node->parent;
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5058 else
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5059 cnode = node;
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
5060
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5061 g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(cnode));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5062
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5063 /* First things first, update the group */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5064 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5065 pidgin_blist_update_group(list, node);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5066 else
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5067 pidgin_blist_update_group(list, cnode->parent);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5068
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5069 contact = (PurpleContact*)cnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5070 buddy = purple_contact_get_priority_buddy(contact);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5071
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
5072 if (buddy_is_displayable(buddy))
10006
800a81666868 [gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents: 9993
diff changeset
5073 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5074 GtkTreeIter iter;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5075
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5076 if(!insert_node(list, cnode, &iter))
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5077 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5078
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5079 gtknode = (struct _pidgin_blist_node *)cnode->ui_data;
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
5080
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5081 if(gtknode->contact_expanded) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5082 GdkPixbuf *status;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5083 char *mark;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5084
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5085 status = pidgin_blist_get_status_icon(cnode,
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
5086 PIDGIN_STATUS_ICON_SMALL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5087
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5088 mark = g_markup_escape_text(purple_contact_get_alias(contact), -1);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5089 gtk_tree_store_set(gtkblist->treemodel, &iter,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5090 STATUS_ICON_COLUMN, status,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5091 STATUS_ICON_VISIBLE_COLUMN, TRUE,
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
5092 NAME_COLUMN, mark,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5093 IDLE_COLUMN, NULL,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5094 IDLE_VISIBLE_COLUMN, FALSE,
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
5095 BGCOLOR_COLUMN, NULL,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5096 BUDDY_ICON_COLUMN, NULL,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
5097 CONTACT_EXPANDER_COLUMN, TRUE,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5098 CONTACT_EXPANDER_VISIBLE_COLUMN, TRUE,
16182
88b7040408c8 Set the disable maximize button hint on the blist. I couldn't find a window manager that supports this, but I bet win32 does.
Sean Egan <seanegan@pidgin.im>
parents: 16162
diff changeset
5099 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5100 -1);
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
5101 g_free(mark);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5102 if(status)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5103 g_object_unref(status);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5104 } else {
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5105 buddy_node(buddy, &iter, cnode);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5106 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5107 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5108 pidgin_blist_hide_node(list, cnode, TRUE);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5109 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5110 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5111
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5112
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5113
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5114 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean statusChange)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5115 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5116 PurpleBuddy *buddy;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5117 struct _pidgin_blist_node *gtkparentnode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5118
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5119 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5120
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5121 if (node->parent == NULL)
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5122 return;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5123
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5124 buddy = (PurpleBuddy*)node;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5125
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5126 /* First things first, update the contact */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5127 pidgin_blist_update_contact(list, node);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5128
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5129 gtkparentnode = (struct _pidgin_blist_node *)node->parent->ui_data;
10918
77103f5ad580 [gaim-migrate @ 12681]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10884
diff changeset
5130
12341
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
5131 if (gtkparentnode->contact_expanded && buddy_is_displayable(buddy))
10006
800a81666868 [gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents: 9993
diff changeset
5132 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5133 GtkTreeIter iter;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5134
10006
800a81666868 [gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents: 9993
diff changeset
5135 if (!insert_node(list, node, &iter))
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5136 return;
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5137
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5138 buddy_node(buddy, &iter, node);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5139
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5140 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5141 pidgin_blist_hide_node(list, node, TRUE);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5142 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5143
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5144 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5145
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5146 static void pidgin_blist_update_chat(PurpleBuddyList *list, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5147 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5148 PurpleChat *chat;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5149
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5150 g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5151
17720
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
5152 if (editing_blist)
07050b4c845f Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@pidgin.im>
parents: 17712
diff changeset
5153 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5154
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5155 /* First things first, update the group */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5156 pidgin_blist_update_group(list, node->parent);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5157
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5158 chat = (PurpleChat*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5159
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5160 if(purple_account_is_connected(chat->account)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5161 GtkTreeIter iter;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5162 GdkPixbuf *status;
15490
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
5163 GdkPixbuf *avatar;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
5164 GdkPixbuf *emblem;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5165 char *mark;
16950
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5166 gboolean showicons = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5167
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5168 if(!insert_node(list, node, &iter))
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5169 return;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5170
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5171 status = pidgin_blist_get_status_icon(node,
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
5172 PIDGIN_STATUS_ICON_SMALL);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5173 emblem = pidgin_blist_get_emblem(node);
16950
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5174
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5175 /* Speed it up if we don't want buddy icons. */
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5176 if(showicons)
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5177 avatar = pidgin_blist_get_buddy_icon(node, TRUE, FALSE);
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5178 else
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5179 avatar = NULL;
15490
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
5180
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5181 mark = g_markup_escape_text(purple_chat_get_name(chat), -1);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5182
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5183 gtk_tree_store_set(gtkblist->treemodel, &iter,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5184 STATUS_ICON_COLUMN, status,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5185 STATUS_ICON_VISIBLE_COLUMN, TRUE,
15490
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
5186 BUDDY_ICON_COLUMN, avatar ? avatar : gtkblist->empty_avatar,
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
5187 BUDDY_ICON_VISIBLE_COLUMN, purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"),
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
5188 EMBLEM_COLUMN, emblem,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
5189 EMBLEM_VISIBLE_COLUMN, emblem != NULL,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5190 NAME_COLUMN, mark,
16182
88b7040408c8 Set the disable maximize button hint on the blist. I couldn't find a window manager that supports this, but I bet win32 does.
Sean Egan <seanegan@pidgin.im>
parents: 16162
diff changeset
5191 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5192 -1);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5193
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5194 g_free(mark);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5195 if(status)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5196 g_object_unref(status);
15490
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
5197 if(avatar)
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
5198 g_object_unref(avatar);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5199 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5200 pidgin_blist_hide_node(list, node, TRUE);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5201 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5202 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5203
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5204 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5205 {
15282
376816e3cb9e [gaim-migrate @ 18010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15260
diff changeset
5206 if (list)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5207 gtkblist = PIDGIN_BLIST(list);
15306
b4bb51751de0 [gaim-migrate @ 18034]
Ethan Blanton <elb@pidgin.im>
parents: 15300
diff changeset
5208 if(!gtkblist || !gtkblist->treeview || !node)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5209 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5210
13196
b34319a69167 [gaim-migrate @ 15558]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13162
diff changeset
5211 if (node->ui_data == NULL)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5212 pidgin_blist_new_node(node);
13196
b34319a69167 [gaim-migrate @ 15558]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13162
diff changeset
5213
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5214 switch(node->type) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5215 case PURPLE_BLIST_GROUP_NODE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5216 pidgin_blist_update_group(list, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5217 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5218 case PURPLE_BLIST_CONTACT_NODE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5219 pidgin_blist_update_contact(list, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5220 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5221 case PURPLE_BLIST_BUDDY_NODE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5222 pidgin_blist_update_buddy(list, node, TRUE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5223 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5224 case PURPLE_BLIST_CHAT_NODE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5225 pidgin_blist_update_chat(list, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5226 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5227 case PURPLE_BLIST_OTHER_NODE:
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5228 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5229 }
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5230
13147
5442361b3f40 [gaim-migrate @ 15509]
Mart Raudsepp
parents: 13141
diff changeset
5231 #if !GTK_CHECK_VERSION(2,6,0)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5232 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(gtkblist->treeview));
13147
5442361b3f40 [gaim-migrate @ 15509]
Mart Raudsepp
parents: 13141
diff changeset
5233 #endif
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5234 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5235
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5236
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5237 static void pidgin_blist_destroy(PurpleBuddyList *list)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5238 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5239 if (!gtkblist)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5240 return;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5241
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5242 purple_signals_disconnect_by_handle(gtkblist);
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8254
diff changeset
5243
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
5244 if (gtkblist->headline_close)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
5245 gdk_pixbuf_unref(gtkblist->headline_close);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
5246
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5247 gtk_widget_destroy(gtkblist->window);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5248
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5249 pidgin_blist_tooltip_destroy();
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5250
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5251 if (gtkblist->refresh_timer)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5252 g_source_remove(gtkblist->refresh_timer);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5253 if (gtkblist->timeout)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5254 g_source_remove(gtkblist->timeout);
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
5255 if (gtkblist->drag_timeout)
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
5256 g_source_remove(gtkblist->drag_timeout);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5257
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
5258 g_hash_table_destroy(gtkblist->connection_errors);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5259 gtkblist->refresh_timer = 0;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5260 gtkblist->timeout = 0;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
5261 gtkblist->drag_timeout = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5262 gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5263 gtkblist->treemodel = NULL;
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
5264 g_object_unref(G_OBJECT(gtkblist->ift));
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
5265 g_object_unref(G_OBJECT(gtkblist->empty_avatar));
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
5266
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5267 gdk_cursor_unref(gtkblist->hand_cursor);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5268 gdk_cursor_unref(gtkblist->arrow_cursor);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5269 gtkblist->hand_cursor = NULL;
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5270 gtkblist->arrow_cursor = NULL;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5271
15282
376816e3cb9e [gaim-migrate @ 18010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15260
diff changeset
5272 g_free(gtkblist);
376816e3cb9e [gaim-migrate @ 18010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15260
diff changeset
5273 accountmenu = NULL;
376816e3cb9e [gaim-migrate @ 18010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15260
diff changeset
5274 gtkblist = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5275 purple_prefs_disconnect_by_handle(pidgin_blist_get_handle());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5276 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5277
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5278 static void pidgin_blist_set_visible(PurpleBuddyList *list, gboolean show)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5279 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5280 if (!(gtkblist && gtkblist->window))
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5281 return;
10325
9bb530214bae [gaim-migrate @ 11532]
Mark Doliner <markdoliner@pidgin.im>
parents: 10320
diff changeset
5282
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5283 if (show) {
15571
812bd6c69c8c dialogs
Sean Egan <seanegan@pidgin.im>
parents: 15570
diff changeset
5284 if(!PIDGIN_WINDOW_ICONIFIED(gtkblist->window) && !GTK_WIDGET_VISIBLE(gtkblist->window))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5285 purple_signal_emit(pidgin_blist_get_handle(), "gtkblist-unhiding", gtkblist);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5286 pidgin_blist_restore_position();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5287 gtk_window_present(GTK_WINDOW(gtkblist->window));
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5288 } else {
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5289 if(visibility_manager_count) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5290 purple_signal_emit(pidgin_blist_get_handle(), "gtkblist-hiding", gtkblist);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5291 gtk_widget_hide(gtkblist->window);
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5292 } else {
12479
01ea9120820a [gaim-migrate @ 14790]
Casey Harkins <charkins@pidgin.im>
parents: 12478
diff changeset
5293 if (!GTK_WIDGET_VISIBLE(gtkblist->window))
01ea9120820a [gaim-migrate @ 14790]
Casey Harkins <charkins@pidgin.im>
parents: 12478
diff changeset
5294 gtk_widget_show(gtkblist->window);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5295 gtk_window_iconify(GTK_WINDOW(gtkblist->window));
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5296 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5297 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5298 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5299
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5300 static GList *
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5301 groups_tree(void)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5302 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5303 GList *tmp = NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5304 char *tmp2;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5305 PurpleGroup *g;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5306 PurpleBlistNode *gnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5307
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5308 if (purple_get_blist()->root == NULL)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5309 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5310 tmp2 = g_strdup(_("Buddies"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5311 tmp = g_list_append(tmp, tmp2);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5312 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5313 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5314 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5315 for (gnode = purple_get_blist()->root;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5316 gnode != NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5317 gnode = gnode->next)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5318 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5319 if (PURPLE_BLIST_NODE_IS_GROUP(gnode))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5320 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5321 g = (PurpleGroup *)gnode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5322 tmp2 = g->name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5323 tmp = g_list_append(tmp, tmp2);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5324 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5325 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5326 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5327
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5328 return tmp;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5329 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5330
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5331 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5332 add_buddy_select_account_cb(GObject *w, PurpleAccount *account,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5333 PidginAddBuddyData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5334 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5335 /* Save our account */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5336 data->account = account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5337 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5338
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5339 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5340 destroy_add_buddy_dialog_cb(GtkWidget *win, PidginAddBuddyData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5341 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5342 g_free(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5343 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5344
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5345 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5346 add_buddy_cb(GtkWidget *w, int resp, PidginAddBuddyData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5347 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5348 const char *grp, *who, *whoalias;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5349 PurpleGroup *g;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5350 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5351 PurpleConversation *c;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5352 PurpleBuddyIcon *icon;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5353
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5354 if (resp == GTK_RESPONSE_OK)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5355 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5356 who = gtk_entry_get_text(GTK_ENTRY(data->entry));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5357 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(data->combo)->entry));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5358 whoalias = gtk_entry_get_text(GTK_ENTRY(data->entry_for_alias));
9658
261c1ce87287 [gaim-migrate @ 10506]
Mark Doliner <markdoliner@pidgin.im>
parents: 9646
diff changeset
5359 if (*whoalias == '\0')
261c1ce87287 [gaim-migrate @ 10506]
Mark Doliner <markdoliner@pidgin.im>
parents: 9646
diff changeset
5360 whoalias = NULL;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5361
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5362 if ((g = purple_find_group(grp)) == NULL)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5363 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5364 g = purple_group_new(grp);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5365 purple_blist_add_group(g, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5366 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5367
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5368 b = purple_buddy_new(data->account, who, whoalias);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5369 purple_blist_add_buddy(b, NULL, g, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5370 purple_account_add_buddy(data->account, b);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5371
7887
4b2925a88897 [gaim-migrate @ 8545]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
5372 /*
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9236
diff changeset
5373 * XXX
11643
f04408721780 [gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 11638
diff changeset
5374 * It really seems like it would be better if the call to
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5375 * purple_account_add_buddy() and purple_conversation_update() were done in
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5376 * blist.c, possibly in the purple_blist_add_buddy() function. Maybe
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5377 * purple_account_add_buddy() should be renamed to
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5378 * purple_blist_add_new_buddy() or something, and have it call
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5379 * purple_blist_add_buddy() after it creates it. --Mark
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9236
diff changeset
5380 *
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9236
diff changeset
5381 * No that's not good. blist.c should only deal with adding nodes to the
11643
f04408721780 [gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 11638
diff changeset
5382 * local list. We need a new, non-gtk file that calls both
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5383 * purple_account_add_buddy and purple_blist_add_buddy().
11643
f04408721780 [gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 11638
diff changeset
5384 * Or something. --Mark
7887
4b2925a88897 [gaim-migrate @ 8545]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
5385 */
4b2925a88897 [gaim-migrate @ 8545]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
5386
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5387 c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, data->account);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5388 if (c != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5389 icon = purple_conv_im_get_icon(PURPLE_CONV_IM(c));
13942
77bc33d555f8 [gaim-migrate @ 16358]
Mark Doliner <markdoliner@pidgin.im>
parents: 13834
diff changeset
5390 if (icon != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5391 purple_buddy_icon_update(icon);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5392 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5393 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5394
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5395 gtk_widget_destroy(data->window);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5396 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5397
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5398 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5399 pidgin_blist_request_add_buddy(PurpleAccount *account, const char *username,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5400 const char *group, const char *alias)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5401 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5402 GtkWidget *table;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5403 GtkWidget *label;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5404 GtkWidget *hbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5405 GtkWidget *vbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5406 GtkWidget *img;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5407 PidginBuddyList *gtkblist;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5408 PidginAddBuddyData *data = g_new0(PidginAddBuddyData, 1);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5409
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5410 data->account =
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5411 (account != NULL
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5412 ? account
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5413 : purple_connection_get_account(purple_connections_get_all()->data));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5414
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
5415 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
5416 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5417
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5418 gtkblist = PIDGIN_BLIST(purple_get_blist());
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5419
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5420 data->window = gtk_dialog_new_with_buttons(_("Add Buddy"),
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5421 NULL, GTK_DIALOG_NO_SEPARATOR,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5422 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5423 GTK_STOCK_ADD, GTK_RESPONSE_OK,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5424 NULL);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5425
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5426 gtk_dialog_set_default_response(GTK_DIALOG(data->window), GTK_RESPONSE_OK);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5427 gtk_container_set_border_width(GTK_CONTAINER(data->window), PIDGIN_HIG_BOX_SPACE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5428 gtk_window_set_resizable(GTK_WINDOW(data->window), FALSE);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5429 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BORDER);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5430 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BOX_SPACE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5431 gtk_window_set_role(GTK_WINDOW(data->window), "add_buddy");
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5432 gtk_window_set_type_hint(GTK_WINDOW(data->window),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5433 GDK_WINDOW_TYPE_HINT_DIALOG);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5434
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5435 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5436 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5437 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5438 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5439
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5440 vbox = gtk_vbox_new(FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5441 gtk_container_add(GTK_CONTAINER(hbox), vbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5442
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5443 label = gtk_label_new(
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5444 _("Please enter the screen name of the person you would like "
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5445 "to add to your buddy list. You may optionally enter an alias, "
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5446 "or nickname, for the buddy. The alias will be displayed in "
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5447 "place of the screen name whenever possible.\n"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5448
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5449 gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5450 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5451 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5452 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5453
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5454 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5455 gtk_container_add(GTK_CONTAINER(vbox), hbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5456
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5457 g_signal_connect(G_OBJECT(data->window), "destroy",
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5458 G_CALLBACK(destroy_add_buddy_dialog_cb), data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5459
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5460 table = gtk_table_new(4, 2, FALSE);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5461 gtk_table_set_row_spacings(GTK_TABLE(table), 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5462 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5463 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5464 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5465
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5466 /* Set up stuff for the account box */
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5467 label = gtk_label_new_with_mnemonic(_("_Account:"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5468 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5469 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5470
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5471 data->account_box = pidgin_account_option_menu_new(account, FALSE,
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5472 G_CALLBACK(add_buddy_select_account_cb), NULL, data);
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5473
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5474 gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 1, 2, 0, 1);
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5475 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->account_box);
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5476 pidgin_set_accessible_label (data->account_box, label);
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5477 /* End of account box */
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5478
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5479 label = gtk_label_new_with_mnemonic(_("_Screen name:"));
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5480 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5481 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5482
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5483 data->entry = gtk_entry_new();
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5484 gtk_table_attach_defaults(GTK_TABLE(table), data->entry, 1, 2, 1, 2);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5485 gtk_widget_grab_focus(data->entry);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5486
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5487 if (username != NULL)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5488 gtk_entry_set_text(GTK_ENTRY(data->entry), username);
12337
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5489 else
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5490 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window),
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5491 GTK_RESPONSE_OK, FALSE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5492
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5493 gtk_entry_set_activates_default (GTK_ENTRY(data->entry), TRUE);
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5494 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5495 pidgin_set_accessible_label (data->entry, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5496
12337
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5497 g_signal_connect(G_OBJECT(data->entry), "changed",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5498 G_CALLBACK(pidgin_set_sensitive_if_input),
12337
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5499 data->window);
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5500
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5501 label = gtk_label_new_with_mnemonic(_("A_lias:"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5502 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5503 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5504
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5505 data->entry_for_alias = gtk_entry_new();
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5506 gtk_table_attach_defaults(GTK_TABLE(table),
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5507 data->entry_for_alias, 1, 2, 2, 3);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5508
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5509 if (alias != NULL)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5510 gtk_entry_set_text(GTK_ENTRY(data->entry_for_alias), alias);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5511
10734
4e49449724ec [gaim-migrate @ 12336]
Richard Laager <rlaager@pidgin.im>
parents: 10694
diff changeset
5512 if (username != NULL)
4e49449724ec [gaim-migrate @ 12336]
Richard Laager <rlaager@pidgin.im>
parents: 10694
diff changeset
5513 gtk_widget_grab_focus(GTK_WIDGET(data->entry_for_alias));
4e49449724ec [gaim-migrate @ 12336]
Richard Laager <rlaager@pidgin.im>
parents: 10694
diff changeset
5514
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5515 gtk_entry_set_activates_default (GTK_ENTRY(data->entry_for_alias), TRUE);
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5516 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry_for_alias);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5517 pidgin_set_accessible_label (data->entry_for_alias, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5518
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5519 label = gtk_label_new_with_mnemonic(_("_Group:"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5520 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5521 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5522
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5523 data->combo = gtk_combo_new();
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5524 gtk_combo_set_popdown_strings(GTK_COMBO(data->combo), groups_tree());
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5525 gtk_table_attach_defaults(GTK_TABLE(table), data->combo, 1, 2, 3, 4);
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5526 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_COMBO(data->combo)->entry);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5527 pidgin_set_accessible_label (data->combo, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5528
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5529 g_signal_connect(G_OBJECT(data->window), "response",
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5530 G_CALLBACK(add_buddy_cb), data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5531
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5532 gtk_widget_show_all(data->window);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5533
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5534 if (group != NULL)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5535 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(data->combo)->entry), group);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5536 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5537
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5538 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5539 add_chat_cb(GtkWidget *w, PidginAddChatData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5540 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5541 GHashTable *components;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5542 GList *tmp;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5543 PurpleChat *chat;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5544 PurpleGroup *group;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5545 const char *group_name;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5546 const char *value;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5547
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5548 components = g_hash_table_new_full(g_str_hash, g_str_equal,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5549 g_free, g_free);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5550
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5551 for (tmp = data->entries; tmp; tmp = tmp->next)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5552 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5553 if (g_object_get_data(tmp->data, "is_spin"))
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5554 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5555 g_hash_table_replace(components,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5556 g_strdup(g_object_get_data(tmp->data, "identifier")),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5557 g_strdup_printf("%d",
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5558 gtk_spin_button_get_value_as_int(tmp->data)));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5559 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5560 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5561 {
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5562 value = gtk_entry_get_text(tmp->data);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5563 if (*value != '\0')
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5564 g_hash_table_replace(components,
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5565 g_strdup(g_object_get_data(tmp->data, "identifier")),
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5566 g_strdup(value));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5567 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5568 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5569
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5570 chat = purple_chat_new(data->account,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5571 gtk_entry_get_text(GTK_ENTRY(data->alias_entry)),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5572 components);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5573
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5574 group_name = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(data->group_combo)->entry));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5575
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5576 if ((group = purple_find_group(group_name)) == NULL)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5577 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5578 group = purple_group_new(group_name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5579 purple_blist_add_group(group, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5580 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5581
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5582 if (chat != NULL)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5583 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5584 purple_blist_add_chat(chat, group, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5585 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5586
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5587 gtk_widget_destroy(data->window);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5588 g_free(data->default_chat_name);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5589 g_list_free(data->entries);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5590 g_free(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5591 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5592
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5593 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5594 add_chat_resp_cb(GtkWidget *w, int resp, PidginAddChatData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5595 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5596 if (resp == GTK_RESPONSE_OK)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5597 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5598 add_chat_cb(NULL, data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5599 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5600 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5601 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5602 gtk_widget_destroy(data->window);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5603 g_free(data->default_chat_name);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5604 g_list_free(data->entries);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5605 g_free(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5606 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5607 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5608
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5609 /*
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5610 * Check the values of all the text entry boxes. If any required input
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5611 * strings are empty then don't allow the user to click on "OK."
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5612 */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5613 static void
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5614 addchat_set_sensitive_if_input_cb(GtkWidget *entry, gpointer user_data)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5615 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5616 PidginAddChatData *data;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5617 GList *tmp;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5618 const char *text;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5619 gboolean required;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5620 gboolean sensitive = TRUE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5621
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5622 data = user_data;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5623
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5624 for (tmp = data->entries; tmp != NULL; tmp = tmp->next)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5625 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5626 if (!g_object_get_data(tmp->data, "is_spin"))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5627 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5628 required = GPOINTER_TO_INT(g_object_get_data(tmp->data, "required"));
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5629 text = gtk_entry_get_text(tmp->data);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5630 if (required && (*text == '\0'))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5631 sensitive = FALSE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5632 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5633 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5634
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5635 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), GTK_RESPONSE_OK, sensitive);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5636 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5637
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5638 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5639 rebuild_addchat_entries(PidginAddChatData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5640 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5641 PurpleConnection *gc;
15051
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
5642 GList *list = NULL, *tmp;
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5643 GHashTable *defaults = NULL;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5644 struct proto_chat_entry *pce;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5645 gboolean focus = TRUE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5646
10127
3ea502c95653 [gaim-migrate @ 11165]
Daniel Atallah <datallah@pidgin.im>
parents: 10118
diff changeset
5647 g_return_if_fail(data->account != NULL);
3ea502c95653 [gaim-migrate @ 11165]
Daniel Atallah <datallah@pidgin.im>
parents: 10118
diff changeset
5648
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5649 gc = purple_account_get_connection(data->account);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5650
15051
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
5651 while ((tmp = gtk_container_get_children(GTK_CONTAINER(data->entries_box))))
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
5652 gtk_widget_destroy(tmp->data);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5653
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5654 g_list_free(data->entries);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5655
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5656 data->entries = NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5657
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5658 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info != NULL)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5659 list = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5660
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5661 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5662 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, data->default_chat_name);
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5663
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5664 for (tmp = list; tmp; tmp = tmp->next)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5665 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5666 GtkWidget *label;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5667 GtkWidget *rowbox;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5668 GtkWidget *input;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5669
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5670 pce = tmp->data;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5671
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5672 rowbox = gtk_hbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5673 gtk_box_pack_start(GTK_BOX(data->entries_box), rowbox, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5674
7889
34cc5467bf55 [gaim-migrate @ 8547]
Nathan Walp <nwalp@pidgin.im>
parents: 7887
diff changeset
5675 label = gtk_label_new_with_mnemonic(pce->label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5676 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5677 gtk_size_group_add_widget(data->sg, label);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5678 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5679
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5680 if (pce->is_int)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5681 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5682 GtkObject *adjust;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5683 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5684 1, 10, 10);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5685 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5686 gtk_widget_set_size_request(input, 50, -1);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5687 gtk_box_pack_end(GTK_BOX(rowbox), input, FALSE, FALSE, 0);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5688 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5689 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5690 {
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5691 char *value;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5692 input = gtk_entry_new();
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5693 gtk_entry_set_activates_default(GTK_ENTRY(input), TRUE);
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5694 value = g_hash_table_lookup(defaults, pce->identifier);
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5695 if (value != NULL)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5696 gtk_entry_set_text(GTK_ENTRY(input), value);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5697 if (pce->secret)
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11983
diff changeset
5698 {
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5699 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE);
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15386
diff changeset
5700 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*')
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5701 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR);
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11983
diff changeset
5702 }
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5703 gtk_box_pack_end(GTK_BOX(rowbox), input, TRUE, TRUE, 0);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5704 g_signal_connect(G_OBJECT(input), "changed",
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5705 G_CALLBACK(addchat_set_sensitive_if_input_cb), data);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5706 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5707
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5708 /* Do the following for any type of input widget */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5709 if (focus)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5710 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5711 gtk_widget_grab_focus(input);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5712 focus = FALSE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5713 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5714 gtk_label_set_mnemonic_widget(GTK_LABEL(label), input);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5715 pidgin_set_accessible_label(input, label);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
5716 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5717 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int));
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5718 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required));
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5719 data->entries = g_list_append(data->entries, input);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5720
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5721 g_free(pce);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5722 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5723
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5724 g_list_free(list);
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5725 g_hash_table_destroy(defaults);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5726
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5727 /* Set whether the "OK" button should be clickable initially */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5728 addchat_set_sensitive_if_input_cb(NULL, data);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5729
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5730 gtk_widget_show_all(data->entries_box);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5731 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5732
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5733 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5734 addchat_select_account_cb(GObject *w, PurpleAccount *account,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5735 PidginAddChatData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5736 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5737 if (strcmp(purple_account_get_protocol_id(data->account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5738 purple_account_get_protocol_id(account)) == 0)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5739 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5740 data->account = account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5741 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5742 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5743 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5744 data->account = account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5745 rebuild_addchat_entries(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5746 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5747 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5748
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
5749 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5750 pidgin_blist_request_add_chat(PurpleAccount *account, PurpleGroup *group,
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5751 const char *alias, const char *name)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5752 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5753 PidginAddChatData *data;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5754 PidginBuddyList *gtkblist;
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
5755 GList *l;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5756 PurpleConnection *gc;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5757 GtkWidget *label;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5758 GtkWidget *rowbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5759 GtkWidget *hbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5760 GtkWidget *vbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5761 GtkWidget *img;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5762
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5763 if (account != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5764 gc = purple_account_get_connection(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5765
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5766 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat == NULL) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5767 purple_notify_error(gc, NULL, _("This protocol does not support chat rooms."), NULL);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5768 return;
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5769 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5770 } else {
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5771 /* Find an account with chat capabilities */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5772 for (l = purple_connections_get_all(); l != NULL; l = l->next) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5773 gc = (PurpleConnection *)l->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5774
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5775 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat != NULL) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5776 account = purple_connection_get_account(gc);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5777 break;
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5778 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5779 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5780
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5781 if (account == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5782 purple_notify_error(NULL, NULL,
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5783 _("You are not currently signed on with any "
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5784 "protocols that have the ability to chat."), NULL);
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5785 return;
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5786 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5787 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5788
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5789 data = g_new0(PidginAddChatData, 1);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5790 data->account = account;
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5791 data->default_chat_name = g_strdup(name);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5792
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
5793 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
5794 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5795
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5796 gtkblist = PIDGIN_BLIST(purple_get_blist());
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5797
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5798 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5799
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5800 data->window = gtk_dialog_new_with_buttons(_("Add Chat"),
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5801 NULL, GTK_DIALOG_NO_SEPARATOR,
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5802 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5803 GTK_STOCK_ADD, GTK_RESPONSE_OK,
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5804 NULL);
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5805
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5806 gtk_dialog_set_default_response(GTK_DIALOG(data->window), GTK_RESPONSE_OK);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5807 gtk_container_set_border_width(GTK_CONTAINER(data->window), PIDGIN_HIG_BOX_SPACE);
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5808 gtk_window_set_resizable(GTK_WINDOW(data->window), FALSE);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5809 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BORDER);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5810 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BOX_SPACE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5811 gtk_window_set_role(GTK_WINDOW(data->window), "add_chat");
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5812 gtk_window_set_type_hint(GTK_WINDOW(data->window),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5813 GDK_WINDOW_TYPE_HINT_DIALOG);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5814
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5815 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5816 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5817 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5818 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5819
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5820 vbox = gtk_vbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5821 gtk_container_add(GTK_CONTAINER(hbox), vbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5822
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5823 label = gtk_label_new(
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5824 _("Please enter an alias, and the appropriate information "
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5825 "about the chat you would like to add to your buddy list.\n"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5826 gtk_widget_set_size_request(label, 400, -1);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5827 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5828 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5829 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5830
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5831 rowbox = gtk_hbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5832 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5833
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5834 label = gtk_label_new_with_mnemonic(_("_Account:"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5835 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5836 gtk_size_group_add_widget(data->sg, label);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5837 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5838
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5839 data->account_menu = pidgin_account_option_menu_new(account, FALSE,
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5840 G_CALLBACK(addchat_select_account_cb),
9987
2396bd099335 [gaim-migrate @ 10900]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9959
diff changeset
5841 chat_account_filter_func, data);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5842 gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0);
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5843 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->account_menu);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5844 pidgin_set_accessible_label (data->account_menu, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5845
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5846 data->entries_box = gtk_vbox_new(FALSE, 5);
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5847 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5848 gtk_box_pack_start(GTK_BOX(vbox), data->entries_box, TRUE, TRUE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5849
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5850 rebuild_addchat_entries(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5851
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5852 rowbox = gtk_hbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5853 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5854
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5855 label = gtk_label_new_with_mnemonic(_("A_lias:"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5856 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5857 gtk_size_group_add_widget(data->sg, label);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5858 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5859
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5860 data->alias_entry = gtk_entry_new();
7859
b0f646df7125 [gaim-migrate @ 8513]
Mark Doliner <markdoliner@pidgin.im>
parents: 7856
diff changeset
5861 if (alias != NULL)
b0f646df7125 [gaim-migrate @ 8513]
Mark Doliner <markdoliner@pidgin.im>
parents: 7856
diff changeset
5862 gtk_entry_set_text(GTK_ENTRY(data->alias_entry), alias);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5863 gtk_box_pack_end(GTK_BOX(rowbox), data->alias_entry, TRUE, TRUE, 0);
10311
2380cae46dbd [gaim-migrate @ 11505]
Andrew Hart <arhart@users.sourceforge.net>
parents: 10297
diff changeset
5864 gtk_entry_set_activates_default(GTK_ENTRY(data->alias_entry), TRUE);
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5865 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->alias_entry);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5866 pidgin_set_accessible_label (data->alias_entry, label);
17400
f09b952bdbeb Closes #348 'Conversation -> Add (for Chats) should move focus to the alias field.'
Sean Egan <seanegan@pidgin.im>
parents: 17180
diff changeset
5867 if (name != NULL)
f09b952bdbeb Closes #348 'Conversation -> Add (for Chats) should move focus to the alias field.'
Sean Egan <seanegan@pidgin.im>
parents: 17180
diff changeset
5868 gtk_widget_grab_focus(data->alias_entry);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5869
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5870 rowbox = gtk_hbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5871 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5872
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5873 label = gtk_label_new_with_mnemonic(_("_Group:"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5874 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5875 gtk_size_group_add_widget(data->sg, label);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5876 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5877
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5878 data->group_combo = gtk_combo_new();
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5879 gtk_combo_set_popdown_strings(GTK_COMBO(data->group_combo), groups_tree());
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5880 gtk_box_pack_end(GTK_BOX(rowbox), data->group_combo, TRUE, TRUE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5881
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5882 if (group)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5883 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5884 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(data->group_combo)->entry),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5885 group->name);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5886 }
17556
f7298bd5f621 Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17542
diff changeset
5887 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_COMBO(data->group_combo)->entry);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5888 pidgin_set_accessible_label (data->group_combo, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5889
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5890 g_signal_connect(G_OBJECT(data->window), "response",
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5891 G_CALLBACK(add_chat_resp_cb), data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5892
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5893 gtk_widget_show_all(data->window);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5894 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5895
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5896 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5897 add_group_cb(PurpleConnection *gc, const char *group_name)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5898 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5899 PurpleGroup *group;
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9236
diff changeset
5900
12458
c1bb7ec2fb26 [gaim-migrate @ 14767]
Mark Doliner <markdoliner@pidgin.im>
parents: 12450
diff changeset
5901 if ((group_name == NULL) || (*group_name == '\0'))
c1bb7ec2fb26 [gaim-migrate @ 14767]
Mark Doliner <markdoliner@pidgin.im>
parents: 12450
diff changeset
5902 return;
c1bb7ec2fb26 [gaim-migrate @ 14767]
Mark Doliner <markdoliner@pidgin.im>
parents: 12450
diff changeset
5903
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5904 group = purple_group_new(group_name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5905 purple_blist_add_group(group, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5906 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5907
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
5908 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5909 pidgin_blist_request_add_group(void)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5910 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5911 purple_request_input(NULL, _("Add Group"), NULL,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5912 _("Please enter the name of the group to be added."),
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8592
diff changeset
5913 NULL, FALSE, FALSE, NULL,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5914 _("Add"), G_CALLBACK(add_group_cb),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16357
diff changeset
5915 _("Cancel"), NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16357
diff changeset
5916 NULL, NULL, NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16357
diff changeset
5917 NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5918 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5919
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5920 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5921 pidgin_blist_toggle_visibility()
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5922 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5923 if (gtkblist && gtkblist->window) {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5924 if (GTK_WIDGET_VISIBLE(gtkblist->window)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5925 purple_blist_set_visible(PIDGIN_WINDOW_ICONIFIED(gtkblist->window) || gtk_blist_obscured);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5926 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5927 purple_blist_set_visible(TRUE);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5928 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5929 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5930 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5931
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5932 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5933 pidgin_blist_visibility_manager_add()
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5934 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5935 visibility_manager_count++;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5936 purple_debug_info("gtkblist", "added visibility manager: %d\n", visibility_manager_count);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5937 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5938
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5939 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5940 pidgin_blist_visibility_manager_remove()
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5941 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5942 if (visibility_manager_count)
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5943 visibility_manager_count--;
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5944 if (!visibility_manager_count)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5945 purple_blist_set_visible(TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5946 purple_debug_info("gtkblist", "removed visibility manager: %d\n", visibility_manager_count);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5947 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5948
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5949 void pidgin_blist_add_alert(GtkWidget *widget)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
5950 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
5951 gtk_container_add(GTK_CONTAINER(gtkblist->scrollbook), widget);
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
5952 if (!GTK_WIDGET_HAS_FOCUS(gtkblist->window))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5953 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), TRUE);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
5954 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
5955
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5956 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5957 pidgin_blist_set_headline(const char *text, GdkPixbuf *pixbuf, GCallback callback,
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5958 gpointer user_data, GDestroyNotify destroy)
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5959 {
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5960 /* Destroy any existing headline first */
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5961 if (gtkblist->headline_destroy)
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5962 gtkblist->headline_destroy(gtkblist->headline_data);
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5963
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
5964 gtk_label_set_markup(GTK_LABEL(gtkblist->headline_label), text);
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
5965 gtk_image_set_from_pixbuf(GTK_IMAGE(gtkblist->headline_image), pixbuf);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
5966
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5967 gtkblist->headline_callback = callback;
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5968 gtkblist->headline_data = user_data;
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5969 gtkblist->headline_destroy = destroy;
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
5970 if (!GTK_WIDGET_HAS_FOCUS(gtkblist->window))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5971 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), TRUE);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5972 gtk_widget_show_all(gtkblist->headline_hbox);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5973 }
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5974
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5975 static PurpleBlistUiOps blist_ui_ops =
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5976 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5977 pidgin_blist_new_list,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5978 pidgin_blist_new_node,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5979 pidgin_blist_show,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5980 pidgin_blist_update,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5981 pidgin_blist_remove,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5982 pidgin_blist_destroy,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5983 pidgin_blist_set_visible,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5984 pidgin_blist_request_add_buddy,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5985 pidgin_blist_request_add_chat,
16752
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16625
diff changeset
5986 pidgin_blist_request_add_group,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16625
diff changeset
5987 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16625
diff changeset
5988 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16625
diff changeset
5989 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16625
diff changeset
5990 NULL
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5991 };
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5992
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5993
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5994 PurpleBlistUiOps *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5995 pidgin_blist_get_ui_ops(void)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5996 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5997 return &blist_ui_ops;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5998 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5999
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6000 PidginBuddyList *pidgin_blist_get_default_gtk_blist()
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10623
diff changeset
6001 {
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
6002 return gtkblist;
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10623
diff changeset
6003 }
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10623
diff changeset
6004
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6005 static void account_signon_cb(PurpleConnection *gc, gpointer z)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6006 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6007 PurpleAccount *account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6008 PurpleBlistNode *gnode, *cnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6009 for(gnode = purple_get_blist()->root; gnode; gnode = gnode->next)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6010 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6011 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6012 continue;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6013 for(cnode = gnode->child; cnode; cnode = cnode->next)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6014 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6015 PurpleChat *chat;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6016
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6017 if(!PURPLE_BLIST_NODE_IS_CHAT(cnode))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6018 continue;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6019
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6020 chat = (PurpleChat *)cnode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6021
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6022 if(chat->account != account)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6023 continue;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6024
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6025 if(purple_blist_node_get_bool((PurpleBlistNode*)chat, "gtk-autojoin") ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6026 (purple_blist_node_get_string((PurpleBlistNode*)chat,
8198
867abd109161 [gaim-migrate @ 8921]
Nathan Walp <nwalp@pidgin.im>
parents: 8197
diff changeset
6027 "gtk-autojoin") != NULL))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6028 serv_join_chat(gc, chat->components);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6029 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6030 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6031 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6032
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6033 void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6034 pidgin_blist_get_handle() {
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6035 static int handle;
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6036
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6037 return &handle;
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6038 }
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6039
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6040 static gboolean buddy_signonoff_timeout_cb(PurpleBuddy *buddy)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6041 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6042 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode*)buddy)->ui_data;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6043
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6044 gtknode->recent_signonoff = FALSE;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6045 gtknode->recent_signonoff_timer = 0;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6046
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6047 pidgin_blist_update(NULL, (PurpleBlistNode*)buddy);
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6048
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6049 return FALSE;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6050 }
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6051
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6052 static void buddy_signonoff_cb(PurpleBuddy *buddy)
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6053 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6054 struct _pidgin_blist_node *gtknode;
11915
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
6055
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6056 if(!((PurpleBlistNode*)buddy)->ui_data) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6057 pidgin_blist_new_node((PurpleBlistNode*)buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6058 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6059
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6060 gtknode = ((PurpleBlistNode*)buddy)->ui_data;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6061
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6062 gtknode->recent_signonoff = TRUE;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6063
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6064 if(gtknode->recent_signonoff_timer > 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6065 purple_timeout_remove(gtknode->recent_signonoff_timer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6066 gtknode->recent_signonoff_timer = purple_timeout_add(10000,
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6067 (GSourceFunc)buddy_signonoff_timeout_cb, buddy);
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6068 }
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
6069
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6070 void pidgin_blist_init(void)
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6071 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6072 void *gtk_blist_handle = pidgin_blist_get_handle();
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6073
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6074 purple_signal_connect(purple_connections_get_handle(), "signed-on",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6075 gtk_blist_handle, PURPLE_CALLBACK(account_signon_cb),
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6076 NULL);
7731
7c3bb30a94c4 [gaim-migrate @ 8376]
Nathan Walp <nwalp@pidgin.im>
parents: 7723
diff changeset
6077
7c3bb30a94c4 [gaim-migrate @ 8376]
Nathan Walp <nwalp@pidgin.im>
parents: 7723
diff changeset
6078 /* Initialize prefs */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6079 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/blist");
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6080 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons", TRUE);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6081 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups", FALSE);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6082 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time", TRUE);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6083 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies", FALSE);
16162
5c3fb6457918 For a first time user, don't show the buddy list telling him to go to Accounts>Add/Edit, because Accounts->Add/Edit is already open with its own instructions. Show only one window with instructions and then present the Buddy List when you create your first account.
Sean Egan <seanegan@pidgin.im>
parents: 16160
diff changeset
6084 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", FALSE);
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6085 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", FALSE);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6086 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/blist/sort_type", "alphabetical");
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6087 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/x", 0);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6088 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/y", 0);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6089 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/width", 250); /* Golden ratio, baby */
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6090 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/height", 405); /* Golden ratio, baby */
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6091 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/tooltip_delay", 500);
7731
7c3bb30a94c4 [gaim-migrate @ 8376]
Nathan Walp <nwalp@pidgin.im>
parents: 7723
diff changeset
6092
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6093 /* Register our signals */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6094 purple_signal_register(gtk_blist_handle, "gtkblist-hiding",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6095 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6096 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6097 PURPLE_SUBTYPE_BLIST));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6098
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6099 purple_signal_register(gtk_blist_handle, "gtkblist-unhiding",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6100 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6101 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6102 PURPLE_SUBTYPE_BLIST));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6103
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6104 purple_signal_register(gtk_blist_handle, "gtkblist-created",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6105 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6106 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6107 PURPLE_SUBTYPE_BLIST));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6108
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6109 purple_signal_register(gtk_blist_handle, "drawing-tooltip",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6110 purple_marshal_VOID__POINTER_POINTER_UINT, NULL, 3,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6111 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6112 PURPLE_SUBTYPE_BLIST_NODE),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6113 purple_value_new_outgoing(PURPLE_TYPE_BOXED, "GString *"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6114 purple_value_new(PURPLE_TYPE_BOOLEAN));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6115
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6116
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6117 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6118 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6119 purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed", gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6120 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6121
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6122 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6123 pidgin_blist_uninit(void) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6124 purple_signals_unregister_by_instance(pidgin_blist_get_handle());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6125 purple_signals_disconnect_by_handle(pidgin_blist_get_handle());
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6126 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6127
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6128 /*********************************************************************
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
6129 * Buddy List sorting functions *
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6130 *********************************************************************/
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6131
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6132 GList *pidgin_blist_get_sort_methods()
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6133 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6134 return pidgin_blist_sort_methods;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6135 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6136
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6137 void pidgin_blist_sort_method_reg(const char *id, const char *name, pidgin_blist_sort_function func)
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6138 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6139 struct pidgin_blist_sort_method *method = g_new0(struct pidgin_blist_sort_method, 1);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6140 method->id = g_strdup(id);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6141 method->name = g_strdup(name);
9775
e3a3555b0621 [gaim-migrate @ 10643]
Daniel Atallah <datallah@pidgin.im>
parents: 9774
diff changeset
6142 method->func = func;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6143 pidgin_blist_sort_methods = g_list_append(pidgin_blist_sort_methods, method);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6144 pidgin_blist_update_sort_methods();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6145 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6146
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6147 void pidgin_blist_sort_method_unreg(const char *id){
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6148 GList *l = pidgin_blist_sort_methods;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6149
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6150 while(l) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6151 struct pidgin_blist_sort_method *method = l->data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6152 if(!strcmp(method->id, id)) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6153 pidgin_blist_sort_methods = g_list_delete_link(pidgin_blist_sort_methods, l);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6154 g_free(method->id);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6155 g_free(method->name);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6156 g_free(method);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6157 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6158 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6159 }
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6160 pidgin_blist_update_sort_methods();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6161 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6162
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6163 void pidgin_blist_sort_method_set(const char *id){
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6164 GList *l = pidgin_blist_sort_methods;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6165
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6166 if(!id)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6167 id = "none";
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6168
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6169 while (l && strcmp(((struct pidgin_blist_sort_method*)l->data)->id, id))
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6170 l = l->next;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6171
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6172 if (l) {
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6173 current_sort_method = l->data;
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6174 } else if (!current_sort_method) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6175 pidgin_blist_sort_method_set("none");
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6176 return;
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6177 }
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
6178 if (!strcmp(id, "none")) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6179 redo_buddy_list(purple_get_blist(), TRUE, FALSE);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
6180 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6181 redo_buddy_list(purple_get_blist(), FALSE, FALSE);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
6182 }
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6183 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6184
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6185 /******************************************
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6186 ** Sort Methods
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6187 ******************************************/
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6188
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6189 static void sort_method_none(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter parent_iter, GtkTreeIter *cur, GtkTreeIter *iter)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6190 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6191 PurpleBlistNode *sibling = node->prev;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6192 GtkTreeIter sibling_iter;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6193
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6194 if (cur != NULL) {
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6195 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6196 return;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6197 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6198
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6199 while (sibling && !get_iter_from_node(sibling, &sibling_iter)) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6200 sibling = sibling->prev;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6201 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6202
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6203 gtk_tree_store_insert_after(gtkblist->treemodel, iter,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6204 node->parent ? &parent_iter : NULL,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6205 sibling ? &sibling_iter : NULL);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6206 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6207
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6208 #if GTK_CHECK_VERSION(2,2,1)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6209
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6210 static void sort_method_alphabetical(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter)
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6211 {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6212 GtkTreeIter more_z;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6213
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6214 const char *my_name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6215
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6216 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6217 my_name = purple_contact_get_alias((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6218 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6219 my_name = purple_chat_get_name((PurpleChat*)node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6220 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6221 sort_method_none(node, blist, groupiter, cur, iter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6222 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6223 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6224
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6225
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6226 if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, &groupiter)) {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6227 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6228 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6229 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6230
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6231 do {
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6232 GValue val;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6233 PurpleBlistNode *n;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6234 const char *this_name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6235 int cmp;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6236
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6237 val.g_type = 0;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6238 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6239 n = g_value_get_pointer(&val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6240
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6241 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6242 this_name = purple_contact_get_alias((PurpleContact*)n);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6243 } else if(PURPLE_BLIST_NODE_IS_CHAT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6244 this_name = purple_chat_get_name((PurpleChat*)n);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6245 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6246 this_name = NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6247 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6248
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6249 cmp = purple_utf8_strcasecmp(my_name, this_name);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6250
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6251 if(this_name && (cmp < 0 || (cmp == 0 && node < n))) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6252 if(cur) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6253 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6254 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6255 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6256 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6257 gtk_tree_store_insert_before(gtkblist->treemodel, iter,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6258 &groupiter, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6259 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6260 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6261 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6262 g_value_unset(&val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6263 } while (gtk_tree_model_iter_next (GTK_TREE_MODEL(gtkblist->treemodel), &more_z));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6264
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6265 if(cur) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6266 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6267 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6268 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6269 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6270 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6271 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6272 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6273 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6274
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6275 static void sort_method_status(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6276 {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6277 GtkTreeIter more_z;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6278
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6279 PurpleBuddy *my_buddy, *this_buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6280
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6281 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6282 my_buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6283 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6284 if (cur != NULL) {
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6285 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6286 return;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6287 }
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6288
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6289 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6290 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6291 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6292 sort_method_none(node, blist, groupiter, cur, iter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6293 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6294 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6295
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6296
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6297 if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, &groupiter)) {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6298 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6299 return;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6300 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6301
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6302 do {
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6303 GValue val;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6304 PurpleBlistNode *n;
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6305 gint name_cmp;
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6306 gint presence_cmp;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6307
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6308 val.g_type = 0;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6309 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &val);
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6310 n = g_value_get_pointer(&val);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6311
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6312 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6313 this_buddy = purple_contact_get_priority_buddy((PurpleContact*)n);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6314 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6315 this_buddy = NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6316 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6317
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6318 name_cmp = purple_utf8_strcasecmp(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6319 purple_contact_get_alias(purple_buddy_get_contact(my_buddy)),
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6320 (this_buddy
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6321 ? purple_contact_get_alias(purple_buddy_get_contact(this_buddy))
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6322 : NULL));
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6323
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6324 presence_cmp = purple_presence_compare(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6325 purple_buddy_get_presence(my_buddy),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6326 this_buddy ? purple_buddy_get_presence(this_buddy) : NULL);
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6327
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6328 if (this_buddy == NULL ||
10860
8f600347b9e4 [gaim-migrate @ 12543]
Palmer Cox <enix@users.sourceforge.net>
parents: 10850
diff changeset
6329 (presence_cmp < 0 ||
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6330 (presence_cmp == 0 &&
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6331 (name_cmp < 0 || (name_cmp == 0 && node < n)))))
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6332 {
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6333 if (cur != NULL)
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6334 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6335 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6336 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6337 return;
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6338 }
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6339 else
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6340 {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6341 gtk_tree_store_insert_before(gtkblist->treemodel, iter,
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6342 &groupiter, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6343 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6344 }
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6345 }
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6346
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6347 g_value_unset(&val);
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6348 }
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6349 while (gtk_tree_model_iter_next(GTK_TREE_MODEL(gtkblist->treemodel),
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6350 &more_z));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6351
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6352 if (cur) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6353 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6354 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6355 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6356 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6357 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6358 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6359 }
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6360 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6361
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6362 static void sort_method_log(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter)
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6363 {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6364 GtkTreeIter more_z;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6365
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6366 int log_size = 0, this_log_size = 0;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6367 const char *buddy_name, *this_buddy_name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6368
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6369 if(cur && (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gtkblist->treemodel), &groupiter) == 1)) {
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6370 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6371 return;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6372 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6373
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6374 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6375 PurpleBlistNode *n;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6376 for (n = node->child; n; n = n->next)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6377 log_size += purple_log_get_total_size(PURPLE_LOG_IM, ((PurpleBuddy*)(n))->name, ((PurpleBuddy*)(n))->account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6378 buddy_name = purple_contact_get_alias((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6379 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6380 /* we don't have a reliable way of getting the log filename
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6381 * from the chat info in the blist, yet */
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6382 if (cur != NULL) {
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6383 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6384 return;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6385 }
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6386
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6387 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6388 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6389 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6390 sort_method_none(node, blist, groupiter, cur, iter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6391 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6392 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6393
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6394
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6395 if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, &groupiter)) {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6396 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6397 return;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6398 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6399
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6400 do {
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6401 GValue val;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6402 PurpleBlistNode *n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6403 PurpleBlistNode *n2;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6404 int cmp;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6405
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6406 val.g_type = 0;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6407 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &val);
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6408 n = g_value_get_pointer(&val);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6409 this_log_size = 0;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6410
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6411 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6412 for (n2 = n->child; n2; n2 = n2->next)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6413 this_log_size += purple_log_get_total_size(PURPLE_LOG_IM, ((PurpleBuddy*)(n2))->name, ((PurpleBuddy*)(n2))->account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6414 this_buddy_name = purple_contact_get_alias((PurpleContact*)n);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6415 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6416 this_buddy_name = NULL;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6417 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6418
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6419 cmp = purple_utf8_strcasecmp(buddy_name, this_buddy_name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6420
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6421 if (!PURPLE_BLIST_NODE_IS_CONTACT(n) || log_size > this_log_size ||
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6422 ((log_size == this_log_size) &&
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6423 (cmp < 0 || (cmp == 0 && node < n)))) {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6424 if (cur != NULL) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6425 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6426 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6427 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6428 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6429 gtk_tree_store_insert_before(gtkblist->treemodel, iter,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6430 &groupiter, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6431 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6432 }
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6433 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6434 g_value_unset(&val);
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6435 } while (gtk_tree_model_iter_next (GTK_TREE_MODEL(gtkblist->treemodel), &more_z));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6436
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6437 if (cur != NULL) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6438 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6439 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6440 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6441 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6442 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6443 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6444 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6445 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6446
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6447 #endif
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6448
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6449 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6450 plugin_act(GtkObject *obj, PurplePluginAction *pam)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6451 {
13197
734f8ef469b8 [gaim-migrate @ 15559]
Gary Kramlich <grim@reaperworld.com>
parents: 13196
diff changeset
6452 if (pam && pam->callback)
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
6453 pam->callback(pam);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6454 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6455
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6456 static void
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6457 build_plugin_actions(GtkWidget *menu, PurplePlugin *plugin,
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6458 gpointer context)
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6459 {
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6460 GtkWidget *menuitem;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6461 PurplePluginAction *action = NULL;
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6462 GList *actions, *l;
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6463
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6464 actions = PURPLE_PLUGIN_ACTIONS(plugin, context);
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6465
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6466 for (l = actions; l != NULL; l = l->next)
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6467 {
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6468 if (l->data)
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6469 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6470 action = (PurplePluginAction *) l->data;
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6471 action->plugin = plugin;
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6472 action->context = context;
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6473
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6474 menuitem = gtk_menu_item_new_with_label(action->label);
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6475 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6476
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6477 g_signal_connect(G_OBJECT(menuitem), "activate",
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6478 G_CALLBACK(plugin_act), action);
13197
734f8ef469b8 [gaim-migrate @ 15559]
Gary Kramlich <grim@reaperworld.com>
parents: 13196
diff changeset
6479 g_object_set_data_full(G_OBJECT(menuitem), "plugin_action",
734f8ef469b8 [gaim-migrate @ 15559]
Gary Kramlich <grim@reaperworld.com>
parents: 13196
diff changeset
6480 action,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6481 (GDestroyNotify)purple_plugin_action_free);
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6482 gtk_widget_show(menuitem);
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6483 }
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6484 else
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
6485 pidgin_separator(menu);
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6486 }
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6487
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6488 g_list_free(actions);
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6489 }
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6490
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6491 static void
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6492 modify_account_cb(GtkWidget *widget, gpointer data)
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6493 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6494 pidgin_account_dialog_show(PIDGIN_MODIFY_ACCOUNT_DIALOG, data);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6495 }
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6496
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6497 static void
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6498 enable_account_cb(GtkCheckMenuItem *widget, gpointer data)
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6499 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6500 PurpleAccount *account = data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6501 const PurpleSavedStatus *saved_status;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6502
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6503 saved_status = purple_savedstatus_get_current();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6504 purple_savedstatus_activate_for_account(saved_status, account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6505
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6506 purple_account_set_enabled(account, PIDGIN_UI, TRUE);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6507 }
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6508
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6509 static void
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6510 disable_account_cb(GtkCheckMenuItem *widget, gpointer data)
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6511 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6512 PurpleAccount *account = data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6513
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6514 purple_account_set_enabled(account, PIDGIN_UI, FALSE);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6515 }
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6516
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6517 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6518 pidgin_blist_update_accounts_menu(void)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6519 {
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6520 GtkWidget *menuitem = NULL, *submenu = NULL;
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6521 GtkAccelGroup *accel_group = NULL;
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
6522 GList *l = NULL, *accounts = NULL;
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6523 gboolean disabled_accounts = FALSE;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6524
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6525 if (accountmenu == NULL)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6526 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6527
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6528 /* Clear the old Accounts menu */
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6529 for (l = gtk_container_get_children(GTK_CONTAINER(accountmenu)); l; l = l->next) {
12348
847b6a8f2d07 [gaim-migrate @ 14652]
Etan Reisner <deryni@pidgin.im>
parents: 12341
diff changeset
6530 menuitem = l->data;
847b6a8f2d07 [gaim-migrate @ 14652]
Etan Reisner <deryni@pidgin.im>
parents: 12341
diff changeset
6531
847b6a8f2d07 [gaim-migrate @ 14652]
Etan Reisner <deryni@pidgin.im>
parents: 12341
diff changeset
6532 if (menuitem != gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts/Add\\/Edit")))
15050
f99d78ac44e9 [gaim-migrate @ 17767]
Daniel Atallah <datallah@pidgin.im>
parents: 14914
diff changeset
6533 gtk_widget_destroy(menuitem);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6534 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6535
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6536 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) {
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6537 char *buf = NULL;
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6538 char *accel_path_buf = NULL;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6539 GtkWidget *image = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6540 PurpleConnection *gc = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6541 PurpleAccount *account = NULL;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6542 GdkPixbuf *pixbuf = NULL;
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6543 PurplePlugin *plugin = NULL;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6544
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6545 account = accounts->data;
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6546 accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu));
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6547
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6548 if(purple_account_get_enabled(account, PIDGIN_UI)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6549 buf = g_strconcat(purple_account_get_username(account), " (",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6550 purple_account_get_protocol_name(account), ")", NULL);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6551 menuitem = gtk_image_menu_item_new_with_label(buf);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6552 accel_path_buf = g_strconcat(N_("<PurpleMain>/Accounts/"), buf, NULL);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6553 g_free(buf);
15799
ba7af742a0d1 Change some old, busted status icon stuff to use the new hotness
Sean Egan <seanegan@pidgin.im>
parents: 15769
diff changeset
6554 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6555 if (pixbuf != NULL)
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6556 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6557 if (!purple_account_is_connected(account))
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6558 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf,
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6559 0.0, FALSE);
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6560 image = gtk_image_new_from_pixbuf(pixbuf);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6561 g_object_unref(G_OBJECT(pixbuf));
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6562 gtk_widget_show(image);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6563 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6564 }
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6565 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6566 gtk_widget_show(menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6567
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6568 submenu = gtk_menu_new();
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6569 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group);
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6570 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf);
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6571 g_free(accel_path_buf);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6572 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6573 gtk_widget_show(submenu);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6574
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6575
12334
f88c9f928f51 [gaim-migrate @ 14638]
Mark Doliner <markdoliner@pidgin.im>
parents: 12333
diff changeset
6576 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account"));
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6577 g_signal_connect(G_OBJECT(menuitem), "activate",
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6578 G_CALLBACK(modify_account_cb), account);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6579 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6580 gtk_widget_show(menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6581
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
6582 pidgin_separator(submenu);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6583
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6584 gc = purple_account_get_connection(account);
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6585 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL;
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6586 if (plugin && PURPLE_PLUGIN_HAS_ACTIONS(plugin)) {
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6587 build_plugin_actions(submenu, plugin, gc);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6588 } else {
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6589 menuitem = gtk_menu_item_new_with_label(_("No actions available"));
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6590 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6591 gtk_widget_set_sensitive(menuitem, FALSE);
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6592 gtk_widget_show(menuitem);
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6593 }
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6594
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
6595 pidgin_separator(submenu);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6596
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6597 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable"));
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6598 g_signal_connect(G_OBJECT(menuitem), "activate",
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6599 G_CALLBACK(disable_account_cb), account);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6600 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6601 gtk_widget_show(menuitem);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6602 } else {
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6603 disabled_accounts = TRUE;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6604 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6605 }
9019
b9a333b36763 [gaim-migrate @ 9795]
Mark Doliner <markdoliner@pidgin.im>
parents: 9015
diff changeset
6606
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6607 if(disabled_accounts) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
6608 pidgin_separator(accountmenu);
12338
3548ced0c9ff [gaim-migrate @ 14642]
Mark Doliner <markdoliner@pidgin.im>
parents: 12337
diff changeset
6609 menuitem = gtk_menu_item_new_with_label(_("Enable Account"));
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6610 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6611 gtk_widget_show(menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6612
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6613 submenu = gtk_menu_new();
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6614 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6615 gtk_menu_set_accel_path(GTK_MENU(submenu), N_("<PurpleMain>/Accounts/Enable Account"));
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6616 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6617 gtk_widget_show(submenu);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6618
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6619 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) {
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6620 char *buf = NULL;
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6621 GtkWidget *image = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6622 PurpleAccount *account = NULL;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6623 GdkPixbuf *pixbuf = NULL;
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6624
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6625 account = accounts->data;
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6626
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6627 if(!purple_account_get_enabled(account, PIDGIN_UI)) {
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6628
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6629 disabled_accounts = TRUE;
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6630
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6631 buf = g_strconcat(purple_account_get_username(account), " (",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6632 purple_account_get_protocol_name(account), ")", NULL);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6633 menuitem = gtk_image_menu_item_new_with_label(buf);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6634 g_free(buf);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6635 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6636 if (pixbuf != NULL)
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6637 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6638 if (!purple_account_is_connected(account))
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6639 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE);
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6640 image = gtk_image_new_from_pixbuf(pixbuf);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6641 g_object_unref(G_OBJECT(pixbuf));
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6642 gtk_widget_show(image);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6643 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6644 }
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6645 g_signal_connect(G_OBJECT(menuitem), "activate",
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6646 G_CALLBACK(enable_account_cb), account);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6647 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6648 gtk_widget_show(menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6649 }
9019
b9a333b36763 [gaim-migrate @ 9795]
Mark Doliner <markdoliner@pidgin.im>
parents: 9015
diff changeset
6650 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6651 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6652 }
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6653
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6654 static GList *plugin_submenus = NULL;
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6655
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6656 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6657 pidgin_blist_update_plugin_actions(void)
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6658 {
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6659 GtkWidget *menuitem, *submenu;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6660 PurplePlugin *plugin = NULL;
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6661 GList *l;
12464
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6662 GtkAccelGroup *accel_group;
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6663
11742
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6664 GtkWidget *pluginmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools"));
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6665
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6666 g_return_if_fail(pluginmenu != NULL);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6667
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6668 /* Remove old plugin action submenus from the Tools menu */
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6669 for (l = plugin_submenus; l; l = l->next)
15057
909e807e3070 [gaim-migrate @ 17774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15051
diff changeset
6670 gtk_widget_destroy(GTK_WIDGET(l->data));
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6671 g_list_free(plugin_submenus);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6672 plugin_submenus = NULL;
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6673
12464
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6674 accel_group = gtk_menu_get_accel_group(GTK_MENU(pluginmenu));
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6675
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6676 /* Add a submenu for each plugin with custom actions */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6677 for (l = purple_plugins_get_loaded(); l; l = l->next) {
12464
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6678 char *path;
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6679
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6680 plugin = (PurplePlugin *) l->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6681
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6682 if (PURPLE_IS_PROTOCOL_PLUGIN(plugin))
11742
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6683 continue;
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6684
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6685 if (!PURPLE_PLUGIN_HAS_ACTIONS(plugin))
11742
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6686 continue;
9019
b9a333b36763 [gaim-migrate @ 9795]
Mark Doliner <markdoliner@pidgin.im>
parents: 9015
diff changeset
6687
13337
1a425a37dcf7 [gaim-migrate @ 15706]
Richard Laager <rlaager@pidgin.im>
parents: 13316
diff changeset
6688 menuitem = gtk_image_menu_item_new_with_label(_(plugin->info->name));
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6689 gtk_menu_shell_append(GTK_MENU_SHELL(pluginmenu), menuitem);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6690 gtk_widget_show(menuitem);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6691
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6692 plugin_submenus = g_list_append(plugin_submenus, menuitem);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6693
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6694 submenu = gtk_menu_new();
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6695 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6696 gtk_widget_show(submenu);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
6697
12464
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6698 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group);
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6699 path = g_strdup_printf("%s/Tools/%s", gtkblist->ift->path, plugin->info->name);
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6700 gtk_menu_set_accel_path(GTK_MENU(submenu), path);
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6701 g_free(path);
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6702
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6703 build_plugin_actions(submenu, plugin, NULL);
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6704 }
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6705 }
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6706
12246
7af1ef3b1cc4 [gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents: 12240
diff changeset
6707 static void
7af1ef3b1cc4 [gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents: 12240
diff changeset
6708 sortmethod_act(GtkCheckMenuItem *checkmenuitem, char *id)
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6709 {
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6710 if (gtk_check_menu_item_get_active(checkmenuitem))
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6711 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6712 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
6713 /* This is redundant. I think. */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6714 /* pidgin_blist_sort_method_set(id); */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6715 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/blist/sort_type", id);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6716
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6717 pidgin_clear_cursor(gtkblist->window);
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6718 }
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6719 }
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6720
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6721 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6722 pidgin_blist_update_sort_methods(void)
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6723 {
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6724 GtkWidget *menuitem = NULL, *activeitem = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6725 PidginBlistSortMethod *method = NULL;
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6726 GList *l;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6727 GSList *sl = NULL;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6728 GtkWidget *sortmenu;
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
6729 const char *m = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/sort_type");
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6730
15286
ecc4149f47fb [gaim-migrate @ 18014]
Mark Doliner <markdoliner@pidgin.im>
parents: 15284
diff changeset
6731 if ((gtkblist == NULL) || (gtkblist->ift == NULL))
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6732 return;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6733
11798
481b46227443 [gaim-migrate @ 14089]
Etan Reisner <deryni@pidgin.im>
parents: 11797
diff changeset
6734 sortmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Sort Buddies"));
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6735
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6736 if (sortmenu == NULL)
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6737 return;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6738
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6739 /* Clear the old menu */
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6740 for (l = gtk_container_get_children(GTK_CONTAINER(sortmenu)); l; l = l->next) {
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6741 menuitem = l->data;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6742 gtk_widget_destroy(GTK_WIDGET(menuitem));
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6743 }
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6744
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6745 for (l = pidgin_blist_sort_methods; l; l = l->next) {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6746 method = (PidginBlistSortMethod *) l->data;
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6747 menuitem = gtk_radio_menu_item_new_with_label(sl, _(method->name));
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6748 if (!strcmp(m, method->id))
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6749 activeitem = menuitem;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6750 sl = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem));
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6751 gtk_menu_shell_append(GTK_MENU_SHELL(sortmenu), menuitem);
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6752 g_signal_connect(G_OBJECT(menuitem), "toggled",
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6753 G_CALLBACK(sortmethod_act), method->id);
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6754 gtk_widget_show(menuitem);
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6755 }
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6756 if (activeitem)
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6757 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(activeitem), TRUE);
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6758 }
17879
3e3f85138f1a merge of '87854ccfae544467c988edbac854c1ae2018eed4'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17748 17877
diff changeset
6759

mercurial