pidgin/gtkblist.c

Fri, 11 May 2007 15:46:32 +0000

author
Daniel Atallah <datallah@pidgin.im>
date
Fri, 11 May 2007 15:46:32 +0000
changeset 17086
4b6d59cdfaca
parent 17082
3316a891ffa9
child 17141
f7d7dbca47cd
permissions
-rw-r--r--

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.

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;
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
111
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
112 static GList *pidgin_blist_sort_methods = NULL;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
113 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
114 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
115
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
116 /* 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
117 * 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
118 #if GTK_CHECK_VERSION(2,2,1)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
119 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
120 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
121 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
122 #endif
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
123 static PidginBuddyList *gtkblist = NULL;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
124
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
125 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
126 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
127 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
128 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
129 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
130 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
131 static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
132 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
133 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
134 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
135 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
136 static char *pidgin_get_group_title(PurpleBlistNode *gnode, gboolean expanded);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
137
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
138 static void pidgin_blist_tooltip_destroy(void);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
139
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
140 struct _pidgin_blist_node {
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
141 GtkTreeRowReference *row;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
142 gboolean contact_expanded;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
143 gboolean recent_signonoff;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
144 gint recent_signonoff_timer;
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
145 };
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
146
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
147 static char dim_grey_string[8] = "";
10144
22c7584a403d [gaim-migrate @ 11216]
Mark Doliner <markdoliner@pidgin.im>
parents: 10129
diff changeset
148 static char *dim_grey()
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
149 {
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
150 if (!gtkblist)
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
151 return "dim grey";
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
152 if (!dim_grey_string[0]) {
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
153 GtkStyle *style = gtk_widget_get_style(gtkblist->treeview);
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
154 snprintf(dim_grey_string, sizeof(dim_grey_string), "#%02x%02x%02x",
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
155 style->text_aa[GTK_STATE_NORMAL].red >> 8,
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
156 style->text_aa[GTK_STATE_NORMAL].green >> 8,
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
157 style->text_aa[GTK_STATE_NORMAL].blue >> 8);
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
158 }
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
159 return dim_grey_string;
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
160 }
10144
22c7584a403d [gaim-migrate @ 11216]
Mark Doliner <markdoliner@pidgin.im>
parents: 10129
diff changeset
161
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
162 /***************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
163 * Callbacks *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
164 ***************************************************/
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
165 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
166 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
167 if (event->state == GDK_VISIBILITY_FULLY_OBSCURED)
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
168 gtk_blist_obscured = TRUE;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
169 else if (gtk_blist_obscured) {
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
170 gtk_blist_obscured = FALSE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
171 pidgin_blist_refresh_timer(purple_get_blist());
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
172 }
12016
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 /* continue to handle event normally */
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
175 return FALSE;
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
176 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
177
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
178 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
179 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
180 if(event->changed_mask & GDK_WINDOW_STATE_WITHDRAWN) {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
181 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
182 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
183 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
184 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
185 pidgin_blist_refresh_timer(purple_get_blist());
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
186 }
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
187 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
188
12279
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
189 if(event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) {
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
190 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
191 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
192 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
193 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
194 }
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
195
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
196 /* Refresh gtkblist if un-iconifying */
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
197 if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED){
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
198 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
199 pidgin_blist_refresh_timer(purple_get_blist());
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
200 }
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
201
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
202 return FALSE;
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
203 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
204
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
205 static gboolean gtk_blist_delete_cb(GtkWidget *w, GdkEventAny *event, gpointer data)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
206 {
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
207 if(visibility_manager_count)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
208 purple_blist_set_visible(FALSE);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
209 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
210 purple_core_quit();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
211
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
212 /* we handle everything, event should not propogate further */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
213 return TRUE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
214 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
215
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
216 static gboolean gtk_blist_configure_cb(GtkWidget *w, GdkEventConfigure *event, gpointer data)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
217 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
218 /* unfortunately GdkEventConfigure ignores the window gravity, but *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
219 * 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
220 * call get_position because it does pay attention to the gravity. *
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
221 * 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
222 * to work correctly. - Robot101 */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
223 gint x, y;
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 /* check for visibility because when we aren't visible, this will *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
226 * give us bogus (0,0) coordinates. - xOr */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
227 if (GTK_WIDGET_VISIBLE(w))
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
228 gtk_window_get_position(GTK_WINDOW(w), &x, &y);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
229 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
230 return FALSE; /* carry on normally */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
231
13768
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
232 #ifdef _WIN32
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
233 /* Workaround for GTK+ bug # 169811 - "configure_event" is fired
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
234 * when the window is being maximized */
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
235 if (gdk_window_get_state(w->window)
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
236 & GDK_WINDOW_STATE_MAXIMIZED) {
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
237 return FALSE;
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
238 }
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
239 #endif
4bf36498e887 [gaim-migrate @ 16178]
Daniel Atallah <datallah@pidgin.im>
parents: 13757
diff changeset
240
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
241 /* 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
242 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
243 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
244 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
245 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
246
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
247 return FALSE; /* carry on normally */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
248 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
249
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
250 /* don't save off-screen positioning */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
251 if (x + event->width < 0 ||
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
252 y + event->height < 0 ||
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
253 x > gdk_screen_width() ||
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
254 y > gdk_screen_height()) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
255
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
256 return FALSE; /* carry on normally */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
257 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
258
12279
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
259 /* 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
260 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
261 return FALSE;
9418540cb3bb [gaim-migrate @ 14583]
Casey Harkins <charkins@pidgin.im>
parents: 12246
diff changeset
262
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
263 /* 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
264 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
265 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
266 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
267 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
268
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
269 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
270 purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width")-25,-1);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
271 /* continue to handle event normally */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
272 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
273 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
274
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
275 static void gtk_blist_menu_info_cb(GtkWidget *w, PurpleBuddy *b)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
276 {
17027
cad1dc392f1a Fix ticket #387.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16950
diff changeset
277 PurpleNotifyUserInfo *info = purple_notify_user_info_new();
cad1dc392f1a Fix ticket #387.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16950
diff changeset
278 purple_notify_user_info_add_pair(info, _("Information"), _("Retrieving..."));
cad1dc392f1a Fix ticket #387.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16950
diff changeset
279 purple_notify_userinfo(b->account->gc, purple_buddy_get_name(b), info, NULL, NULL);
cad1dc392f1a Fix ticket #387.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16950
diff changeset
280 purple_notify_user_info_destroy(info);
cad1dc392f1a Fix ticket #387.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16950
diff changeset
281
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
282 serv_get_info(b->account->gc, b->name);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
283 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
284
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
285 static void gtk_blist_menu_im_cb(GtkWidget *w, PurpleBuddy *b)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
286 {
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
287 pidgin_dialogs_im_with_user(b->account, b->name);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
288 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
289
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
290 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
291 {
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
292 serv_send_file(b->account->gc, b->name, NULL);
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
293 }
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
294
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
295 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
296 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
297 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-autojoin",
7693
1f736efbd12d [gaim-migrate @ 8338]
Nathan Walp <nwalp@pidgin.im>
parents: 7662
diff changeset
298 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
299 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
300
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
301 static void gtk_blist_join_chat(PurpleChat *chat)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
302 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
303 PurpleConversation *conv;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
304
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
305 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
306 purple_chat_get_name(chat),
12576
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
307 chat->account);
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
308
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
309 if (conv != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
310 purple_conversation_present(conv);
12592
5e1ce1a49ddb [gaim-migrate @ 14922]
Richard Laager <rlaager@pidgin.im>
parents: 12589
diff changeset
311
5e1ce1a49ddb [gaim-migrate @ 14922]
Richard Laager <rlaager@pidgin.im>
parents: 12589
diff changeset
312 serv_join_chat(chat->account->gc, chat->components);
12576
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
313 }
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
314
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
315 static void gtk_blist_menu_join_cb(GtkWidget *w, PurpleChat *chat)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
316 {
12576
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
317 gtk_blist_join_chat(chat);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
318 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
319
16357
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
320 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
321 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
322 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
323 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
324 {
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
325 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
326 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
327 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
328 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
329 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
330 char *esc;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
331
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
332 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
333 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
334 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
335 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
336 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
337 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
338
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
339 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
340 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
341 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
342 break;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
343 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
344 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
345 break;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
346 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
347 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
348 break;
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
349 default:
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
350 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
351 }
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
352
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
353 esc = g_markup_escape_text(text, -1);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
354 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
355 GtkEntry *entry = GTK_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
356 gtk_entry_set_text(entry, esc);
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
357 }
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
358 g_free(esc);
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
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
361 static void gtk_blist_renderer_edited_cb(GtkCellRendererText *text_rend, char *arg1,
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
362 char *arg2, gpointer nada)
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
363 {
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
364 GtkTreeIter iter;
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
365 GtkTreePath *path;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
366 GValue val;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
367 PurpleBlistNode *node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
368 PurpleGroup *dest;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
369
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
370 path = gtk_tree_path_new_from_string (arg1);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
371 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
372 gtk_tree_path_free (path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
373 val.g_type = 0;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
374 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
375 node = g_value_get_pointer(&val);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
376 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
377 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
378
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
379 switch (node->type)
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
380 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
381 case PURPLE_BLIST_CONTACT_NODE:
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
382 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
383 PurpleContact *contact = (PurpleContact *)node;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
384 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
385
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
386 if (contact->alias || gtknode->contact_expanded)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
387 purple_blist_alias_contact(contact, arg2);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
388 else
12478
e752c74ff854 [gaim-migrate @ 14789]
Aleksander Piotrowski <alek@nic.com.pl>
parents: 12474
diff changeset
389 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
390 PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
391 purple_blist_alias_buddy(buddy, arg2);
12478
e752c74ff854 [gaim-migrate @ 14789]
Aleksander Piotrowski <alek@nic.com.pl>
parents: 12474
diff changeset
392 serv_alias_buddy(buddy);
e752c74ff854 [gaim-migrate @ 14789]
Aleksander Piotrowski <alek@nic.com.pl>
parents: 12474
diff changeset
393 }
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
394 }
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
395 break;
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
396
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
397 case PURPLE_BLIST_BUDDY_NODE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
398 purple_blist_alias_buddy((PurpleBuddy*)node, arg2);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
399 serv_alias_buddy((PurpleBuddy *)node);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
400 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
401 case PURPLE_BLIST_GROUP_NODE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
402 dest = purple_find_group(arg2);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
403 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
404 pidgin_dialogs_merge_groups((PurpleGroup*) node, arg2);
14526
272b75278ff1 [gaim-migrate @ 17178]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14518
diff changeset
405 } else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
406 purple_blist_rename_group((PurpleGroup*)node, arg2);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
407 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
408 case PURPLE_BLIST_CHAT_NODE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
409 purple_blist_alias_chat((PurpleChat*)node, arg2);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
410 break;
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
411 default:
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
412 break;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
413 }
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
414 }
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
415
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
416 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
417 {
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
418 GtkTreeIter iter;
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
419 GtkTreePath *path;
11494
60bfb30f6cba [gaim-migrate @ 13738]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11490
diff changeset
420
11258
6863ab327ec2 [gaim-migrate @ 13433]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11257
diff changeset
421 if (!(get_iter_from_node(node, &iter))) {
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
422 /* 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
423 node = node->parent;
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
424 if (!get_iter_from_node(node, &iter))
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
425 /* Now it's definitely a bug */
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
426 return;
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
427 }
11258
6863ab327ec2 [gaim-migrate @ 13433]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11257
diff changeset
428
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
429 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
430 g_object_set(G_OBJECT(gtkblist->text_rend), "editable", TRUE, NULL);
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
431 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
432 gtk_widget_grab_focus(gtkblist->treeview);
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
433 #if GTK_CHECK_VERSION(2,2,0)
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
434 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
435 gtkblist->text_column, gtkblist->text_rend, TRUE);
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
436 #else
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
437 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
438 #endif
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
439 gtk_tree_path_free(path);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
440 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
441
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
442 static void gtk_blist_menu_bp_cb(GtkWidget *w, PurpleBuddy *b)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
443 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
444 pidgin_pounce_editor_show(b->account, b->name, NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
445 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
446
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
447 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
448 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
449 PurpleLogType type;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
450 PurpleAccount *account;
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
451 char *name = NULL;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
452
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
453 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
454
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
455 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
456 PurpleBuddy *b = (PurpleBuddy*) node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
457 type = PURPLE_LOG_IM;
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
458 name = g_strdup(b->name);
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
459 account = b->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
460 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
461 PurpleChat *c = (PurpleChat*) node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
462 PurplePluginProtocolInfo *prpl_info = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
463 type = PURPLE_LOG_CHAT;
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
464 account = c->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
465 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
466 if (prpl_info && prpl_info->get_chat_name) {
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
467 name = prpl_info->get_chat_name(c->components);
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
468 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
469 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
470 pidgin_log_show_contact((PurpleContact *)node);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
471 pidgin_clear_cursor(gtkblist->window);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
472 return;
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
473 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
474 pidgin_clear_cursor(gtkblist->window);
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
475
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
476 /* This callback should not have been registered for a node
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
477 * 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
478 g_return_if_reached();
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
479 }
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
480
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
481 if (name && account) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
482 pidgin_log_show(type, name, account);
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
483 g_free(name);
12232
857f087ec86b [gaim-migrate @ 14534]
Richard Laager <rlaager@pidgin.im>
parents: 12226
diff changeset
484
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
485 pidgin_clear_cursor(gtkblist->window);
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
486 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
487 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
488
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
489 static void gtk_blist_show_systemlog_cb()
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
490 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
491 pidgin_syslog_show();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
492 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
493
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
494 static void gtk_blist_show_onlinehelp_cb()
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
495 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
496 purple_notify_uri(NULL, PURPLE_WEBSITE "documentation.php");
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
497 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
498
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
499 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
500 do_join_chat(PidginJoinChatData *data)
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
501 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
502 if (data)
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
503 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
504 GHashTable *components =
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
505 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
506 GList *tmp;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
507 PurpleChat *chat;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
508
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
509 for (tmp = data->entries; tmp != NULL; tmp = tmp->next)
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
510 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
511 if (g_object_get_data(tmp->data, "is_spin"))
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
512 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
513 g_hash_table_replace(components,
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
514 g_strdup(g_object_get_data(tmp->data, "identifier")),
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
515 g_strdup_printf("%d",
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
516 gtk_spin_button_get_value_as_int(tmp->data)));
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
517 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
518 else
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
519 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
520 g_hash_table_replace(components,
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
521 g_strdup(g_object_get_data(tmp->data, "identifier")),
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
522 g_strdup(gtk_entry_get_text(tmp->data)));
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
523 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
524 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
525
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
526 chat = purple_chat_new(data->account, NULL, components);
12576
df739b5606f6 [gaim-migrate @ 14898]
Richard Laager <rlaager@pidgin.im>
parents: 12569
diff changeset
527 gtk_blist_join_chat(chat);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
528 purple_blist_remove_chat(chat);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
529 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
530 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
531
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
532 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
533 do_joinchat(GtkWidget *dialog, int id, PidginJoinChatData *info)
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
534 {
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
535 switch(id)
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
536 {
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
537 case GTK_RESPONSE_OK:
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
538 do_join_chat(info);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
539
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
540 break;
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
541 }
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
542
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
543 gtk_widget_destroy(GTK_WIDGET(dialog));
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
544 g_list_free(info->entries);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
545 g_free(info);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
546 }
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
547
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
548 /*
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
549 * 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
550 * 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
551 */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
552 static void
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
553 joinchat_set_sensitive_if_input_cb(GtkWidget *entry, gpointer user_data)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
554 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
555 PidginJoinChatData *data;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
556 GList *tmp;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
557 const char *text;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
558 gboolean required;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
559 gboolean sensitive = TRUE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
560
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
561 data = user_data;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
562
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
563 for (tmp = data->entries; tmp != NULL; tmp = tmp->next)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
564 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
565 if (!g_object_get_data(tmp->data, "is_spin"))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
566 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
567 required = GPOINTER_TO_INT(g_object_get_data(tmp->data, "required"));
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
568 text = gtk_entry_get_text(tmp->data);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
569 if (required && (*text == '\0'))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
570 sensitive = FALSE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
571 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
572 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
573
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
574 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
575 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
576
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
577 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
578 pidgin_blist_update_privacy_cb(PurpleBuddy *buddy)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
579 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
580 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
581 }
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
582
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
583 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
584 rebuild_joinchat_entries(PidginJoinChatData *data)
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
585 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
586 PurpleConnection *gc;
15051
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
587 GList *list = NULL, *tmp;
9770
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
588 GHashTable *defaults = NULL;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
589 struct proto_chat_entry *pce;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
590 gboolean focus = TRUE;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
591
10127
3ea502c95653 [gaim-migrate @ 11165]
Daniel Atallah <datallah@pidgin.im>
parents: 10118
diff changeset
592 g_return_if_fail(data->account != NULL);
3ea502c95653 [gaim-migrate @ 11165]
Daniel Atallah <datallah@pidgin.im>
parents: 10118
diff changeset
593
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
594 gc = purple_account_get_connection(data->account);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
595
15051
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
596 while ((tmp = gtk_container_get_children(GTK_CONTAINER(data->entries_box))))
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
597 gtk_widget_destroy(tmp->data);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
598
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
599 g_list_free(data->entries);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
600 data->entries = NULL;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
601
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
602 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
603 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
604
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
605 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
606 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
607
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
608 for (tmp = list; tmp; tmp = tmp->next)
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
609 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
610 GtkWidget *label;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
611 GtkWidget *rowbox;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
612 GtkWidget *input;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
613
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
614 pce = tmp->data;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
615
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
616 rowbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
617 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
618
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
619 label = gtk_label_new_with_mnemonic(pce->label);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
620 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
621 gtk_size_group_add_widget(data->sg, label);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
622 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
623
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
624 if (pce->is_int)
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
625 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
626 GtkObject *adjust;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
627 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max,
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
628 1, 10, 10);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
629 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
630 gtk_widget_set_size_request(input, 50, -1);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
631 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
632 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
633 else
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
634 {
9770
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
635 char *value;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
636 input = gtk_entry_new();
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
637 gtk_entry_set_activates_default(GTK_ENTRY(input), TRUE);
9770
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
638 value = g_hash_table_lookup(defaults, pce->identifier);
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9754
diff changeset
639 if (value != NULL)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
640 gtk_entry_set_text(GTK_ENTRY(input), value);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
641 if (pce->secret)
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11983
diff changeset
642 {
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
643 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE);
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15386
diff changeset
644 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
645 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
646 }
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
647 gtk_box_pack_end(GTK_BOX(rowbox), input, TRUE, TRUE, 0);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
648 g_signal_connect(G_OBJECT(input), "changed",
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
649 G_CALLBACK(joinchat_set_sensitive_if_input_cb), data);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
650 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
651
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
652 /* Do the following for any type of input widget */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
653 if (focus)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
654 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
655 gtk_widget_grab_focus(input);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
656 focus = FALSE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
657 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
658 gtk_label_set_mnemonic_widget(GTK_LABEL(label), input);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
659 pidgin_set_accessible_label(input, label);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
660 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
661 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
662 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
663 data->entries = g_list_append(data->entries, input);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
664
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
665 g_free(pce);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
666 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
667
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
668 g_list_free(list);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
669 g_hash_table_destroy(defaults);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
670
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
671 /* Set whether the "OK" button should be clickable initially */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
672 joinchat_set_sensitive_if_input_cb(NULL, data);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
673
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
674 gtk_widget_show_all(data->entries_box);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
675 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
676
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
677 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
678 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
679 PidginJoinChatData *data)
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
680 {
13560
bc440f376ffb [gaim-migrate @ 15938]
Etan Reisner <deryni@pidgin.im>
parents: 13546
diff changeset
681 data->account = account;
bc440f376ffb [gaim-migrate @ 15938]
Etan Reisner <deryni@pidgin.im>
parents: 13546
diff changeset
682 rebuild_joinchat_entries(data);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
683 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
684
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
685 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
686 chat_account_filter_func(PurpleAccount *account)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
687 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
688 PurpleConnection *gc = purple_account_get_connection(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
689 PurplePluginProtocolInfo *prpl_info = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
690
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
691 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
692
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
693 return (prpl_info->chat_info != NULL);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
694 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
695
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
696 gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
697 pidgin_blist_joinchat_is_showable()
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
698 {
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
699 GList *c;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
700 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
701
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
702 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
703 gc = c->data;
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
704
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
705 if (chat_account_filter_func(purple_connection_get_account(gc)))
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
706 return TRUE;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
707 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
708
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
709 return FALSE;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
710 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
711
8305
5a6d1168a8b3 [gaim-migrate @ 9029]
Christian Hammond <chipx86@chipx86.com>
parents: 8303
diff changeset
712 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
713 pidgin_blist_joinchat_show(void)
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
714 {
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
715 GtkWidget *hbox, *vbox;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
716 GtkWidget *rowbox;
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
717 GtkWidget *label;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
718 PidginBuddyList *gtkblist;
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
719 GtkWidget *img = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
720 PidginJoinChatData *data = NULL;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
721
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
722 gtkblist = PIDGIN_BLIST(purple_get_blist());
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
723 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
724 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
725 data = g_new0(PidginJoinChatData, 1);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
726
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
727 data->window = gtk_dialog_new_with_buttons(_("Join a Chat"),
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
728 NULL, GTK_DIALOG_NO_SEPARATOR,
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
729 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
730 PIDGIN_STOCK_CHAT, GTK_RESPONSE_OK, NULL);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
731 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
732 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
733 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
734 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
735 gtk_container_set_border_width(
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
736 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
737 gtk_window_set_role(GTK_WINDOW(data->window), "join_chat");
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
738
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
739 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
740 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
741 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
742 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
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 vbox = gtk_vbox_new(FALSE, 5);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
745 gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
746 gtk_container_add(GTK_CONTAINER(hbox), vbox);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
747
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
748 label = gtk_label_new(_("Please enter the appropriate information "
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
749 "about the chat you would like to join.\n"));
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
750 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
751 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
752 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
753
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
754 rowbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
755 gtk_box_pack_start(GTK_BOX(vbox), rowbox, TRUE, TRUE, 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
756
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
757 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
758
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
759 label = gtk_label_new_with_mnemonic(_("_Account:"));
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
760 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
761 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
762 gtk_size_group_add_widget(data->sg, label);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
763
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
764 data->account_menu = pidgin_account_option_menu_new(NULL, FALSE,
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
765 G_CALLBACK(joinchat_select_account_cb),
9987
2396bd099335 [gaim-migrate @ 10900]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9959
diff changeset
766 chat_account_filter_func, data);
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
767 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
768 gtk_label_set_mnemonic_widget(GTK_LABEL(label),
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
769 GTK_WIDGET(data->account_menu));
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
770 pidgin_set_accessible_label (data->account_menu, label);
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
771
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
772 data->entries_box = gtk_vbox_new(FALSE, 5);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
773 gtk_container_add(GTK_CONTAINER(vbox), data->entries_box);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
774 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
775
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
776 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
777
8303
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
778 rebuild_joinchat_entries(data);
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 g_signal_connect(G_OBJECT(data->window), "response",
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
781 G_CALLBACK(do_joinchat), data);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
782
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
783 g_object_unref(data->sg);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
784
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
785 gtk_widget_show_all(data->window);
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
786 }
bbe7d3420549 [gaim-migrate @ 9027]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
787
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
788 static void gtk_blist_row_expanded_cb(GtkTreeView *tv, GtkTreeIter *iter, GtkTreePath *path, gpointer user_data) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
789 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
790 GValue val;
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
791
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
792 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
793 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
794
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
795 node = g_value_get_pointer(&val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
796
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
797 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
798 char *title;
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
799
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
800 title = pidgin_get_group_title(node, TRUE);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
801
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
802 gtk_tree_store_set(gtkblist->treemodel, iter,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
803 NAME_COLUMN, title,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
804 -1);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
805
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
806 g_free(title);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
807
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
808 purple_blist_node_set_bool(node, "collapsed", FALSE);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
809 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
810 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
811
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
812 static void gtk_blist_row_collapsed_cb(GtkTreeView *tv, GtkTreeIter *iter, GtkTreePath *path, gpointer user_data) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
813 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
814 GValue val;
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
815
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
816 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
817 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
818
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
819 node = g_value_get_pointer(&val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
820
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
821 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
822 char *title;
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
823
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
824 title = pidgin_get_group_title(node, FALSE);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
825
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
826 gtk_tree_store_set(gtkblist->treemodel, iter,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
827 NAME_COLUMN, title,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
828 -1);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
829
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
830 g_free(title);
15409
37b46bbce4cb [gaim-migrate @ 18140]
Daniel Atallah <datallah@pidgin.im>
parents: 15403
diff changeset
831
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
832 purple_blist_node_set_bool(node, "collapsed", TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
833 } 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
834 pidgin_blist_collapse_contact_cb(NULL, node);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
835 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
836 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
837
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
838 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
839 PurpleBlistNode *node;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
840 GtkTreeIter iter;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
841 GValue val;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
842
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
843 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
844
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
845 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
846 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
847 node = g_value_get_pointer(&val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
848
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
849 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
850 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
851
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
852 if(PURPLE_BLIST_NODE_IS_CONTACT(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
853 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
854 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
855 buddy = (PurpleBuddy*)node;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
856
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
857 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
858 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
859 gtk_blist_join_chat((PurpleChat *)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
860 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
861 /* if (gtk_tree_view_row_expanded(tv, path))
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
862 gtk_tree_view_collapse_row(tv, path);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
863 else
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
864 gtk_tree_view_expand_row(tv,path,FALSE);*/
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
865 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
866 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
867
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
868 static void pidgin_blist_add_chat_cb()
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
869 {
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
870 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
871 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
872 PurpleBlistNode *node;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
873
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
874 if(gtk_tree_selection_get_selected(sel, NULL, &iter)){
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
875 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
876 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
877 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
878 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
879 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
880 else if (PURPLE_BLIST_NODE_IS_GROUP(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
881 purple_blist_request_add_chat(NULL, (PurpleGroup*)node, NULL, NULL);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
882 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
883 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
884 purple_blist_request_add_chat(NULL, NULL, NULL, NULL);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
885 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
886 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
887
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
888 static void pidgin_blist_add_buddy_cb()
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
889 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
890 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview));
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
891 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
892 PurpleBlistNode *node;
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 if(gtk_tree_selection_get_selected(sel, NULL, &iter)){
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
895 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
896 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
897 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
898 NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
899 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
900 || PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
901 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
902 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
903 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
904 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
905 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
906 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
907 purple_blist_request_add_buddy(NULL, NULL, NULL, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
908 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
909 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
910
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
911 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
912 pidgin_blist_remove_cb (GtkWidget *w, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
913 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
914 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
915 pidgin_dialogs_remove_buddy((PurpleBuddy*)node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
916 } 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
917 pidgin_dialogs_remove_chat((PurpleChat*)node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
918 } 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
919 pidgin_dialogs_remove_group((PurpleGroup*)node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
920 } 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
921 pidgin_dialogs_remove_contact((PurpleContact*)node);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
922 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
923 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
924
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
925 struct _expand {
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
926 GtkTreeView *treeview;
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
927 GtkTreePath *path;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
928 PurpleBlistNode *node;
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
929 };
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
930
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
931 static gboolean
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
932 scroll_to_expanded_cell(gpointer data)
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
933 {
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
934 struct _expand *ex = data;
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
935 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
936 pidgin_blist_update_contact(NULL, ex->node);
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
937
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
938 gtk_tree_path_free(ex->path);
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
939 g_free(ex);
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
940
14230
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
941 return FALSE;
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
942 }
82177a4e23ab [gaim-migrate @ 16818]
Sean Egan <seanegan@pidgin.im>
parents: 14215
diff changeset
943
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
944 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
945 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
946 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
947 struct _pidgin_blist_node *gtknode;
9632
e295aa712589 [gaim-migrate @ 10476]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
948 GtkTreeIter iter, parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
949 PurpleBlistNode *bnode;
10325
9bb530214bae [gaim-migrate @ 11532]
Mark Doliner <markdoliner@pidgin.im>
parents: 10320
diff changeset
950 GtkTreePath *path;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
951
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
952 if(!PURPLE_BLIST_NODE_IS_CONTACT(node))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
953 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
954
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
955 gtknode = (struct _pidgin_blist_node *)node->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
956
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
957 gtknode->contact_expanded = TRUE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
958
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
959 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
960 pidgin_blist_update(NULL, bnode);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
961 }
10353
830e54bb7fa0 [gaim-migrate @ 11570]
Mark Doliner <markdoliner@pidgin.im>
parents: 10352
diff changeset
962
9632
e295aa712589 [gaim-migrate @ 10476]
Sean Egan <seanegan@pidgin.im>
parents: 9620
diff changeset
963 /* 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
964 if (get_iter_from_node(node, &parent)) {
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
965 struct _expand *ex = g_new0(struct _expand, 1);
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
966
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
967 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
968 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
969 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
970
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
971 /* Let the treeview draw so it knows where to scroll */
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
972 ex->treeview = GTK_TREE_VIEW(gtkblist->treeview);
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
973 ex->path = path;
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
974 ex->node = node->child;
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
975 g_idle_add(scroll_to_expanded_cell, ex);
03b0e1705115 [gaim-migrate @ 17438]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14723
diff changeset
976 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
977 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
978
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
979 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
980 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
981 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
982 PurpleBlistNode *bnode;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
983 struct _pidgin_blist_node *gtknode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
984
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
985 if(!PURPLE_BLIST_NODE_IS_CONTACT(node))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
986 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
987
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
988 gtknode = (struct _pidgin_blist_node *)node->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
989
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
990 gtknode->contact_expanded = FALSE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
991
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
992 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
993 pidgin_blist_update(NULL, bnode);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
994 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
995 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
996
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
997 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
998 toggle_privacy(GtkWidget *widget, PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
999 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1000 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1001 PurpleAccount *account;
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1002 gboolean permitted;
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1003 const char *name;
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1004
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1005 if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1006 return;
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1007
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1008 buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1009 account = purple_buddy_get_account(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1010 name = purple_buddy_get_name(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1011
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1012 permitted = purple_privacy_check(account, name);
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1013
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1014 /* 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
1015
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1016 if (permitted)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1017 purple_privacy_deny(account, name, FALSE, FALSE);
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1018 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1019 purple_privacy_allow(account, name, FALSE, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1020
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1021 pidgin_blist_update(purple_get_blist(), node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1022 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1023
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1024 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
1025 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1026 PurpleBuddy *buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1027 PurpleAccount *account;
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1028 gboolean permitted;
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1029
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1030 account = purple_buddy_get_account(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1031 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
1032
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1033 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
1034 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
1035 node, 0 ,0, NULL);
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1036 }
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15307
diff changeset
1037
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9030
diff changeset
1038 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1039 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
1040 PurpleBlistNode *node)
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1041 {
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1042 GList *l, *ll;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1043 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1044
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1045 if(!prpl_info || !prpl_info->blist_node_menu)
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1046 return;
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1047
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1048 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
1049 PurpleMenuAction *act = (PurpleMenuAction *) l->data;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1050 pidgin_append_menu_action(menu, act, node);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1051 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1052 g_list_free(ll);
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1053 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1054
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9030
diff changeset
1055 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1056 pidgin_append_blist_node_extended_menu(GtkWidget *menu, PurpleBlistNode *node)
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1057 {
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1058 GList *l, *ll;
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1059
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1060 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
1061 PurpleMenuAction *act = (PurpleMenuAction *) l->data;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1062 pidgin_append_menu_action(menu, act, node);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1063 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1064 g_list_free(ll);
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1065 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1066
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1067 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1068 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
1069 PurplePluginProtocolInfo *prpl_info;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1070 PurpleContact *contact;
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1071 gboolean contact_expanded = FALSE;
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1072
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1073 g_return_if_fail(menu);
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1074 g_return_if_fail(buddy);
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1075
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1076 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
1077
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1078 contact = purple_buddy_get_contact(buddy);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1079 if (contact) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1080 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
1081 }
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1082
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1083 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
1084 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
1085 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
1086 }
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
1087 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
1088 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
1089 if (prpl_info && prpl_info->send_file) {
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1090 if (!prpl_info->can_receive_file ||
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1091 prpl_info->can_receive_file(buddy->account->gc, buddy->name))
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1092 {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1093 pidgin_new_item_from_stock(menu, _("_Send File"),
16881
e6bca9e3d85c New Send File icon
Hylke Bons <hbons@pidgin.im>
parents: 16879
diff changeset
1094 PIDGIN_STOCK_TOOLBAR_SEND_FILE,
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1095 G_CALLBACK(gtk_blist_menu_send_file_cb),
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1096 buddy, 0, 0, NULL);
9466
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
1097 }
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9460
diff changeset
1098 }
12024
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents: 12016
diff changeset
1099
15622
024584b350fb context menu cleanup
Sean Egan <seanegan@pidgin.im>
parents: 15621
diff changeset
1100 pidgin_new_item_from_stock(menu, _("Add Buddy _Pounce"), NULL,
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1101 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
1102
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1103 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
1104 pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1105 G_CALLBACK(gtk_blist_menu_showlog_cb),
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1106 contact, 0, 0, NULL);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1107 } else if (!sub) {
15622
024584b350fb context menu cleanup
Sean Egan <seanegan@pidgin.im>
parents: 15621
diff changeset
1108 pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1109 G_CALLBACK(gtk_blist_menu_showlog_cb), buddy, 0, 0, NULL);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1110 }
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1111
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1112
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1113 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
1114 (PurpleBlistNode *)buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1115 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
1116
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1117 if (((PurpleBlistNode*)buddy)->parent->child->next && !sub && !contact_expanded) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1118 pidgin_separator(menu);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1119 pidgin_append_blist_node_privacy_menu(menu, (PurpleBlistNode *)buddy);
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1120 pidgin_new_item_from_stock(menu, _("Alias..."), PIDGIN_STOCK_ALIAS,
9925
7f33ac0e1878 [gaim-migrate @ 10817]
Nathan Walp <nwalp@pidgin.im>
parents: 9918
diff changeset
1121 G_CALLBACK(gtk_blist_menu_alias_cb),
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1122 contact, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1123 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
1124 G_CALLBACK(pidgin_blist_remove_cb),
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1125 contact, 0, 0, NULL);
12319
42a0e8cecea3 [gaim-migrate @ 14623]
Richard Laager <rlaager@pidgin.im>
parents: 12302
diff changeset
1126 } else if (!sub || contact_expanded) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1127 pidgin_separator(menu);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1128 pidgin_append_blist_node_privacy_menu(menu, (PurpleBlistNode *)buddy);
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1129 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS,
9925
7f33ac0e1878 [gaim-migrate @ 10817]
Nathan Walp <nwalp@pidgin.im>
parents: 9918
diff changeset
1130 G_CALLBACK(gtk_blist_menu_alias_cb), buddy, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1131 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
1132 G_CALLBACK(pidgin_blist_remove_cb), buddy,
9925
7f33ac0e1878 [gaim-migrate @ 10817]
Nathan Walp <nwalp@pidgin.im>
parents: 9918
diff changeset
1133 0, 0, NULL);
7f33ac0e1878 [gaim-migrate @ 10817]
Nathan Walp <nwalp@pidgin.im>
parents: 9918
diff changeset
1134 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1135 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1136
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1137 static gboolean
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1138 gtk_blist_key_press_cb(GtkWidget *tv, GdkEventKey *event, gpointer data) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1139 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1140 GValue val;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1141 GtkTreeIter iter;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1142 GtkTreeSelection *sel;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1143
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1144 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1145 if(!gtk_tree_selection_get_selected(sel, NULL, &iter))
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1146 return FALSE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1147
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1148 val.g_type = 0;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1149 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1150 NODE_COLUMN, &val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1151 node = g_value_get_pointer(&val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1152
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1153 if(event->state & GDK_CONTROL_MASK &&
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1154 (event->keyval == 'o' || event->keyval == 'O')) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1155 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1156
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1157 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1158 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1159 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1160 buddy = (PurpleBuddy*)node;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1161 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1162 return FALSE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1163 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1164 if(buddy)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1165 serv_get_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
1166 } 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
1167 gtk_blist_menu_alias_cb(tv, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1168 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1169
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1170 return FALSE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1171 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1172
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1173 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1174 create_group_menu (PurpleBlistNode *node, PurpleGroup *g)
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1175 {
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1176 GtkWidget *menu;
11988
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
1177 GtkWidget *item;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1178
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1179 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
1180 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
1181 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
1182 gtk_widget_set_sensitive(item, purple_connections_get_all() != NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1183 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
1184 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
1185 gtk_widget_set_sensitive(item, pidgin_blist_joinchat_is_showable());
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1186 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
1187 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1188 pidgin_new_item_from_stock(menu, _("_Rename"), NULL,
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
1189 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
1190
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1191 pidgin_append_blist_node_extended_menu(menu, node);
8952
b8bf830b3731 [gaim-migrate @ 9724]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8945
diff changeset
1192
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1193 return menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1194 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1195
8586
c8c7a19da549 [gaim-migrate @ 9336]
Pekka Riikonen <priikone@silcnet.org>
parents: 8573
diff changeset
1196
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1197 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1198 create_chat_menu(PurpleBlistNode *node, PurpleChat *c) {
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1199 GtkWidget *menu;
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1200 gboolean autojoin;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1201
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1202 menu = gtk_menu_new();
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1203 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
1204 (purple_blist_node_get_string(node, "gtk-autojoin") != NULL));
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1205
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1206 pidgin_new_item_from_stock(menu, _("_Join"), PIDGIN_STOCK_CHAT,
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1207 G_CALLBACK(gtk_blist_menu_join_cb), node, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1208 pidgin_new_check_item(menu, _("Auto-Join"),
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9019
diff changeset
1209 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
1210 pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9869
diff changeset
1211 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
1212
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1213 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
1214 pidgin_append_blist_node_extended_menu(menu, node);
8586
c8c7a19da549 [gaim-migrate @ 9336]
Pekka Riikonen <priikone@silcnet.org>
parents: 8573
diff changeset
1215
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1216 pidgin_separator(menu);
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1217
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1218 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS,
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1219 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1220 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
1221 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL);
8586
c8c7a19da549 [gaim-migrate @ 9336]
Pekka Riikonen <priikone@silcnet.org>
parents: 8573
diff changeset
1222
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1223 return menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1224 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1225
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1226 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1227 create_contact_menu (PurpleBlistNode *node)
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1228 {
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1229 GtkWidget *menu;
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();
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1232
15623
bf485c598199 toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@pidgin.im>
parents: 15622
diff changeset
1233 pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1234 G_CALLBACK(gtk_blist_menu_showlog_cb),
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1235 node, 0, 0, NULL);
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1236
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1237 pidgin_separator(menu);
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1238
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
1239 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS,
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1240 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1241 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
1242 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL);
10663
1a5ab09c8475 [gaim-migrate @ 12202]
Sean Egan <seanegan@pidgin.im>
parents: 10662
diff changeset
1243
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1244 pidgin_separator(menu);
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1245
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1246 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
1247 G_CALLBACK(pidgin_blist_collapse_contact_cb),
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1248 node, 0, 0, NULL);
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9030
diff changeset
1249
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1250 pidgin_append_blist_node_extended_menu(menu, node);
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9030
diff changeset
1251
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1252 return menu;
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
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1255 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1256 create_buddy_menu(PurpleBlistNode *node, PurpleBuddy *b) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1257 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
1258 GtkWidget *menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1259 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
1260 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
1261
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1262 menu = gtk_menu_new();
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1263 pidgin_blist_make_buddy_menu(menu, b, FALSE);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1264
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1265 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1266 pidgin_separator(menu);
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
1267
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1268 if(gtknode->contact_expanded) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1269 pidgin_new_item_from_stock(menu, _("_Collapse"),
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1270 GTK_STOCK_ZOOM_OUT,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1271 G_CALLBACK(pidgin_blist_collapse_contact_cb),
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1272 node, 0, 0, NULL);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1273 } else {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
1274 pidgin_new_item_from_stock(menu, _("_Expand"),
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1275 GTK_STOCK_ZOOM_IN,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1276 G_CALLBACK(pidgin_blist_expand_contact_cb), node,
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1277 0, 0, NULL);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1278 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1279 if(node->child->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1280 PurpleBlistNode *bnode;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1281
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1282 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
1283 PurpleBuddy *buddy = (PurpleBuddy*)bnode;
9340
d9a87f3abbdf [gaim-migrate @ 10148]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9337
diff changeset
1284 GdkPixbuf *buf;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1285 GtkWidget *submenu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1286 GtkWidget *image;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1287
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1288 if(buddy == b)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1289 continue;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1290 if(!buddy->account->gc)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1291 continue;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1292 if(!show_offline && !PURPLE_BUDDY_IS_ONLINE(buddy))
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1293 continue;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1294
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1295 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
1296 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
1297 image = gtk_image_new_from_pixbuf(buf);
d9a87f3abbdf [gaim-migrate @ 10148]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9337
diff changeset
1298 g_object_unref(G_OBJECT(buf));
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1299 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
1300 image);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1301 gtk_widget_show(image);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1302 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1303 gtk_widget_show(menuitem);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1304
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1305 submenu = gtk_menu_new();
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1306 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1307 gtk_widget_show(submenu);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1308
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1309 pidgin_blist_make_buddy_menu(submenu, buddy, TRUE);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1310 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1311 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1312 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1313 return menu;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1314 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1315
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1316 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1317 pidgin_blist_show_context_menu(PurpleBlistNode *node,
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1318 GtkMenuPositionFunc func,
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1319 GtkWidget *tv,
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1320 guint button,
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1321 guint32 time)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1322 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1323 struct _pidgin_blist_node *gtknode;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1324 GtkWidget *menu = NULL;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1325 gboolean handled = FALSE;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1326
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1327 gtknode = (struct _pidgin_blist_node *)node->ui_data;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1328
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1329 /* 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
1330 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1331 PurpleGroup *g = (PurpleGroup *)node;
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1332
8952
b8bf830b3731 [gaim-migrate @ 9724]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8945
diff changeset
1333 menu = create_group_menu(node, g);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1334 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1335 PurpleChat *c = (PurpleChat *)node;
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1336
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1337 menu = create_chat_menu(node, c);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1338 } 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
1339 menu = create_contact_menu(node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1340 } 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
1341 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1342
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1343 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1344 b = purple_contact_get_priority_buddy((PurpleContact*)node);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1345 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1346 b = (PurpleBuddy *)node;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1347
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
1348 menu = create_buddy_menu(node, b);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1349 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1350
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1351 #ifdef _WIN32
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1352 /* Unhook the tooltip-timeout since we don't want a tooltip
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1353 * 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
1354 This is a workaround for GTK+ bug 107320. */
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1355 if (gtkblist->timeout) {
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1356 g_source_remove(gtkblist->timeout);
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1357 gtkblist->timeout = 0;
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1358 }
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1359 #endif
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1360
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1361 /* Now display the menu */
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1362 if (menu != NULL) {
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1363 gtk_widget_show_all(menu);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1364 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
1365 handled = TRUE;
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 return handled;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1369 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1370
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1371 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
1372 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1373 GtkTreePath *path;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1374 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1375 GValue val;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1376 GtkTreeIter iter;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1377 GtkTreeSelection *sel;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1378 PurplePlugin *prpl = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1379 PurplePluginProtocolInfo *prpl_info = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1380 struct _pidgin_blist_node *gtknode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1381 gboolean handled = FALSE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1382
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1383 /* Here we figure out which node was clicked */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1384 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
1385 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1386 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
1387 val.g_type = 0;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1388 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
1389 node = g_value_get_pointer(&val);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1390 gtknode = (struct _pidgin_blist_node *)node->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1391
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1392 /* Right click draws a context menu */
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1393 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
1394 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
1395
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1396 /* CTRL+middle click expands or collapse a contact */
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1397 } 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
1398 (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
1399 if (gtknode->contact_expanded)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1400 pidgin_blist_collapse_contact_cb(NULL, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1401 else
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1402 pidgin_blist_expand_contact_cb(NULL, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1403 handled = TRUE;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1404
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1405 /* Double middle click gets info */
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1406 } 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
1407 ((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
1408 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1409 if(PURPLE_BLIST_NODE_IS_CONTACT(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1410 b = purple_contact_get_priority_buddy((PurpleContact*)node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1411 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1412 b = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1413
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1414 prpl = purple_find_prpl(purple_account_get_protocol_id(b->account));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1415 if (prpl != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1416 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1417
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1418 if (prpl && prpl_info->get_info)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1419 serv_get_info(b->account->gc, b->name);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1420 handled = TRUE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1421 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1422
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1423 #if (1)
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1424 /*
10814
7e17cb56b019 [gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents: 10780
diff changeset
1425 * 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
1426 * FALSE here, as would be normal the event propoagates down and
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1427 * somehow gets interpreted as the start of a drag event.
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1428 *
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1429 * 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
1430 * was handled? --Mark
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1431 */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1432 if(handled) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1433 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1434 gtk_tree_selection_select_path(sel, path);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1435 gtk_tree_path_free(path);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1436 return TRUE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1437 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1438 #endif
7753
f3f9394afe6d [gaim-migrate @ 8398]
Ethan Blanton <elb@pidgin.im>
parents: 7737
diff changeset
1439 gtk_tree_path_free(path);
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1440
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1441 return FALSE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1442 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1443
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1444 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1445 pidgin_blist_popup_menu_cb(GtkWidget *tv, void *user_data)
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1446 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1447 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1448 GValue val;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1449 GtkTreeIter iter;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1450 GtkTreeSelection *sel;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1451 gboolean handled = FALSE;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1452
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1453 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1454 if (!gtk_tree_selection_get_selected(sel, NULL, &iter))
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1455 return FALSE;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1456
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1457 val.g_type = 0;
8143
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1458 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel),
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1459 &iter, NODE_COLUMN, &val);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1460 node = g_value_get_pointer(&val);
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1461
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1462 /* Shift+F10 draws a context menu */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1463 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
1464
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1465 return handled;
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1466 }
ce4b6383777b [gaim-migrate @ 8851]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8137
diff changeset
1467
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1468 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
1469 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1470 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
12569
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1471
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1472 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
1473 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
1474
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1475 pidgin_clear_cursor(gtkblist->window);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1476 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1477
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1478 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
1479 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1480 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
1481
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1482 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
1483 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)));
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
1484
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1485 pidgin_clear_cursor(gtkblist->window);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1486 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1487
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1488 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
1489 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1490 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
12569
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1491
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1492 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
1493 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
1494
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1495 pidgin_clear_cursor(gtkblist->window);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1496 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1497
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1498 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
1499 GtkWidget *checkitem)
5ed47be3e4c3 [gaim-migrate @ 14888]
Richard Laager <rlaager@pidgin.im>
parents: 12530
diff changeset
1500 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1501 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1502
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1503 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
1504 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(checkitem)));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1505
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1506 pidgin_clear_cursor(gtkblist->window);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1507 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1508
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1509 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
1510 {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1511 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
1512 }
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1513
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12799
diff changeset
1514 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1515 pidgin_blist_mute_pref_cb(const char *name, PurplePrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12799
diff changeset
1516 gconstpointer value, gpointer data)
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1517 {
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1518 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
1519 N_("/Tools/Mute Sounds"))), (gboolean)GPOINTER_TO_INT(value));
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1520 }
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1521
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12799
diff changeset
1522 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1523 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
1524 gconstpointer value, gpointer data)
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1525 {
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1526 gboolean sensitive = TRUE;
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1527
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1528 if(!strcmp(value, "none"))
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1529 sensitive = FALSE;
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1530
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1531 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
1532 }
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
1533
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1534 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1535 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
1536 const char *alias)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1537 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1538 GList *l;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1539 PurpleAccount *account = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1540 PurpleConnection *gc;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1541
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1542 if (list == NULL)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1543 return;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1544
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1545 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
1546 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1547 gc = (PurpleConnection *)l->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1548 account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1549
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1550 if (!strcmp(purple_account_get_protocol_id(account), prpl_id))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1551 break;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1552
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1553 account = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1554 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1555
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1556 if (account != NULL)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1557 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1558 for (l = list; l != NULL; l = l->next)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1559 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1560 purple_blist_request_add_buddy(account, l->data,
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1561 (group ? group->name : NULL),
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1562 alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1563 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1564 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1565
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1566 g_list_foreach(list, (GFunc)g_free, NULL);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1567 g_list_free(list);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1568 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1569
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1570 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1571 parse_vcard(const char *vcard, PurpleGroup *group)
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1572 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1573 char *temp_vcard;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1574 char *s, *c;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1575 char *alias = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1576 GList *aims = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1577 GList *icqs = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1578 GList *yahoos = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1579 GList *msns = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1580 GList *jabbers = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1581
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1582 s = temp_vcard = g_strdup(vcard);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1583
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1584 while (*s != '\0' && strncmp(s, "END:vCard", strlen("END:vCard")))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1585 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1586 char *field, *value;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1587
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1588 field = s;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1589
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1590 /* Grab the field */
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1591 while (*s != '\r' && *s != '\n' && *s != '\0' && *s != ':')
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1592 s++;
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 (*s == '\r') s++;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1595 if (*s == '\n')
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1596 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1597 s++;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1598 continue;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1599 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1600
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1601 if (*s != '\0') *s++ = '\0';
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1602
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1603 if ((c = strchr(field, ';')) != NULL)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1604 *c = '\0';
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1605
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1606 /* Proceed to the end of the line */
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1607 value = s;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1608
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1609 while (*s != '\r' && *s != '\n' && *s != '\0')
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1610 s++;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1611
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1612 if (*s == '\r') *s++ = '\0';
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1613 if (*s == '\n') *s++ = '\0';
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1614
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1615 /* We only want to worry about a few fields here. */
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1616 if (!strcmp(field, "FN"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1617 alias = g_strdup(value);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1618 else if (!strcmp(field, "X-AIM") || !strcmp(field, "X-ICQ") ||
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1619 !strcmp(field, "X-YAHOO") || !strcmp(field, "X-MSN") ||
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1620 !strcmp(field, "X-JABBER"))
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 char **values = g_strsplit(value, ":", 0);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1623 char **im;
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 for (im = values; *im != NULL; im++)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1626 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1627 if (!strcmp(field, "X-AIM"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1628 aims = g_list_append(aims, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1629 else if (!strcmp(field, "X-ICQ"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1630 icqs = g_list_append(icqs, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1631 else if (!strcmp(field, "X-YAHOO"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1632 yahoos = g_list_append(yahoos, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1633 else if (!strcmp(field, "X-MSN"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1634 msns = g_list_append(msns, g_strdup(*im));
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1635 else if (!strcmp(field, "X-JABBER"))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1636 jabbers = g_list_append(jabbers, g_strdup(*im));
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
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1639 g_strfreev(values);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1640 }
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
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1643 g_free(temp_vcard);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1644
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1645 if (aims == NULL && icqs == NULL && yahoos == NULL &&
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1646 msns == NULL && jabbers == NULL)
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1647 {
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1648 g_free(alias);
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1649
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1650 return FALSE;
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 add_buddies_from_vcard("prpl-oscar", group, aims, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1654 add_buddies_from_vcard("prpl-oscar", group, icqs, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1655 add_buddies_from_vcard("prpl-yahoo", group, yahoos, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1656 add_buddies_from_vcard("prpl-msn", group, msns, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1657 add_buddies_from_vcard("prpl-jabber", group, jabbers, alias);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1658
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1659 g_free(alias);
8089
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 return TRUE;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1662 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1663
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1664 #ifdef _WIN32
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1665 static void pidgin_blist_drag_begin(GtkWidget *widget,
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1666 GdkDragContext *drag_context, gpointer user_data)
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1667 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1668 pidgin_blist_tooltip_destroy();
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1669
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1670
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1671 /* Unhook the tooltip-timeout since we don't want a tooltip
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1672 * to appear and obscure the dragging operation.
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1673 * This is a workaround for GTK+ bug 107320. */
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1674 if (gtkblist->timeout) {
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1675 g_source_remove(gtkblist->timeout);
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1676 gtkblist->timeout = 0;
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1677 }
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1678 }
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1679 #endif
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1680
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1681 static void pidgin_blist_drag_data_get_cb(GtkWidget *widget,
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1682 GdkDragContext *dc,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1683 GtkSelectionData *data,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1684 guint info,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
1685 guint time,
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1686 gpointer null)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1687 {
11059
52e4f595fd27 [gaim-migrate @ 13012]
Daniel Atallah <datallah@pidgin.im>
parents: 11038
diff changeset
1688
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1689 if (data->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1690 {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1691 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
1692 GtkTreePath *sourcerow = gtk_tree_row_reference_get_path(ref);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1693 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1694 PurpleBlistNode *node = NULL;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1695 GValue val;
5273
0d7e92ea8b97 [gaim-migrate @ 5645]
Nathan Walp <nwalp@pidgin.im>
parents: 5263
diff changeset
1696 if(!sourcerow)
0d7e92ea8b97 [gaim-migrate @ 5645]
Nathan Walp <nwalp@pidgin.im>
parents: 5263
diff changeset
1697 return;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1698 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
1699 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1700 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
1701 node = g_value_get_pointer(&val);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1702 gtk_selection_data_set (data,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1703 gdk_atom_intern ("PURPLE_BLIST_NODE", FALSE),
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1704 8, /* bits */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1705 (void*)&node,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1706 sizeof (node));
5273
0d7e92ea8b97 [gaim-migrate @ 5645]
Nathan Walp <nwalp@pidgin.im>
parents: 5263
diff changeset
1707
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1708 gtk_tree_path_free(sourcerow);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1709 }
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
1710 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
1711 {
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1712 GtkTreeRowReference *ref;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1713 GtkTreePath *sourcerow;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1714 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1715 PurpleBlistNode *node = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1716 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1717 PurpleConnection *gc;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1718 GValue val;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1719 GString *str;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1720 const char *protocol;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1721
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1722 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
1723 sourcerow = gtk_tree_row_reference_get_path(ref);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1724
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1725 if (!sourcerow)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1726 return;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1727
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1728 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1729 sourcerow);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1730 val.g_type = 0;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1731 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1732 NODE_COLUMN, &val);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1733
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1734 node = g_value_get_pointer(&val);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1735
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1736 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1737 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1738 buddy = purple_contact_get_priority_buddy((PurpleContact *)node);
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1739 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1740 else if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1741 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1742 gtk_tree_path_free(sourcerow);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1743 return;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1744 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1745 else
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1746 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1747 buddy = (PurpleBuddy *)node;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1748 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1749
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1750 gc = purple_account_get_connection(buddy->account);
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1751
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1752 if (gc == NULL)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1753 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1754 gtk_tree_path_free(sourcerow);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1755 return;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1756 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1757
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1758 protocol =
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1759 PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->list_icon(buddy->account,
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1760 buddy);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1761
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1762 str = g_string_new(NULL);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1763 g_string_printf(str,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1764 "MIME-Version: 1.0\r\n"
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1765 "Content-Type: application/x-im-contact\r\n"
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1766 "X-IM-Protocol: %s\r\n"
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1767 "X-IM-Username: %s\r\n",
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1768 protocol,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1769 buddy->name);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1770
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1771 if (buddy->alias != NULL)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1772 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1773 g_string_append_printf(str,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1774 "X-IM-Alias: %s\r\n",
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1775 buddy->alias);
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
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
1778 g_string_append(str, "\r\n");
7706
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_selection_data_set(data,
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1781 gdk_atom_intern("application/x-im-contact", FALSE),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1782 8, /* bits */
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1783 (const guchar *)str->str,
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1784 strlen(str->str) + 1);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1785
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
1786 g_string_free(str, TRUE);
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1787 gtk_tree_path_free(sourcerow);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1788 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1789 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1790
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1791 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
1792 GtkSelectionData *sd, guint info, guint t)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1793 {
13834
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1794 if (gtkblist->drag_timeout) {
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1795 g_source_remove(gtkblist->drag_timeout);
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1796 gtkblist->drag_timeout = 0;
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1797 }
28f6ad6dc0f2 [gaim-migrate @ 16281]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13821
diff changeset
1798
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1799 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
1800 PurpleBlistNode *n = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1801 GtkTreePath *path = NULL;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1802 GtkTreeViewDropPosition position;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1803 memcpy(&n, sd->data, sizeof(n));
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1804 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
1805 /* 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
1806 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1807 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1808 GValue val;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1809 struct _pidgin_blist_node *gtknode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1810
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1811 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1812 &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1813 val.g_type = 0;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1814 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1815 &iter, NODE_COLUMN, &val);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1816 node = g_value_get_pointer(&val);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1817 gtknode = node->ui_data;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1818
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1819 if (PURPLE_BLIST_NODE_IS_CONTACT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1820 PurpleContact *c = (PurpleContact*)n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1821 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
1822 purple_blist_merge_contact(c, node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1823 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1824 PURPLE_BLIST_NODE_IS_CHAT(node)) {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1825 switch(position) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1826 case GTK_TREE_VIEW_DROP_AFTER:
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1827 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
1828 purple_blist_add_contact(c, (PurpleGroup*)node->parent,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1829 node);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1830 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1831 case GTK_TREE_VIEW_DROP_BEFORE:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1832 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
1833 purple_blist_add_contact(c, (PurpleGroup*)node->parent,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1834 node->prev);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1835 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1836 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1837 } else if(PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1838 purple_blist_add_contact(c, (PurpleGroup*)node, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1839 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1840 purple_blist_merge_contact(c, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1841 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1842 } else if (PURPLE_BLIST_NODE_IS_BUDDY(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1843 PurpleBuddy *b = (PurpleBuddy*)n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1844 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1845 switch(position) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1846 case GTK_TREE_VIEW_DROP_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1847 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
1848 purple_blist_add_buddy(b, (PurpleContact*)node->parent,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1849 (PurpleGroup*)node->parent->parent, node);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1850 break;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1851 case GTK_TREE_VIEW_DROP_BEFORE:
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1852 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
1853 purple_blist_add_buddy(b, (PurpleContact*)node->parent,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1854 (PurpleGroup*)node->parent->parent,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1855 node->prev);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1856 break;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1857 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1858 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1859 purple_blist_add_buddy(b, NULL, (PurpleGroup*)node->parent,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1860 NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1861 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1862 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
1863 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1864 if(gtknode->contact_expanded) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1865 switch(position) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1866 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1867 case GTK_TREE_VIEW_DROP_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1868 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
1869 purple_blist_add_buddy(b, (PurpleContact*)node,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1870 (PurpleGroup*)node->parent, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1871 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1872 case GTK_TREE_VIEW_DROP_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1873 purple_blist_add_buddy(b, NULL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1874 (PurpleGroup*)node->parent, node->prev);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1875 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1876 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1877 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1878 switch(position) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1879 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1880 case GTK_TREE_VIEW_DROP_AFTER:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1881 purple_blist_add_buddy(b, NULL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1882 (PurpleGroup*)node->parent, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1883 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1884 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1885 case GTK_TREE_VIEW_DROP_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1886 purple_blist_add_buddy(b, NULL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1887 (PurpleGroup*)node->parent, node->prev);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1888 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1889 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1890 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1891 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1892 } else if (PURPLE_BLIST_NODE_IS_CHAT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1893 PurpleChat *chat = (PurpleChat *)n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1894 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1895 switch(position) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1896 case GTK_TREE_VIEW_DROP_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1897 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1898 case GTK_TREE_VIEW_DROP_BEFORE:
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1899 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
1900 purple_blist_add_chat(chat,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1901 (PurpleGroup*)node->parent->parent,
13543
25f9c386270c [gaim-migrate @ 15919]
Daniel Atallah <datallah@pidgin.im>
parents: 13541
diff changeset
1902 node->parent);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1903 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1904 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1905 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1906 PURPLE_BLIST_NODE_IS_CHAT(node)) {
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1907 switch(position) {
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1908 case GTK_TREE_VIEW_DROP_AFTER:
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1909 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
1910 purple_blist_add_chat(chat, (PurpleGroup*)node->parent, node);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1911 break;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1912 case GTK_TREE_VIEW_DROP_BEFORE:
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1913 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
1914 purple_blist_add_chat(chat, (PurpleGroup*)node->parent, node->prev);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1915 break;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1916 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1917 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1918 purple_blist_add_chat(chat, (PurpleGroup*)node, NULL);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1919 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1920 } else if (PURPLE_BLIST_NODE_IS_GROUP(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1921 PurpleGroup *g = (PurpleGroup*)n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1922 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1923 switch (position) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1924 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1925 case GTK_TREE_VIEW_DROP_AFTER:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1926 purple_blist_add_group(g, node);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1927 break;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1928 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1929 case GTK_TREE_VIEW_DROP_BEFORE:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1930 purple_blist_add_group(g, node->prev);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1931 break;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1932 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1933 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1934 purple_blist_add_group(g, node->parent->parent);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1935 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1936 PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1937 purple_blist_add_group(g, node->parent);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1938 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1939 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1940
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1941 gtk_tree_path_free(path);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
1942 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1943 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1944 }
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1945 else if (sd->target == gdk_atom_intern("application/x-im-contact",
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1946 FALSE) && sd->data)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1947 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1948 PurpleGroup *group = NULL;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1949 GtkTreePath *path = NULL;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1950 GtkTreeViewDropPosition position;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1951 PurpleAccount *account;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1952 char *protocol = NULL;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1953 char *username = NULL;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1954 char *alias = NULL;
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1955
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1956 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
1957 x, y, &path, &position))
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1958 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1959 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1960 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1961 GValue val;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1962
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1963 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1964 &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
1965 val.g_type = 0;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1966 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1967 &iter, NODE_COLUMN, &val);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1968 node = g_value_get_pointer(&val);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1969
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1970 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1971 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1972 group = (PurpleGroup *)node->parent->parent;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1973 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1974 else if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1975 PURPLE_BLIST_NODE_IS_CONTACT(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1976 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1977 group = (PurpleGroup *)node->parent;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1978 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1979 else if (PURPLE_BLIST_NODE_IS_GROUP(node))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1980 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1981 group = (PurpleGroup *)node;
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1982 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1983 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1984
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
1985 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
1986 &protocol, &username, &alias))
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1987 {
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1988 if (account == NULL)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1989 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1990 purple_notify_error(NULL, NULL,
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1991 _("You are not currently signed on with an account that "
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1992 "can add that buddy."), NULL);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1993 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1994 else
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1995 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1996 purple_blist_request_add_buddy(account, username,
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1997 (group ? group->name : NULL),
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1998 alias);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
1999 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2000 }
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2001
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
2002 g_free(username);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
2003 g_free(protocol);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
2004 g_free(alias);
7706
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2005
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2006 if (path != NULL)
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2007 gtk_tree_path_free(path);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2008
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2009 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t);
e5e87715a42c [gaim-migrate @ 8351]
Sean Egan <seanegan@pidgin.im>
parents: 7693
diff changeset
2010 }
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2011 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
2012 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2013 gboolean result;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2014 PurpleGroup *group = NULL;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2015 GtkTreePath *path = NULL;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2016 GtkTreeViewDropPosition position;
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2017
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2018 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
2019 x, y, &path, &position))
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2020 {
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2021 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2022 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2023 GValue val;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2024
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2025 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel),
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2026 &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2027 val.g_type = 0;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2028 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel),
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2029 &iter, NODE_COLUMN, &val);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2030 node = g_value_get_pointer(&val);
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2031
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2032 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2033 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2034 group = (PurpleGroup *)node->parent->parent;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2035 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2036 else if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2037 PURPLE_BLIST_NODE_IS_CONTACT(node))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2038 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2039 group = (PurpleGroup *)node->parent;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2040 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2041 else if (PURPLE_BLIST_NODE_IS_GROUP(node))
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2042 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2043 group = (PurpleGroup *)node;
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2044 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2045 }
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2046
11137
cf40226ddff7 [gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents: 11134
diff changeset
2047 result = parse_vcard((const gchar *)sd->data, group);
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2048
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2049 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
2050 } 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
2051 GtkTreePath *path = NULL;
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2052 GtkTreeViewDropPosition position;
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2053
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2054 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
2055 x, y, &path, &position))
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2056 {
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2057 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2058 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2059 GValue val;
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2060
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2061 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel),
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2062 &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2063 val.g_type = 0;
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2064 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel),
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2065 &iter, NODE_COLUMN, &val);
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2066 node = g_value_get_pointer(&val);
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2067
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2068 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
2069 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
2070 pidgin_dnd_file_manage(sd, b->account, b->name);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10222
diff changeset
2071 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
2072 } else {
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10222
diff changeset
2073 gtk_drag_finish(dc, FALSE, FALSE, t);
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
2074 }
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2075 }
8089
0adbe5c66985 [gaim-migrate @ 8788]
Sean Egan <seanegan@pidgin.im>
parents: 8083
diff changeset
2076 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2077 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2078
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
2079 static void
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
2080 roundify(GdkPixbuf *pixbuf) {
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
2081 int width, height, rowstride;
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
2082 guchar *pixels;
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
2083
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
2084 if (!gdk_pixbuf_get_has_alpha(pixbuf))
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
2085 return;
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
2086
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
2087 width = gdk_pixbuf_get_width(pixbuf);
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
2088 height = gdk_pixbuf_get_height(pixbuf);
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
2089 rowstride = gdk_pixbuf_get_rowstride(pixbuf);
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
2090 pixels = gdk_pixbuf_get_pixels(pixbuf);
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
2091
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
2092 if (width < 6 || height < 6)
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
2093 return;
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
2094
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
2095 /* Top left */
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
2096 pixels[3] = 0;
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
2097 pixels[7] = 0x80;
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
2098 pixels[11] = 0xC0;
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
2099 pixels[rowstride + 3] = 0x80;
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
2100 pixels[rowstride * 2 + 3] = 0xC0;
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
2101
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
2102 /* Top right */
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
2103 pixels[width * 4 - 1] = 0;
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
2104 pixels[width * 4 - 5] = 0x80;
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
2105 pixels[width * 4 - 9] = 0xC0;
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
2106 pixels[rowstride + (width * 4) - 1] = 0x80;
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
2107 pixels[(2 * rowstride) + (width * 4) - 1] = 0xC0;
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
2108
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
2109 /* Bottom left */
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
2110 pixels[(height - 1) * rowstride + 3] = 0;
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
2111 pixels[(height - 1) * rowstride + 7] = 0x80;
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
2112 pixels[(height - 1) * rowstride + 11] = 0xC0;
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
2113 pixels[(height - 2) * rowstride + 3] = 0x80;
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
2114 pixels[(height - 3) * rowstride + 3] = 0xC0;
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
2115
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
2116 /* Bottom right */
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
2117 pixels[height * rowstride - 1] = 0;
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
2118 pixels[(height - 1) * rowstride - 1] = 0x80;
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
2119 pixels[(height - 2) * rowstride - 1] = 0xC0;
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
2120 pixels[height * rowstride - 5] = 0x80;
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
2121 pixels[height * rowstride - 9] = 0xC0;
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
2122 }
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
2123
15552
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2124 /* 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
2125 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
2126 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
2127 {
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2128 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
2129 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
2130 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
2131 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
2132 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
2133 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
2134 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
2135 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
2136
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2137 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
2138 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
2139 return;
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2140
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2141 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
2142 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
2143 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
2144 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
2145 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
2146 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
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 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
2149 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
2150 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
2151 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
2152 *(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
2153 *(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
2154 *(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
2155 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
2156 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
2157 *(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
2158 }
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2159 }
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2160 }
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2161
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
2162
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2163 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
2164 gboolean scaled, gboolean greyed)
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2165 {
10483
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2166 GdkPixbuf *buf, *ret = NULL;
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2167 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
2168 PurpleBuddyIcon *icon = NULL;
14914
290eb2170f38 [gaim-migrate @ 17621]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14882
diff changeset
2169 const guchar *data = NULL;
11137
cf40226ddff7 [gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents: 11134
diff changeset
2170 gsize len;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2171 PurpleBuddy *buddy = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2172 PurpleAccount *account = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2173 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
2174 PurpleStoredImage *custom_img;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2175
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2176 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2177 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2178 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2179 buddy = (PurpleBuddy*)node;
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2180 } else {
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2181 return NULL;
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2182 }
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2183
16625
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2184 if(buddy == NULL)
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2185 return NULL;
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2186
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2187 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
2188
b96a1c748fca this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents: 15479
diff changeset
2189 if(account && account->gc)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2190 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
2191
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2192 #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
2193 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
2194 return NULL;
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2195 #endif
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2196
16437
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2197 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
2198 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
2199 {
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16357
diff changeset
2200 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
2201 len = purple_imgstore_get_size(custom_img);
14914
290eb2170f38 [gaim-migrate @ 17621]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14882
diff changeset
2202 }
290eb2170f38 [gaim-migrate @ 17621]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14882
diff changeset
2203
290eb2170f38 [gaim-migrate @ 17621]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14882
diff changeset
2204 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
2205 /* 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
2206 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
2207 return NULL;
16625
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2208 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
2209
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2210 if(data == NULL)
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2211 return NULL;
d0a4891b5127 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
2212 }
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
2213
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2214 loader = gdk_pixbuf_loader_new();
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2215 gdk_pixbuf_loader_write(loader, data, len, NULL);
12601
be19ef28e2ce [gaim-migrate @ 14935]
Richard Laager <rlaager@pidgin.im>
parents: 12600
diff changeset
2216 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
2217
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
2218 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
2219 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
2220
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2221 buf = gdk_pixbuf_loader_get_pixbuf(loader);
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2222 if (buf)
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2223 g_object_ref(G_OBJECT(buf));
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2224 g_object_unref(G_OBJECT(loader));
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2225
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2226 if (buf) {
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2227 int orig_width, orig_height;
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2228 int scale_width, scale_height;
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2229
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2230 if (greyed) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2231 PurplePresence *presence = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2232 if (!PURPLE_BUDDY_IS_ONLINE(buddy))
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2233 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
2234 if (purple_presence_is_idle(presence))
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2235 gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.25, FALSE);
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2236 }
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2237
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2238 /* 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
2239 * 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
2240 * purposes */
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2241 scale_width = orig_width = gdk_pixbuf_get_width(buf);
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2242 scale_height = orig_height = gdk_pixbuf_get_height(buf);
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2243
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2244 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
2245 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
2246
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2247 if (scaled) {
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2248 if(scale_height > scale_width) {
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2249 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
2250 scale_height = 32;
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2251 } else {
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2252 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
2253 scale_width = 32;
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2254 }
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2255
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2256 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
2257 gdk_pixbuf_fill(ret, 0x00000000);
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2258 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
2259 if (pidgin_gdk_pixbuf_is_opaque(ret))
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
2260 roundify(ret);
10483
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2261 } else {
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2262 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
2263 }
10544
149155149247 [gaim-migrate @ 11910]
Nathan Walp <nwalp@pidgin.im>
parents: 10515
diff changeset
2264 g_object_unref(G_OBJECT(buf));
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2265 }
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2266
10483
e7b09a8b1f52 [gaim-migrate @ 11773]
Nathan Walp <nwalp@pidgin.im>
parents: 10482
diff changeset
2267 return ret;
10482
01c1287da66f [gaim-migrate @ 11772]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10477
diff changeset
2268 }
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2269 /* # - Status Icon
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2270 * P - Protocol Icon
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2271 * A - Buddy Icon
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2272 * [ - SMALL_SPACE
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2273 * = - LARGE_SPACE
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2274 * +--- STATUS_SIZE +--- td->avatar_width
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2275 * | +-- td->name_width |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2276 * +----+ +-------+ +---------+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2277 * | | | | | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2278 * +-------------------------------------------+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2279 * | [ = [ |--- TOOLTIP_BORDER
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2280 *name_height --+-| ######[BuddyName = PP [ AAAAAAAAAAA |--+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2281 * | | ######[ = PP [ AAAAAAAAAAA | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2282 * STATUS SIZE -| | ######[[[[[[[[[[[[[[[[[[[[[ AAAAAAAAAAA | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2283 * +--+-| ######[Account: So-and-so [ AAAAAAAAAAA | |-- td->avatar_height
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2284 * | | [Idle: 4h 15m [ AAAAAAAAAAA | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2285 * height --+ | [Foo: Bar, Baz [ AAAAAAAAAAA | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2286 * | | [Status: Awesome [ AAAAAAAAAAA |--+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2287 * +----| [Stop: Hammer Time [ |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2288 * | [ [ |--- TOOLTIP_BORDER
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2289 * +-------------------------------------------+
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2290 * | | | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2291 * | +----------------+ |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2292 * | | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2293 * | +-- td->width |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2294 * | |
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2295 * +---- TOOLTIP_BORDER +---- TOOLTIP_BORDER
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2296 *
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
2297 *
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2298 */
15606
a070ac7366f8 Perhaps a 22px icon is better in the tooltip
Sean Egan <seanegan@pidgin.im>
parents: 15588
diff changeset
2299 #define STATUS_SIZE 22
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2300 #define TOOLTIP_BORDER 12
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2301 #define SMALL_SPACE 6
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2302 #define LARGE_SPACE 12
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
2303 #define PRPL_SIZE 16
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2304 struct tooltip_data {
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2305 PangoLayout *layout;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2306 PangoLayout *name_layout;
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2307 GdkPixbuf *prpl_icon;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2308 GdkPixbuf *status_icon;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2309 GdkPixbuf *avatar;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2310 gboolean avatar_is_prpl_icon;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2311 int avatar_width;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2312 int avatar_height;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2313 int name_height;
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2314 int name_width;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2315 int width;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2316 int height;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2317 };
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2318
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2319 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
2320 {
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2321 char *tooltip_text = NULL;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2322 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
2323 PurpleAccount *account = NULL;
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2324 char *tmp, *node_name;
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2325
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2326 if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2327 account = ((PurpleBuddy*)(node))->account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2328 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2329 account = ((PurpleChat*)(node))->account;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2330 }
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2331
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
2332 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
2333 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
2334 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
2335 tooltip_text = pidgin_get_tooltip_text(node, full);
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2336 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
2337 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
2338
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2339 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2340 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
2341 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2342 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
2343 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
2344 g_free(tmp);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2345
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2346 pango_layout_set_markup(td->layout, tooltip_text, -1);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2347 pango_layout_set_wrap(td->layout, PANGO_WRAP_WORD);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2348 pango_layout_set_width(td->layout, 300000);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2349
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2350 pango_layout_get_size (td->layout, &td->width, &td->height);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2351 td->width = PANGO_PIXELS(td->width);
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2352 td->height = PANGO_PIXELS(td->height);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2353
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2354 pango_layout_set_markup(td->name_layout, node_name, -1);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2355 pango_layout_set_wrap(td->name_layout, PANGO_WRAP_WORD);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2356 pango_layout_set_width(td->name_layout, 300000);
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2357
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2358 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
2359 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
2360 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
2361 #if 0 /* PRPL Icon as avatar */
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2362 if(!td->avatar && full) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2363 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
2364 td->avatar_is_prpl_icon = TRUE;
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2365 }
15526
2aa8c06f946e tooltip tweaks
Sean Egan <seanegan@pidgin.im>
parents: 15525
diff changeset
2366 #endif
15769
813f36d31f6c Fix asserts when there is no buddy icon
Daniel Atallah <datallah@pidgin.im>
parents: 15692
diff changeset
2367
813f36d31f6c Fix asserts when there is no buddy icon
Daniel Atallah <datallah@pidgin.im>
parents: 15692
diff changeset
2368 if (td->avatar) {
813f36d31f6c Fix asserts when there is no buddy icon
Daniel Atallah <datallah@pidgin.im>
parents: 15692
diff changeset
2369 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
2370 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
2371 }
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2372
15550
d710f85e6d0e A small memory leak in the tooltip.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15546
diff changeset
2373 g_free(node_name);
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2374 g_free(tooltip_text);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2375 return td;
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2376 }
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2377
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2378 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
2379 {
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2380 GtkStyle *style;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2381 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
2382 int max_text_width;
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2383 int max_avatar_width;
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2384 GList *l;
15526
2aa8c06f946e tooltip tweaks
Sean Egan <seanegan@pidgin.im>
parents: 15525
diff changeset
2385 int prpl_col = 0;
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2386 GtkTextDirection dir = gtk_widget_get_direction(widget);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
2387
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2388 if(gtkblist->tooltipdata == NULL)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2389 return;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2390
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2391 style = gtkblist->tipwindow->style;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2392 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
2393 NULL, gtkblist->tipwindow, "tooltip", 0, 0, -1, -1);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2394
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
2395 max_text_width = 0;
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2396 max_avatar_width = 0;
15545
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2397
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2398 for(l = gtkblist->tooltipdata; l; l = l->next)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2399 {
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2400 struct tooltip_data *td = l->data;
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
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 = 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
2403 MAX(td->width, td->name_width));
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2404 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
2405 }
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2406
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2407 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
2408 if (dir == GTK_TEXT_DIR_RTL)
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2409 prpl_col = TOOLTIP_BORDER + max_avatar_width + SMALL_SPACE;
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2410 else
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2411 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
2412
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2413 current_height = 12;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2414 for(l = gtkblist->tooltipdata; l; l = l->next)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2415 {
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2416 struct tooltip_data *td = l->data;
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2417
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
2418 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
2419 {
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2420 if (dir == GTK_TEXT_DIR_RTL)
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2421 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
2422 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2423 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
2424 else
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2425 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
2426 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2427 max_width - (td->avatar_width+ TOOLTIP_BORDER)-1,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2428 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
2429 }
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2430
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2431 #if GTK_CHECK_VERSION(2,2,0)
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2432 if (dir == GTK_TEXT_DIR_RTL)
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2433 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->status_icon,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2434 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
2435 else
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2436 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->status_icon,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2437 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
2438 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
2439 {
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2440 if (dir == GTK_TEXT_DIR_RTL)
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2441 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2442 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
2443 else
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2444 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2445 td->avatar, 0, 0, max_width - (td->avatar_width + TOOLTIP_BORDER),
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2446 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
2447 }
47e9eddcf323 Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@pidgin.im>
parents: 15644
diff changeset
2448
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2449 if (!td->avatar_is_prpl_icon)
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2450 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
2451 0, 0,
15526
2aa8c06f946e tooltip tweaks
Sean Egan <seanegan@pidgin.im>
parents: 15525
diff changeset
2452 prpl_col,
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2453 current_height + ((td->name_height / 2) - (PRPL_SIZE / 2)),
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2454 -1 , -1, GDK_RGB_DITHER_NONE, 0, 0);
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2455
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2456 #else
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2457 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
2458 if(td->avatar)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2459 gdk_pixbuf_render_to_drawable(td->avatar,
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2460 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
2461 max_width - (td->avatar_width + TOOLTIP_BORDER),
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
2462 current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2463 #endif
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2464 if (dir == GTK_TEXT_DIR_RTL) {
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2465 gtk_paint_layout(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2466 NULL, gtkblist->tipwindow, "tooltip",
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
2467 max_width -(TOOLTIP_BORDER + STATUS_SIZE +SMALL_SPACE) - PANGO_PIXELS(300000),
15644
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2468 current_height, td->name_layout);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2469 } else {
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2470 gtk_paint_layout (style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2471 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2472 TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE, current_height, td->name_layout);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2473 }
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2474 if (dir != GTK_TEXT_DIR_RTL) {
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2475 gtk_paint_layout (style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2476 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2477 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
2478 } else {
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2479 gtk_paint_layout(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2480 NULL, gtkblist->tipwindow, "tooltip",
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2481 max_width - (TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE) - PANGO_PIXELS(300000),
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2482 current_height + td->name_height,
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2483 td->layout);
6ca1260680be RTL Tooltips.
Sean Egan <seanegan@pidgin.im>
parents: 15623
diff changeset
2484 }
15539
b204042fba24 fix overlapping in tooltips w/ large avatars
Nathan Walp <nwalp@pidgin.im>
parents: 15526
diff changeset
2485
b204042fba24 fix overlapping in tooltips w/ large avatars
Nathan Walp <nwalp@pidgin.im>
parents: 15526
diff changeset
2486 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
2487 }
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2488 }
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2489
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2490
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2491 static void pidgin_blist_tooltip_destroy()
8254
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2492 {
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2493 while(gtkblist->tooltipdata) {
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2494 struct tooltip_data *td = gtkblist->tooltipdata->data;
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2495
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2496 if(td->avatar)
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2497 g_object_unref(td->avatar);
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2498 if(td->status_icon)
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2499 g_object_unref(td->status_icon);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2500 if(td->prpl_icon)
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2501 g_object_unref(td->prpl_icon);
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2502 g_object_unref(td->layout);
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2503 g_object_unref(td->name_layout);
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2504 g_free(td);
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2505 gtkblist->tooltipdata = g_list_delete_link(gtkblist->tooltipdata, gtkblist->tooltipdata);
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2506 }
11636
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2507
8254
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2508 if (gtkblist->tipwindow == NULL)
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2509 return;
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2510
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2511 gtk_widget_destroy(gtkblist->tipwindow);
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2512 gtkblist->tipwindow = NULL;
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2513 }
3b3d86ef983b [gaim-migrate @ 8977]
Mark Doliner <markdoliner@pidgin.im>
parents: 8252
diff changeset
2514
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2515 static gboolean pidgin_blist_expand_timeout(GtkWidget *tv)
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2516 {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2517 GtkTreePath *path;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2518 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2519 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2520 GValue val;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2521 struct _pidgin_blist_node *gtknode;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2522
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2523 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
2524 return FALSE;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2525 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
2526 val.g_type = 0;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2527 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
2528 node = g_value_get_pointer(&val);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2529
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2530 if(!PURPLE_BLIST_NODE_IS_CONTACT(node)) {
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
2531 gtk_tree_path_free(path);
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2532 return FALSE;
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
2533 }
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2534
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2535 gtknode = node->ui_data;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2536
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2537 if (!gtknode->contact_expanded) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2538 GtkTreeIter i;
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2539
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2540 pidgin_blist_expand_contact_cb(NULL, node);
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2541
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2542 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
2543 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
2544 gtkblist->mouseover_contact = node;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2545 gtk_tree_path_down (path);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2546 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
2547 GdkRectangle rect;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2548 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
2549 gtkblist->contact_rect.height += rect.height;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2550 gtk_tree_path_next(path);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2551 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2552 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2553 gtk_tree_path_free(path);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2554 return FALSE;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2555 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2556
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2557 static gboolean buddy_is_displayable(PurpleBuddy *buddy)
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2558 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2559 struct _pidgin_blist_node *gtknode;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2560
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2561 if(!buddy)
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2562 return FALSE;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2563
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2564 gtknode = ((PurpleBlistNode*)buddy)->ui_data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2565
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2566 return (purple_account_is_connected(buddy->account) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2567 (purple_presence_is_online(buddy->presence) ||
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
2568 (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
2569 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
2570 purple_blist_node_get_bool((PurpleBlistNode*)buddy, "show_offline")));
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2571 }
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2572
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2573 static gboolean pidgin_blist_tooltip_timeout(GtkWidget *tv)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2574 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2575 GtkTreePath *path;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2576 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2577 PurpleBlistNode *node;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2578 GValue val;
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2579 int scr_w, scr_h, w, h, x, y;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2580 #if GTK_CHECK_VERSION(2,2,0)
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2581 int mon_num;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2582 GdkScreen *screen = NULL;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2583 #endif
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2584 gboolean tooltip_top = FALSE;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2585 struct _pidgin_blist_node *gtknode;
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2586 GdkRectangle mon_size;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2587
11636
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2588 /*
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2589 * Attempt to free the previous tooltip. I have a feeling
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2590 * this is never needed... but just in case.
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2591 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2592 pidgin_blist_tooltip_destroy();
11636
7512e00792be [gaim-migrate @ 13912]
Mark Doliner <markdoliner@pidgin.im>
parents: 11634
diff changeset
2593
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2594 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
2595 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2596 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
2597 val.g_type = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2598 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
2599 node = g_value_get_pointer(&val);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2600
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
2601 gtk_tree_path_free(path);
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
2602
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2603 gtkblist->tipwindow = gtk_window_new(GTK_WINDOW_POPUP);
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2604
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2605 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
2606 struct tooltip_data *td = create_tip_for_node(node, TRUE);
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2607 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
2608 w = TOOLTIP_BORDER + STATUS_SIZE + SMALL_SPACE +
15503
40690461a1af PRPL Icons in tooltips
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
2609 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
2610 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
2611 + TOOLTIP_BORDER;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2612 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2613 PurpleBlistNode *child;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2614 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
2615 int max_text_width = 0;
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2616 int max_avatar_width = 0;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2617 w = h = 0;
15545
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2618
12530
b33f97566985 [gaim-migrate @ 14843]
Nathan Walp <nwalp@pidgin.im>
parents: 12522
diff changeset
2619 for(child = node->child; child; child = child->next)
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2620 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2621 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
2622 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
2623 if (b == (PurpleBuddy *)child) {
11988
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
2624 gtkblist->tooltipdata = g_list_prepend(gtkblist->tooltipdata, td);
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
2625 } else {
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
2626 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td);
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
2627 }
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2628 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
2629 max_avatar_width = MAX(max_avatar_width, td->avatar_width);
16159
67d12aa69723 Fix ticket #52
Sean Egan <seanegan@pidgin.im>
parents: 16152
diff changeset
2630 h += MAX(TOOLTIP_BORDER + MAX(STATUS_SIZE,td->avatar_height),
67d12aa69723 Fix ticket #52
Sean Egan <seanegan@pidgin.im>
parents: 16152
diff changeset
2631 TOOLTIP_BORDER + td->height + td->name_height);
15545
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2632 }
46584790b5f0 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15544
diff changeset
2633 }
16159
67d12aa69723 Fix ticket #52
Sean Egan <seanegan@pidgin.im>
parents: 16152
diff changeset
2634 h += TOOLTIP_BORDER;
15546
f320e2b2a6e8 fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15545
diff changeset
2635 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
2636 } else {
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2637 gtk_widget_destroy(gtkblist->tipwindow);
11892
88eba6864684 [gaim-migrate @ 14183]
Nathan Walp <nwalp@pidgin.im>
parents: 11890
diff changeset
2638 gtkblist->tipwindow = NULL;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2639 return FALSE;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2640 }
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2641
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2642 if (gtkblist->tooltipdata == NULL) {
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2643 gtk_widget_destroy(gtkblist->tipwindow);
11892
88eba6864684 [gaim-migrate @ 14183]
Nathan Walp <nwalp@pidgin.im>
parents: 11890
diff changeset
2644 gtkblist->tipwindow = NULL;
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2645 return FALSE;
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
2646 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2647
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2648 gtknode = node->ui_data;
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2649
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2650 gtk_widget_set_app_paintable(gtkblist->tipwindow, TRUE);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2651 gtk_window_set_resizable(GTK_WINDOW(gtkblist->tipwindow), FALSE);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2652 gtk_widget_set_name(gtkblist->tipwindow, "gtk-tooltips");
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2653 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
2654 G_CALLBACK(pidgin_blist_paint_tip), NULL);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2655 gtk_widget_ensure_style (gtkblist->tipwindow);
7837
edc688e327dc [gaim-migrate @ 8490]
Nathan Walp <nwalp@pidgin.im>
parents: 7811
diff changeset
2656
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2657
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2658 #if GTK_CHECK_VERSION(2,2,0)
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2659 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
2660 mon_num = gdk_screen_get_monitor_at_point(screen, x, y);
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2661 gdk_screen_get_monitor_geometry(screen, mon_num, &mon_size);
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2662
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2663 scr_w = mon_size.width + mon_size.x;
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2664 scr_h = mon_size.height + mon_size.y;
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2665 #else
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2666 scr_w = gdk_screen_width();
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2667 scr_h = gdk_screen_height();
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2668 gdk_window_get_pointer(NULL, &x, &y, NULL);
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2669 mon_size.x = 0;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2670 mon_size.y = 0;
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2671 #endif
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2672
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2673 #if GTK_CHECK_VERSION(2,2,0)
10046
7e9175ee9b63 [gaim-migrate @ 11007]
Mark Doliner <markdoliner@pidgin.im>
parents: 10036
diff changeset
2674 if (w > mon_size.width)
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2675 w = mon_size.width - 10;
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2676
10046
7e9175ee9b63 [gaim-migrate @ 11007]
Mark Doliner <markdoliner@pidgin.im>
parents: 10036
diff changeset
2677 if (h > mon_size.height)
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2678 h = mon_size.height - 10;
9869
22c820135ca5 [gaim-migrate @ 10748]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9834
diff changeset
2679 #endif
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2680
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2681 if (GTK_WIDGET_NO_WINDOW(gtkblist->window))
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2682 y+=gtkblist->window->allocation.y;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2683
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2684 x -= ((w >> 1) + 4);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2685
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2686 if ((y + h + 4) > scr_h || tooltip_top)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2687 y = y - h - 5;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2688 else
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2689 y = y + 6;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2690
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2691 if (y < mon_size.y)
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2692 y = mon_size.y;
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2693
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2694 if (y != mon_size.y) {
7719
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2695 if ((x + w) > scr_w)
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2696 x -= (x + w + 5) - scr_w;
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2697 else if (x < mon_size.x)
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2698 x = mon_size.x;
7719
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2699 } else {
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2700 x -= (w / 2 + 10);
9773
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2701 if (x < mon_size.x)
68834782c27a [gaim-migrate @ 10641]
Mark Doliner <markdoliner@pidgin.im>
parents: 9770
diff changeset
2702 x = mon_size.x;
7719
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2703 }
0cffc1b6ecbb [gaim-migrate @ 8364]
Sean Egan <seanegan@pidgin.im>
parents: 7712
diff changeset
2704
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2705 gtk_widget_set_size_request(gtkblist->tipwindow, w, h);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2706 gtk_window_move(GTK_WINDOW(gtkblist->tipwindow), x, y);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
2707 gtk_widget_show(gtkblist->tipwindow);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2708
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2709 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2710 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2711
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2712 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
2713 gint x, gint y, guint time, gpointer user_data)
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2714 {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2715 GtkTreePath *path;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2716 int delay;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2717
12679
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2718 /*
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2719 * 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
2720 * the contact auto-expands.
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2721 */
42fa0799eef6 [gaim-migrate @ 15022]
Mark Doliner <markdoliner@pidgin.im>
parents: 12656
diff changeset
2722 delay = 900;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2723
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2724 if (gtkblist->drag_timeout) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2725 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
2726 return FALSE;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2727 /* 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
2728 g_source_remove(gtkblist->drag_timeout);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2729 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2730
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2731 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), x, y, &path, NULL, NULL, NULL);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2732 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &gtkblist->tip_rect);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2733
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2734 if (path)
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2735 gtk_tree_path_free(path);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2736 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
2737
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2738 if (gtkblist->mouseover_contact) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2739 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
2740 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact);
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2741 gtkblist->mouseover_contact = NULL;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2742 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2743 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2744
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2745 return FALSE;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2746 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2747
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2748 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
2749 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2750 GtkTreePath *path;
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2751 int delay;
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2752
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2753 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
2754
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2755 if (delay == 0)
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2756 return FALSE;
8083
312f60085554 [gaim-migrate @ 8782]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
2757
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2758 if (gtkblist->timeout) {
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2759 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
2760 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2761 /* 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
2762 pidgin_blist_tooltip_destroy();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2763 g_source_remove(gtkblist->timeout);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2764 }
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2765
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2766 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
2767 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
2768
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2769 if (path)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2770 gtk_tree_path_free(path);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2771 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
2772
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2773 if (gtkblist->mouseover_contact) {
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2774 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
2775 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact);
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2776 gtkblist->mouseover_contact = NULL;
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2777 }
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2778 }
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2779
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2780 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2781 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2782
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2783 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
2784 {
8083
312f60085554 [gaim-migrate @ 8782]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
2785
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2786 if (gtkblist->timeout) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2787 g_source_remove(gtkblist->timeout);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2788 gtkblist->timeout = 0;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2789 }
10382
32e07712e224 [gaim-migrate @ 11608]
Luke Schierer <lschiere@pidgin.im>
parents: 10357
diff changeset
2790
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2791 if (gtkblist->drag_timeout) {
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2792 g_source_remove(gtkblist->drag_timeout);
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2793 gtkblist->drag_timeout = 0;
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2794 }
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
2795
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2796 pidgin_blist_tooltip_destroy();
7720
ee21f446e1fe [gaim-migrate @ 8365]
Sean Egan <seanegan@pidgin.im>
parents: 7719
diff changeset
2797
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2798 if (gtkblist->mouseover_contact &&
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
2799 !((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
2800 (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
2801 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact);
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2802 gtkblist->mouseover_contact = NULL;
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
2803 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2804 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2805
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2806 static void
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2807 toggle_debug(void)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2808 {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2809 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
2810 !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/enabled"));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2811 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2812
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2813
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2814 /***************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2815 * Crap *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2816 ***************************************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2817 static GtkItemFactoryEntry blist_menu[] =
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2818 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2819 /* Buddies menu */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2820 { 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
2821 { 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
2822 { 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
2823 { 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
2824 { 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
2825 { "/Buddies/sep1", NULL, NULL, 0, "<Separator>", NULL },
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2826 { 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
2827 { 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
2828 { 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
2829 { 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
2830 { N_("/Buddies/_Sort Buddies"), NULL, NULL, 0, "<Branch>", NULL },
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2831 { "/Buddies/sep2", NULL, NULL, 0, "<Separator>", NULL },
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2832 { 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
2833 { 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
2834 { 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
2835 { "/Buddies/sep3", NULL, NULL, 0, "<Separator>", NULL },
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2836 { 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
2837
c24609bae42d [gaim-migrate @ 14604]
Peter Lawler <pidgin@bleeter.id.au>
parents: 12298
diff changeset
2838 /* Accounts menu */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2839 { 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
2840 { 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
2841
8470
100fc1feea95 [gaim-migrate @ 9203]
Christian Hammond <chipx86@chipx86.com>
parents: 8444
diff changeset
2842 /* Tools */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2843 { 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
2844 { 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
2845 { 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
2846 { 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
2847 { 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
2848 { "/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
2849 { 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
2850 { 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
2851 { 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
2852 { "/Tools/sep3", NULL, NULL, 0, "<Separator>", NULL },
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
2853 { N_("/Tools/Mute _Sounds"), "<CTL>S", pidgin_blist_mute_sounds_cb, 0, "<CheckItem>", NULL },
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2854
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2855 /* Help */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
2856 { N_("/_Help"), NULL, NULL, 0, "<Branch>", NULL },
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2857 { N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP },
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_("/Help/_Debug Window"), NULL, toggle_debug, 0, "<Item>", NULL },
16879
659d9b9e4760 kill the Help > About star icon
Sean Egan <seanegan@pidgin.im>
parents: 16825
diff changeset
2859 { N_("/Help/_About"), NULL, pidgin_dialogs_about, 0, "<Item>", NULL },
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2860 };
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2861
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2862 /*********************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2863 * Private Utility functions *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2864 *********************************************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2865
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2866 static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2867 {
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2868 GString *str = g_string_new("");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2869 PurplePlugin *prpl;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2870 PurplePluginProtocolInfo *prpl_info = NULL;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2871 char *tmp;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2872
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2873 if (PURPLE_BLIST_NODE_IS_CHAT(node))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2874 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2875 PurpleChat *chat;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2876 GList *cur;
5274
71553f31db2e [gaim-migrate @ 5646]
Nathan Walp <nwalp@pidgin.im>
parents: 5273
diff changeset
2877 struct proto_chat_entry *pce;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2878 char *name, *value;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2879
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2880 chat = (PurpleChat *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2881 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
2882 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2883
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2884 if (g_list_length(purple_connections_get_all()) > 1)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2885 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2886 tmp = g_markup_escape_text(chat->account->username, -1);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2887 g_string_append_printf(str, _("\n<b>Account:</b> %s"), tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2888 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2889 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2890
9959
e80396496a78 [gaim-migrate @ 10866]
Luke Schierer <lschiere@pidgin.im>
parents: 9954
diff changeset
2891 if (prpl_info->chat_info != NULL)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2892 cur = prpl_info->chat_info(chat->account->gc);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2893 else
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2894 cur = NULL;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2895
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2896 while (cur != NULL)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2897 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2898 pce = cur->data;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2899
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2900 if (!pce->secret && (!pce->required &&
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2901 g_hash_table_lookup(chat->components, pce->identifier) == NULL))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2902 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2903 tmp = purple_text_strip_mnemonic(pce->label);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2904 name = g_markup_escape_text(tmp, -1);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2905 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2906 value = g_markup_escape_text(g_hash_table_lookup(
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2907 chat->components, pce->identifier), -1);
10924
248233a58180 [gaim-migrate @ 12695]
Daniel Atallah <datallah@pidgin.im>
parents: 10918
diff changeset
2908 g_string_append_printf(str, "\n<b>%s</b> %s",
248233a58180 [gaim-migrate @ 12695]
Daniel Atallah <datallah@pidgin.im>
parents: 10918
diff changeset
2909 name ? name : "",
248233a58180 [gaim-migrate @ 12695]
Daniel Atallah <datallah@pidgin.im>
parents: 10918
diff changeset
2910 value ? value : "");
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2911 g_free(name);
8020
9c5ae652fc7f [gaim-migrate @ 8700]
Nathan Walp <nwalp@pidgin.im>
parents: 8003
diff changeset
2912 g_free(value);
9c5ae652fc7f [gaim-migrate @ 8700]
Nathan Walp <nwalp@pidgin.im>
parents: 8003
diff changeset
2913 }
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2914
5274
71553f31db2e [gaim-migrate @ 5646]
Nathan Walp <nwalp@pidgin.im>
parents: 5273
diff changeset
2915 g_free(pce);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2916 cur = g_list_remove(cur, pce);
5274
71553f31db2e [gaim-migrate @ 5646]
Nathan Walp <nwalp@pidgin.im>
parents: 5273
diff changeset
2917 }
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2918 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2919 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
2920 {
15209
9dd48f6c8805 [gaim-migrate @ 17933]
Evan Schoenberg <evands@pidgin.im>
parents: 15206
diff changeset
2921 /* NOTE: THIS FUNCTION IS NO LONGER CALLED FOR CONTACTS.
9dd48f6c8805 [gaim-migrate @ 17933]
Evan Schoenberg <evands@pidgin.im>
parents: 15206
diff changeset
2922 * 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
2923 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2924 PurpleContact *c;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2925 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2926 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2927 PurpleNotifyUserInfo *user_info;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2928 char *tmp;
10567
87b02dd40349 [gaim-migrate @ 11951]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10544
diff changeset
2929 time_t idle_secs, signon;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2930
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2931 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2932 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2933 c = (PurpleContact *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2934 b = purple_contact_get_priority_buddy(c);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2935 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2936 else
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2937 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2938 b = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2939 c = purple_buddy_get_contact(b);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2940 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
2941
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2942 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
2943 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2944
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2945 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2946 user_info = purple_notify_user_info_new();
15206
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
2947
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2948 /* Account */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2949 if (full && g_list_length(purple_connections_get_all()) > 1)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2950 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2951 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
2952 purple_buddy_get_account(b)), -1);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2953 purple_notify_user_info_add_pair(user_info, _("Account"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2954 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2955 }
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 /* Alias */
12942
b0b4accb55fb [gaim-migrate @ 15295]
Richard Laager <rlaager@pidgin.im>
parents: 12941
diff changeset
2958 /* 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
2959 * 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
2960 if (full && b->alias != NULL && b->alias[0] != '\0' &&
13218
47708e4d453e [gaim-migrate @ 15581]
Richard Laager <rlaager@pidgin.im>
parents: 13202
diff changeset
2961 (c->alias != NULL && c->alias[0] != '\0') &&
47708e4d453e [gaim-migrate @ 15581]
Richard Laager <rlaager@pidgin.im>
parents: 13202
diff changeset
2962 strcmp(c->alias, b->alias) != 0)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2963 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2964 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
2965 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
2966 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2967 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2968
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2969 /* Nickname/Server Alias */
12966
4ef0b7997610 [gaim-migrate @ 15319]
Richard Laager <rlaager@pidgin.im>
parents: 12943
diff changeset
2970 /* 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
2971 * alias, but many people on MSN set long nicknames, which
4ef0b7997610 [gaim-migrate @ 15319]
Richard Laager <rlaager@pidgin.im>
parents: 12943
diff changeset
2972 * 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
2973 * to look at the tooltip. */
4ef0b7997610 [gaim-migrate @ 15319]
Richard Laager <rlaager@pidgin.im>
parents: 12943
diff changeset
2974 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
2975 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2976 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
2977 purple_notify_user_info_add_pair(user_info, _("Nickname"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2978 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2979 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2980
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2981 /* Logged In */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2982 signon = purple_presence_get_login_time(presence);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2983 if (full && PURPLE_BUDDY_IS_ONLINE(b) && signon > 0)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2984 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2985 tmp = purple_str_seconds_to_string(time(NULL) - signon);
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, _("Logged In"), 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 /* Idle */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2991 if (purple_presence_is_idle(presence))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2992 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2993 idle_secs = purple_presence_get_idle_time(presence);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2994 if (idle_secs > 0)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2995 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2996 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
2997 purple_notify_user_info_add_pair(user_info, _("Idle"), tmp);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2998 g_free(tmp);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
2999 }
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 /* Last Seen */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3003 if (full && !PURPLE_BUDDY_IS_ONLINE(b))
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3004 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3005 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
3006 PurpleBlistNode *bnode;
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3007 int lastseen = 0;
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3008
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3009 if (!gtknode->contact_expanded || PURPLE_BLIST_NODE_IS_CONTACT(node))
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3010 {
11437
20ba0815b4f8 [gaim-migrate @ 13674]
Richard Laager <rlaager@pidgin.im>
parents: 11436
diff changeset
3011 /* 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
3012 * an expanded contact itself so we show the most recent
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3013 * (largest) last_seen time for any of the buddies under
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3014 * the contact. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3015 for (bnode = ((PurpleBlistNode *)c)->child ; bnode != NULL ; bnode = bnode->next)
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3016 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3017 int value = purple_blist_node_get_int(bnode, "last_seen");
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3018 if (value > lastseen)
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3019 lastseen = value;
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3020 }
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3021 }
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3022 else
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3023 {
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3024 /* We're dealing with a buddy under an expanded contact,
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3025 * 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
3026 lastseen = purple_blist_node_get_int(&b->node, "last_seen");
11023
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3027 }
1e39a0e74a18 [gaim-migrate @ 12895]
Richard Laager <rlaager@pidgin.im>
parents: 11018
diff changeset
3028
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3029 if (lastseen > 0)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3030 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3031 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
3032 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
3033 g_free(tmp);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3034 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3035 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3036
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3037
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3038 /* Offline? */
12970
c2f3b4dcf711 [gaim-migrate @ 15323]
Richard Laager <rlaager@pidgin.im>
parents: 12966
diff changeset
3039 /* 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
3040 if (!PURPLE_BUDDY_IS_ONLINE(b)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3041 purple_notify_user_info_add_pair(user_info, _("Status"), _("Offline"));
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3042 }
10992
ccf59743dae4 [gaim-migrate @ 12830]
Daniel Atallah <datallah@pidgin.im>
parents: 10968
diff changeset
3043
ccf59743dae4 [gaim-migrate @ 12830]
Daniel Atallah <datallah@pidgin.im>
parents: 10968
diff changeset
3044 if (prpl_info && prpl_info->tooltip_text)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3045 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3046 /* Additional text from the PRPL */
15206
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
3047 prpl_info->tooltip_text(b, user_info, full);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3048 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3049
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3050 /* These are Easter Eggs. Patches to remove them will be rejected. */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3051 if (!g_ascii_strcasecmp(b->name, "robflynn"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3052 purple_notify_user_info_add_pair(user_info, _("Description"), _("Spooky"));
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3053 if (!g_ascii_strcasecmp(b->name, "seanegn"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3054 purple_notify_user_info_add_pair(user_info, _("Status"), _("Awesome"));
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3055 if (!g_ascii_strcasecmp(b->name, "chipx86"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3056 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
3057
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3058 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
3059 g_string_append(str, tmp);
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
3060 g_free(tmp);
70520a610969 [gaim-migrate @ 17930]
Evan Schoenberg <evands@pidgin.im>
parents: 15177
diff changeset
3061
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3062 purple_notify_user_info_destroy(user_info);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3063 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3064
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3065 purple_signal_emit(pidgin_blist_get_handle(),
12713
6f057a6e0516 [gaim-migrate @ 15057]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12679
diff changeset
3066 "drawing-tooltip", node, str, full);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3067
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
3068 return g_string_free(str, FALSE);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3069 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3070
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3071 GdkPixbuf *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3072 pidgin_blist_get_emblem(PurpleBlistNode *node)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3073 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3074 PurpleBuddy *buddy = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3075 struct _pidgin_blist_node *gtknode = node->ui_data;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3076 struct _pidgin_blist_node *gtkbuddynode = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3077 PurplePlugin *prpl;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3078 PurplePluginProtocolInfo *prpl_info;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3079 const char *name = NULL;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3080 char *filename, *path;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3081 GdkPixbuf *ret;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3082 PurplePresence *p;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3083
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3084
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3085
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3086 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3087 if(!gtknode->contact_expanded) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3088 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3089 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3090 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3091 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3092 buddy = (PurpleBuddy*)node;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3093 gtkbuddynode = node->ui_data;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3094 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
3095 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
3096 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3097 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
3098 } else {
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3099 return NULL;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3100 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3101
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3102 if (!purple_privacy_check(buddy->account, purple_buddy_get_name(buddy))) {
15561
bdb019a1f485 Blocked emblem
Sean Egan <seanegan@pidgin.im>
parents: 15559
diff changeset
3103 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
3104 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
3105 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
3106 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
3107 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3108
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3109 p = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3110 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
3111 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
3112 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
3113 g_free(path);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3114 return ret;
15561
bdb019a1f485 Blocked emblem
Sean Egan <seanegan@pidgin.im>
parents: 15559
diff changeset
3115 }
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3116
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3117 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
3118 if (!prpl)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3119 return NULL;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3120
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3121 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3122 if (prpl_info && prpl_info->list_emblem)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3123 name = prpl_info->list_emblem(buddy);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3124
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3125 if (name == NULL)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3126 return NULL;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3127
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3128 filename = g_strdup_printf("%s.png", name);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3129
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3130 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
3131 ret = gdk_pixbuf_new_from_file(path, NULL);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3132
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3133 g_free(filename);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3134 g_free(path);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3135
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3136 return ret;
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3137 }
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
3138
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3139
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
3140 GdkPixbuf *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3141 pidgin_blist_get_status_icon(PurpleBlistNode *node, PidginStatusIconSize size)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3142 {
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
3143 GdkPixbuf *ret;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3144 const char *protoname = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3145 struct _pidgin_blist_node *gtknode = node->ui_data;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3146 struct _pidgin_blist_node *gtkbuddynode = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3147 PurpleBuddy *buddy = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3148 PurpleChat *chat = NULL;
15606
a070ac7366f8 Perhaps a 22px icon is better in the tooltip
Sean Egan <seanegan@pidgin.im>
parents: 15588
diff changeset
3149 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
3150 PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3151
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3152 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
3153 if(!gtknode->contact_expanded) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3154 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
3155 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
3156 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
3157 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3158 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3159 buddy = (PurpleBuddy*)node;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
3160 gtkbuddynode = node->ui_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3161 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3162 chat = (PurpleChat*)node;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3163 } else {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3164 return NULL;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3165 }
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3166
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3167 if(buddy || chat) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3168 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3169 PurplePlugin *prpl;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3170 PurplePluginProtocolInfo *prpl_info;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3171
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3172 if(buddy)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3173 account = buddy->account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3174 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3175 account = chat->account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3176
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3177 prpl = purple_find_prpl(purple_account_get_protocol_id(account));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3178 if(!prpl)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3179 return NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3180
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3181 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3182
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3183 if(prpl_info && prpl_info->list_icon) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3184 protoname = prpl_info->list_icon(account, buddy);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3185 }
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3186 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3187
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
3188 if(buddy) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3189 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
3190 purple_buddy_get_name(buddy),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3191 purple_buddy_get_account(buddy));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3192 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
3193 if(conv != NULL) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3194 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
3195 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
3196 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
3197 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
3198 }
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
3199 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3200 p = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3201
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3202 if (PURPLE_BUDDY_IS_ONLINE(buddy) && gtkbuddynode && gtkbuddynode->recent_signonoff)
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3203 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
3204 icon_size, "GtkTreeView");
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3205 else if (gtkbuddynode && gtkbuddynode->recent_signonoff)
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3206 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
3207 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3208 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
3209 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
3210 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
3211 icon_size, "GtkTreeView");
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3212 else
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3213 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
3214 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3215 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
3216 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
3217 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
3218 icon_size, "GtkTreeView");
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3219 else
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3220 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
3221 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3222 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
3223 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
3224 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
3225 icon_size, "GtkTreeView");
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3226 else
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3227 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
3228 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3229 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_OFFLINE))
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3230 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), PIDGIN_STOCK_STATUS_OFFLINE,
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3231 icon_size, "GtkTreeView");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3232 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
3233 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
3234 icon_size, "GtkTreeView");
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3235 else
15554
9a0b1403e7f2 Faded idle status icons
Sean Egan <seanegan@pidgin.im>
parents: 15552
diff changeset
3236 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
3237 icon_size, "GtkTreeView");
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3238 } else if (chat) {
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3239 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
3240 icon_size, "GtkTreeView");
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3241 } else {
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3242 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
3243 icon_size, "GtkTreeView");
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
3244 }
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
3245
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
3246 return ret;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3247 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3248
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3249 static gchar *pidgin_blist_get_name_markup(PurpleBuddy *b, gboolean selected)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3250 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3251 const char *name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3252 char *esc, *text = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3253 PurplePlugin *prpl;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3254 PurplePluginProtocolInfo *prpl_info = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3255 PurpleContact *contact;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3256 PurplePresence *presence;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3257 struct _pidgin_blist_node *gtkcontactnode = NULL;
11257
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
3258 char *idletime = NULL, *statustext = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3259 time_t t;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3260 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
3261 purple_buddy_get_name(b),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3262 purple_buddy_get_account(b));
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3263 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
3264 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
3265
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
3266 if(conv != NULL) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3267 gtkconv = PIDGIN_CONVERSATION(conv);
15563
9eea2b8c2846 pidginconv to pidgin_conv
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
3268 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
3269 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
3270 }
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
3271 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3272
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3273 /* XXX Good luck cleaning up this crap */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3274
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3275 contact = (PurpleContact*)((PurpleBlistNode*)b)->parent;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3276 if(contact)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3277 gtkcontactnode = ((PurpleBlistNode*)contact)->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3278
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3279 if(gtkcontactnode && !gtkcontactnode->contact_expanded && contact->alias)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3280 name = contact->alias;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3281 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3282 name = purple_buddy_get_alias(b);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3283 esc = g_markup_escape_text(name, strlen(name));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3284
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3285 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3286
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3287 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
3288 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3289 if (!selected && purple_presence_is_idle(presence))
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
3290 {
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
3291 text = g_strdup_printf("<span color='%s'>%s</span>",
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
3292 dim_grey(), esc);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3293 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
3294 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
3295 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
3296 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
3297 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
3298 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3299 return text;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3300 }
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
3301 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
3302 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
3303 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
3304 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
3305 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
3306 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3307 return esc;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3308 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3309
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3310 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
3311
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3312 if (prpl != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3313 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3314
8122
64dc12809940 [gaim-migrate @ 8826]
Christian Hammond <chipx86@chipx86.com>
parents: 8113
diff changeset
3315 if (prpl_info && prpl_info->status_text && b->account->gc) {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3316 char *tmp = prpl_info->status_text(b);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3317 const char *end;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3318
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3319 if(tmp && !g_utf8_validate(tmp, -1, &end)) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3320 char *new = g_strndup(tmp,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3321 g_utf8_pointer_to_offset(tmp, end));
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3322 g_free(tmp);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3323 tmp = new;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3324 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3325
10288
fc688f632351 [gaim-migrate @ 11462]
Nathan Walp <nwalp@pidgin.im>
parents: 10287
diff changeset
3326 #if !GTK_CHECK_VERSION(2,6,0)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3327 if(tmp) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3328 char buf[32];
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3329 char *c = tmp;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3330 int length = 0, vis=0;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3331 gboolean inside = FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3332 g_strdelimit(tmp, "\n", ' ');
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3333 purple_str_strip_char(tmp, '\r');
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3334
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3335 while(*c && vis < 20) {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3336 if(*c == '&')
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3337 inside = TRUE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3338 else if(*c == ';')
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3339 inside = FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3340 if(!inside)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3341 vis++;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3342 c = g_utf8_next_char(c); /* this is fun */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3343 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3344
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3345 length = c - tmp;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3346
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3347 if(vis == 20)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3348 g_snprintf(buf, sizeof(buf), "%%.%ds...", length);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3349 else
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3350 g_snprintf(buf, sizeof(buf), "%%s ");
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3351
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3352 statustext = g_strdup_printf(buf, tmp);
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 g_free(tmp);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3355 }
10288
fc688f632351 [gaim-migrate @ 11462]
Nathan Walp <nwalp@pidgin.im>
parents: 10287
diff changeset
3356 #else
13792
ceb938a873da [gaim-migrate @ 16202]
Joshua Honeycutt <coweater@users.sourceforge.net>
parents: 13768
diff changeset
3357 if(tmp) {
12437
8273decd4841 [gaim-migrate @ 14744]
Nathan Walp <nwalp@pidgin.im>
parents: 12436
diff changeset
3358 g_strdelimit(tmp, "\n", ' ');
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3359 purple_str_strip_char(tmp, '\r');
13792
ceb938a873da [gaim-migrate @ 16202]
Joshua Honeycutt <coweater@users.sourceforge.net>
parents: 13768
diff changeset
3360 }
10288
fc688f632351 [gaim-migrate @ 11462]
Nathan Walp <nwalp@pidgin.im>
parents: 10287
diff changeset
3361 statustext = tmp;
fc688f632351 [gaim-migrate @ 11462]
Nathan Walp <nwalp@pidgin.im>
parents: 10287
diff changeset
3362 #endif
5228
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
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3365 if(!purple_presence_is_online(presence) && !statustext)
13034
cfeb9826ba96 [gaim-migrate @ 15392]
Richard Laager <rlaager@pidgin.im>
parents: 13030
diff changeset
3366 statustext = g_strdup(_("Offline"));
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3367 else if (!statustext)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3368 text = g_strdup(esc);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
3369
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3370 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
3371 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
3372 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
3373
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3374 if (idle_secs > 0) {
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3375 int ihrs, imin;
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3376
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3377 time(&t);
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3378 ihrs = (t - idle_secs) / 3600;
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3379 imin = ((t - idle_secs) / 60) % 60;
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3380
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3381 if (ihrs)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3382 idletime = g_strdup_printf(_("Idle %dh %02dm"), ihrs, imin);
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3383 else
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3384 idletime = g_strdup_printf(_("Idle %dm"), imin);
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3385 }
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3386 else
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3387 idletime = g_strdup(_("Idle"));
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3388
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3389 if (!selected)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3390 text = g_strdup_printf("<span color='%s'>%s</span>\n"
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3391 "<span color='%s' size='smaller'>%s%s%s</span>",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3392 dim_grey(), esc, dim_grey(),
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3393 idletime != NULL ? idletime : "",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3394 (idletime != NULL && statustext != NULL) ? " - " : "",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3395 statustext != NULL ? statustext : "");
13034
cfeb9826ba96 [gaim-migrate @ 15392]
Richard Laager <rlaager@pidgin.im>
parents: 13030
diff changeset
3396 }
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3397 else if (!selected && !statustext) /* We handle selected text later */
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3398 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
3399 else if (!selected && !text)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3400 text = g_strdup_printf("<span color='%s'>%s</span>\n"
14199
6a78ca00a50f [gaim-migrate @ 16779]
Daniel Atallah <datallah@pidgin.im>
parents: 14195
diff changeset
3401 "<span color='%s' size='smaller'>%s</span>",
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3402 dim_grey(), esc, dim_grey(),
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3403 statustext != NULL ? statustext : "");
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3404 }
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3405
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3406 /* Not idle and not selected */
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3407 else if (!selected && !text)
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3408 {
13202
f5f21ca5b5a6 [gaim-migrate @ 15564]
Richard Laager <rlaager@pidgin.im>
parents: 13197
diff changeset
3409 text = g_strdup_printf("%s\n"
14136
0259a51abd4a [gaim-migrate @ 16695]
Daniel Atallah <datallah@pidgin.im>
parents: 14097
diff changeset
3410 "<span color='%s' size='smaller'>%s</span>",
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3411 esc, dim_grey(),
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3412 statustext != NULL ? statustext : "");
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3413 }
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3414
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3415 /* It is selected. */
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
3416 if ((selected && !text) || (selected && idletime))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3417 text = g_strdup_printf("%s\n"
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3418 "<span size='smaller'>%s%s%s</span>",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3419 esc,
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3420 idletime != NULL ? idletime : "",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3421 (idletime != NULL && statustext != NULL) ? " - " : "",
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3422 statustext != NULL ? statustext : "");
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
3423
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
3424 g_free(idletime);
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
3425 g_free(statustext);
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
3426 g_free(esc);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3427
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
3428 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
3429 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
3430 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
3431 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
3432 }
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3433
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3434 return text;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3435 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3436
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3437 static void pidgin_blist_restore_position()
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3438 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3439 int blist_x, blist_y, blist_width, blist_height;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3440
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3441 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
3442
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3443 /* 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
3444 * position is sane... */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3445 if (gtkblist && gtkblist->window &&
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3446 !GTK_WIDGET_VISIBLE(gtkblist->window) && blist_width != 0) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3447
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3448 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
3449 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
3450 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
3451
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3452 /* ...check position is on screen... */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3453 if (blist_x >= gdk_screen_width())
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3454 blist_x = gdk_screen_width() - 100;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3455 else if (blist_x + blist_width < 0)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3456 blist_x = 100;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3457
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3458 if (blist_y >= gdk_screen_height())
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3459 blist_y = gdk_screen_height() - 100;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3460 else if (blist_y + blist_height < 0)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3461 blist_y = 100;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3462
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3463 /* ...and move it back. */
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3464 gtk_window_move(GTK_WINDOW(gtkblist->window), blist_x, blist_y);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3465 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
3466 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
3467 gtk_window_maximize(GTK_WINDOW(gtkblist->window));
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3468 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3469 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3470
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3471 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3472 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3473 PurpleBlistNode *gnode, *cnode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3474
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3475 if (gtk_blist_obscured || !GTK_WIDGET_VISIBLE(gtkblist->window))
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
3476 return TRUE;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
3477
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3478 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
3479 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3480 continue;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3481 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
3482 if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3483 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3484
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3485 buddy = purple_contact_get_priority_buddy((PurpleContact*)cnode);
10012
da9fdfbf4c5a [gaim-migrate @ 10929]
Nathan Walp <nwalp@pidgin.im>
parents: 10006
diff changeset
3486
da9fdfbf4c5a [gaim-migrate @ 10929]
Nathan Walp <nwalp@pidgin.im>
parents: 10006
diff changeset
3487 if (buddy &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3488 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
3489 pidgin_blist_update_contact(list, (PurpleBlistNode*)buddy);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3490 }
5228
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 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3493
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3494 /* keep on going */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3495 return TRUE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3496 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3497
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3498 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
3499 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3500 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
3501 GtkTreeIter iter;
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3502
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3503 if (!gtknode || !gtknode->row || !gtkblist)
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3504 return;
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3505
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3506 if(gtkblist->selected_node == node)
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3507 gtkblist->selected_node = NULL;
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3508 if (get_iter_from_node(node, &iter)) {
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3509 gtk_tree_store_remove(gtkblist->treemodel, &iter);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3510 if(update && (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3511 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
3512 pidgin_blist_update(list, node->parent);
5260
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3513 }
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3514 }
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3515 gtk_tree_row_reference_free(gtknode->row);
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3516 gtknode->row = NULL;
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3517 }
7c37cf580e7c [gaim-migrate @ 5632]
Ethan Blanton <elb@pidgin.im>
parents: 5256
diff changeset
3518
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3519 static const char *require_connection[] =
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3520 {
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3521 N_("/Buddies/New Instant Message..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3522 N_("/Buddies/Join a Chat..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3523 N_("/Buddies/Get User Info..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3524 N_("/Buddies/Add Buddy..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3525 N_("/Buddies/Add Chat..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3526 N_("/Buddies/Add Group..."),
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3527 };
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3528
10357
f5ad7a664200 [gaim-migrate @ 11575]
Mark Doliner <markdoliner@pidgin.im>
parents: 10354
diff changeset
3529 static const int require_connection_size = sizeof(require_connection)
f5ad7a664200 [gaim-migrate @ 11575]
Mark Doliner <markdoliner@pidgin.im>
parents: 10354
diff changeset
3530 / sizeof(*require_connection);
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3531
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3532 /**
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3533 * Rebuild dynamic menus and make menu items sensitive/insensitive
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3534 * where appropriate.
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3535 */
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3536 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3537 update_menu_bar(PidginBuddyList *gtkblist)
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3538 {
8937
b436e9cbd701 [gaim-migrate @ 9707]
Mark Doliner <markdoliner@pidgin.im>
parents: 8911
diff changeset
3539 GtkWidget *widget;
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3540 gboolean sensitive;
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3541 int i;
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3542
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3543 g_return_if_fail(gtkblist != NULL);
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8254
diff changeset
3544
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3545 pidgin_blist_update_accounts_menu();
8937
b436e9cbd701 [gaim-migrate @ 9707]
Mark Doliner <markdoliner@pidgin.im>
parents: 8911
diff changeset
3546
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3547 sensitive = (purple_connections_get_all() != NULL);
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3548
10357
f5ad7a664200 [gaim-migrate @ 11575]
Mark Doliner <markdoliner@pidgin.im>
parents: 10354
diff changeset
3549 for (i = 0; i < require_connection_size; i++)
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3550 {
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3551 widget = gtk_item_factory_get_widget(gtkblist->ift, require_connection[i]);
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3552 gtk_widget_set_sensitive(widget, sensitive);
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3553 }
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3554
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
3555 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
3556 gtk_widget_set_sensitive(widget, pidgin_blist_joinchat_is_showable());
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8939
diff changeset
3557
11988
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
3558 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
3559 gtk_widget_set_sensitive(widget, pidgin_blist_joinchat_is_showable());
11988
7ed733ed806b [gaim-migrate @ 14281]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11986
diff changeset
3560
8938
d13ed7491e43 [gaim-migrate @ 9708]
Mark Doliner <markdoliner@pidgin.im>
parents: 8937
diff changeset
3561 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
3562 gtk_widget_set_sensitive(widget, (purple_connections_get_all() != NULL));
12136
027b7ebee256 [gaim-migrate @ 14436]
Kevin Stange <kstange@pidgin.im>
parents: 12133
diff changeset
3563
027b7ebee256 [gaim-migrate @ 14436]
Kevin Stange <kstange@pidgin.im>
parents: 12133
diff changeset
3564 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
3565 gtk_widget_set_sensitive(widget, pidgin_roomlist_is_showable());
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3566 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3567
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3568 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3569 sign_on_off_cb(PurpleConnection *gc, PurpleBuddyList *blist)
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3570 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3571 PidginBuddyList *gtkblist = PIDGIN_BLIST(blist);
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3572
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3573 update_menu_bar(gtkblist);
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
3574 }
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3575
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3576 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3577 plugin_changed_cb(PurplePlugin *p, gpointer *data)
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3578 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3579 pidgin_blist_update_plugin_actions();
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3580 }
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
3581
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3582 static void
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3583 unseen_conv_menu()
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3584 {
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3585 static GtkWidget *menu = NULL;
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3586 GList *convs = NULL;
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3587
15110
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3588 if (menu) {
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3589 gtk_widget_destroy(menu);
15110
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3590 menu = NULL;
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3591 }
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3592
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3593 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
3594 if (!convs)
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12163
diff changeset
3595 /* no conversations added, don't show the menu */
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3596 return;
15110
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3597
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3598 menu = gtk_menu_new();
2e4ae8a8dcec [gaim-migrate @ 17832]
Daniel Atallah <datallah@pidgin.im>
parents: 15096
diff changeset
3599
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3600 pidgin_conversations_fill_menu(menu, convs);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3601 g_list_free(convs);
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3602 gtk_widget_show_all(menu);
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3603 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3,
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3604 gtk_get_current_event_time());
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3605 }
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3606
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3607 static gboolean
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3608 menutray_press_cb(GtkWidget *widget, GdkEventButton *event)
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3609 {
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3610 GList *convs;
12208
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
3611
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3612 switch (event->button) {
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3613 case 1:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3614 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
3615 PIDGIN_UNSEEN_TEXT, TRUE, 1);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3616 if (convs) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3617 purple_conversation_present((PurpleConversation*)convs->data);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3618 g_list_free(convs);
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3619 }
12133
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3620 break;
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3621 case 3:
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3622 unseen_conv_menu();
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3623 break;
c627533bb7a4 [gaim-migrate @ 14433]
Casey Harkins <charkins@pidgin.im>
parents: 12124
diff changeset
3624 }
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3625 return TRUE;
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3626 }
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3627
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
3628 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3629 conversation_updated_cb(PurpleConversation *conv, PurpleConvUpdateType type,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3630 PidginBuddyList *gtkblist)
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3631 {
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3632 GList *convs = NULL;
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3633 GList *l = NULL;
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3634
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3635 if (type != PURPLE_CONV_UPDATE_UNSEEN)
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12163
diff changeset
3636 return;
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12163
diff changeset
3637
12744
45d72d69f399 [gaim-migrate @ 15091]
Casey Harkins <charkins@pidgin.im>
parents: 12713
diff changeset
3638 if(conv->account != NULL && conv->name != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3639 PurpleBuddy *buddy = purple_find_buddy(conv->account, conv->name);
12744
45d72d69f399 [gaim-migrate @ 15091]
Casey Harkins <charkins@pidgin.im>
parents: 12713
diff changeset
3640 if(buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3641 pidgin_blist_update_buddy(NULL, (PurpleBlistNode *)buddy, TRUE);
12744
45d72d69f399 [gaim-migrate @ 15091]
Casey Harkins <charkins@pidgin.im>
parents: 12713
diff changeset
3642 }
45d72d69f399 [gaim-migrate @ 15091]
Casey Harkins <charkins@pidgin.im>
parents: 12713
diff changeset
3643
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12163
diff changeset
3644 if (gtkblist->menutrayicon) {
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3645 gtk_widget_destroy(gtkblist->menutrayicon);
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3646 gtkblist->menutrayicon = NULL;
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3647 }
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
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);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3650 if (convs) {
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3651 GtkWidget *img = NULL;
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3652 GString *tooltip_text = NULL;
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3653
12117
b3781ac3f1da [gaim-migrate @ 14417]
Nathan Walp <nwalp@pidgin.im>
parents: 12116
diff changeset
3654 tooltip_text = g_string_new("");
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3655 l = convs;
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3656 while (l != NULL) {
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3657 if (PIDGIN_IS_PIDGIN_CONVERSATION(l->data)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3658 PidginConversation *gtkconv = PIDGIN_CONVERSATION((PurpleConversation *)l->data);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3659
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3660 g_string_append_printf(tooltip_text,
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3661 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
3662 gtkconv->unseen_count,
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3663 gtk_label_get_text(GTK_LABEL(gtkconv->tab_label)));
12117
b3781ac3f1da [gaim-migrate @ 14417]
Nathan Walp <nwalp@pidgin.im>
parents: 12116
diff changeset
3664 }
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3665 l = l->next;
12117
b3781ac3f1da [gaim-migrate @ 14417]
Nathan Walp <nwalp@pidgin.im>
parents: 12116
diff changeset
3666 }
12239
e4f62729e2c7 [gaim-migrate @ 14541]
Nathan Walp <nwalp@pidgin.im>
parents: 12232
diff changeset
3667 if(tooltip_text->len > 0) {
12302
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3668 /* get rid of the last newline */
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
3669 g_string_truncate(tooltip_text, tooltip_text->len -1);
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15670
diff changeset
3670 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
3671 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
3672
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3673 gtkblist->menutrayicon = gtk_event_box_new();
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3674 gtk_container_add(GTK_CONTAINER(gtkblist->menutrayicon), img);
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3675 gtk_widget_show(img);
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3676 gtk_widget_show(gtkblist->menutrayicon);
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3677 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
3678
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3679 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
3680 }
12302
191d0fc44cfc [gaim-migrate @ 14606]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12301
diff changeset
3681 g_string_free(tooltip_text, TRUE);
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12466
diff changeset
3682 g_list_free(convs);
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3683 }
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3684 }
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
3685
12208
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
3686 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3687 conversation_deleting_cb(PurpleConversation *conv, PidginBuddyList *gtkblist)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3688 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3689 conversation_updated_cb(conv, PURPLE_CONV_UPDATE_UNSEEN, gtkblist);
12208
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
3690 }
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
3691
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3692 /**********************************************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3693 * Public API Functions *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3694 **********************************************************************************/
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9773
diff changeset
3695
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3696 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
3697 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3698 PidginBuddyList *gtkblist;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3699
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3700 gtkblist = g_new0(PidginBuddyList, 1);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3701 gtkblist->connection_errors = g_hash_table_new_full(g_direct_hash,
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3702 g_direct_equal, NULL, g_free);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3703 blist->ui_data = gtkblist;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3704 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3705
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3706 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
3707 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3708 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
3709 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3710
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3711 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
3712 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3713 if PURPLE_BLIST_NODE_IS_BUDDY(node)
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3714 node = node->parent;
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3715
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3716 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
3717
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3718 return ((struct _pidgin_blist_node *)node->ui_data)->contact_expanded;
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3719 }
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
3720
10433
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3721 enum {
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3722 DRAG_BUDDY,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3723 DRAG_ROW,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3724 DRAG_VCARD,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3725 DRAG_TEXT,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3726 DRAG_URI,
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3727 NUM_TARGETS
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3728 };
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3729
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
3730 static const char *
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3731 item_factory_translate_func (const char *path, gpointer func_data)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3732 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3733 return _((char *)path);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3734 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3735
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3736 void pidgin_blist_setup_sort_methods()
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3737 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3738 pidgin_blist_sort_method_reg("none", _("Manually"), sort_method_none);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3739 #if GTK_CHECK_VERSION(2,2,1)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3740 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
3741 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
3742 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
3743 #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
3744 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
3745 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3746
10433
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3747 static void _prefs_change_redo_list()
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3748 {
13511
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3749 GtkTreeSelection *sel;
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3750 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3751 PurpleBlistNode *node = NULL;
13511
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3752
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3753 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
3754 if (gtk_tree_selection_get_selected(sel, NULL, &iter))
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3755 {
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3756 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
3757 }
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3758
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3759 redo_buddy_list(purple_get_blist(), FALSE, FALSE);
13162
43420c10065b [gaim-migrate @ 15524]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13147
diff changeset
3760 #if GTK_CHECK_VERSION(2,6,0)
43420c10065b [gaim-migrate @ 15524]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13147
diff changeset
3761 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(gtkblist->treeview));
43420c10065b [gaim-migrate @ 15524]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13147
diff changeset
3762 #endif
13511
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3763
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3764 if (node)
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3765 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3766 struct _pidgin_blist_node *gtknode;
13511
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3767 GtkTreePath *path;
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3768
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3769 gtknode = node->ui_data;
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3770 if (gtknode && gtknode->row)
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3771 {
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3772 path = gtk_tree_row_reference_get_path(gtknode->row);
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3773 gtk_tree_selection_select_path(sel, path);
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3774 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
3775 gtk_tree_path_free(path);
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3776 }
743387e8099e [gaim-migrate @ 15886]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13510
diff changeset
3777 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3778 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
3779
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3780 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
3781 gconstpointer val, gpointer data)
10433
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
3782 {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
3783 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
3784 pidgin_blist_sort_method_set(val);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3785 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3786
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3787 static void account_modified(PurpleAccount *account, PidginBuddyList *gtkblist)
12522
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3788 {
15088
d5bb04caf6e1 [gaim-migrate @ 17809]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15086
diff changeset
3789 GList *list;
12522
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3790 if (!gtkblist)
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3791 return;
12589
e25ec53fe8b0 [gaim-migrate @ 14918]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
3792
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3793 if ((list = purple_accounts_get_all_active()) != NULL) {
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
3794 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
3795 g_list_free(list);
d5bb04caf6e1 [gaim-migrate @ 17809]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15086
diff changeset
3796 } else
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
3797 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
3798
12522
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3799 update_menu_bar(gtkblist);
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3800 }
5d2871278151 [gaim-migrate @ 14834]
Richard Laager <rlaager@pidgin.im>
parents: 12519
diff changeset
3801
12766
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3802 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3803 account_status_changed(PurpleAccount *account, PurpleStatus *old,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3804 PurpleStatus *new, PidginBuddyList *gtkblist)
12766
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3805 {
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3806 if (!gtkblist)
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3807 return;
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3808
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3809 update_menu_bar(gtkblist);
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3810 }
b292b7a49197 [gaim-migrate @ 15113]
Nick Hebner <hebnern@gmail.com>
parents: 12744
diff changeset
3811
12124
97ff43883157 [gaim-migrate @ 14424]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12119
diff changeset
3812 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3813 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
3814 {
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3815 GtkWidget *imhtml;
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3816
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3817 if (!gtkblist)
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3818 return FALSE;
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3819
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3820 imhtml = gtk_window_get_focus(GTK_WINDOW(gtkblist->window));
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3821
12474
630f34dde22d [gaim-migrate @ 14785]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12473
diff changeset
3822 if (GTK_IS_IMHTML(imhtml) && gtk_bindings_activate(GTK_OBJECT(imhtml), event->keyval, event->state))
12461
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3823 return TRUE;
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3824 return FALSE;
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3825 }
960ff25e0214 [gaim-migrate @ 14771]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12458
diff changeset
3826
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3827 static gboolean
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3828 headline_hover_close(int x, int y)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3829 {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3830 GtkWidget *w = gtkblist->headline_hbox;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3831 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
3832 y >= 0 && y <= HEADLINE_CLOSE_SIZE)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3833 return TRUE;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3834 return FALSE;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3835 }
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3836
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3837 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3838 headline_box_enter_cb(GtkWidget *widget, GdkEventCrossing *event, PidginBuddyList *gtkblist)
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3839 {
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3840 gdk_window_set_cursor(widget->window, gtkblist->hand_cursor);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3841
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3842 if (gtkblist->headline_close) {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3843 #if GTK_CHECK_VERSION(2,2,0)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3844 gdk_draw_pixbuf(widget->window, NULL, gtkblist->headline_close,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3845 #else
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3846 gdk_pixbuf_render_to_drawable(gtkblist->headline_close,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3847 GDK_DRAWABLE(widget->window), NULL,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3848 #endif
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3849 0, 0,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3850 widget->allocation.width - 2 - HEADLINE_CLOSE_SIZE, 2,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3851 HEADLINE_CLOSE_SIZE, HEADLINE_CLOSE_SIZE,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3852 GDK_RGB_DITHER_NONE, 0, 0);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3853 gtk_paint_focus(widget->style, widget->window, GTK_STATE_PRELIGHT,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3854 NULL, widget, NULL,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3855 widget->allocation.width - HEADLINE_CLOSE_SIZE - 3, 1,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3856 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3857 }
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3858
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3859 return FALSE;
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3860 }
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3861
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3862 #if 0
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3863 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3864 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
3865 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3866 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
3867 if (headline_hover_close((int)event->x, (int)event->y))
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3868 gtk_paint_focus(widget->style, widget->window, GTK_STATE_PRELIGHT,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3869 NULL, widget, NULL,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3870 widget->allocation.width - HEADLINE_CLOSE_SIZE - 3, 1,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3871 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3872 return FALSE;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3873 }
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3874 #endif
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3875
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3876 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3877 headline_box_leave_cb(GtkWidget *widget, GdkEventCrossing *event, PidginBuddyList *gtkblist)
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3878 {
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3879 gdk_window_set_cursor(widget->window, gtkblist->arrow_cursor);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3880 if (gtkblist->headline_close) {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3881 GdkRectangle rect = {widget->allocation.width - 3 - HEADLINE_CLOSE_SIZE, 1,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3882 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2};
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3883 gdk_window_invalidate_rect(widget->window, &rect, TRUE);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3884 }
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3885 return FALSE;
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3886 }
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3887
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3888 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3889 reset_headline(PidginBuddyList *gtkblist)
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3890 {
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3891 gtkblist->headline_callback = NULL;
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3892 gtkblist->headline_data = NULL;
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3893 gtkblist->headline_destroy = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3894 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), FALSE);
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3895 }
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3896
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3897 static gboolean
15259
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3898 headline_click_callback(gpointer data)
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3899 {
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3900 ((GSourceFunc)gtkblist->headline_callback)(gtkblist->headline_data);
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3901 reset_headline(gtkblist);
15259
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3902 return FALSE;
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3903 }
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3904
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3905 static gboolean
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3906 headline_box_press_cb(GtkWidget *widget, GdkEventButton *event, PidginBuddyList *gtkblist)
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3907 {
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3908 gtk_widget_hide(gtkblist->headline_hbox);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
3909 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
3910 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
3911 else {
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3912 if (gtkblist->headline_destroy)
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3913 gtkblist->headline_destroy(gtkblist->headline_data);
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3914 reset_headline(gtkblist);
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
3915 }
15259
5d4dc3a3019f [gaim-migrate @ 17987]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
3916 return TRUE;
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3917 }
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
3918
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3919 /***********************************/
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3920 /* Connection error handling stuff */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3921 /***********************************/
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3922
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3923 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3924 ce_modify_account_cb(PurpleAccount *account)
13316
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3925 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
3926 pidgin_account_dialog_show(PIDGIN_MODIFY_ACCOUNT_DIALOG, account);
13316
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3927 }
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3928
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3929 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3930 ce_enable_account_cb(PurpleAccount *account)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3931 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3932 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
3933 }
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3934
f3825018dc2b [gaim-migrate @ 15681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13294
diff changeset
3935 static void
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3936 connection_error_button_clicked_cb(GtkButton *widget, gpointer user_data)
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3937 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3938 PurpleAccount *account;
13023
6c85f34839bf [gaim-migrate @ 15376]
Mark Doliner <markdoliner@pidgin.im>
parents: 13022
diff changeset
3939 char *primary;
6c85f34839bf [gaim-migrate @ 15376]
Mark Doliner <markdoliner@pidgin.im>
parents: 13022
diff changeset
3940 const char *text;
13732
924f1827ea50 [gaim-migrate @ 16141]
Mark Doliner <markdoliner@pidgin.im>
parents: 13691
diff changeset
3941 gboolean enabled;
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3942
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3943 account = user_data;
13023
6c85f34839bf [gaim-migrate @ 15376]
Mark Doliner <markdoliner@pidgin.im>
parents: 13022
diff changeset
3944 primary = g_strdup_printf(_("%s disconnected"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3945 purple_account_get_username(account));
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3946 text = g_hash_table_lookup(gtkblist->connection_errors, account);
13376
4b4c3c4d068e [gaim-migrate @ 15748]
Mark Doliner <markdoliner@pidgin.im>
parents: 13337
diff changeset
3947
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3948 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
3949 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
3950 account, NULL, NULL,
13732
924f1827ea50 [gaim-migrate @ 16141]
Mark Doliner <markdoliner@pidgin.im>
parents: 13691
diff changeset
3951 account, 3,
924f1827ea50 [gaim-migrate @ 16141]
Mark Doliner <markdoliner@pidgin.im>
parents: 13691
diff changeset
3952 _("OK"), NULL,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3953 _("Modify Account"), PURPLE_CALLBACK(ce_modify_account_cb),
13732
924f1827ea50 [gaim-migrate @ 16141]
Mark Doliner <markdoliner@pidgin.im>
parents: 13691
diff changeset
3954 enabled ? _("Connect") : _("Re-enable Account"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3955 enabled ? PURPLE_CALLBACK(purple_account_connect) :
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3956 PURPLE_CALLBACK(ce_enable_account_cb));
13630
b41b3225c2ce [gaim-migrate @ 16016]
Daniel Atallah <datallah@pidgin.im>
parents: 13613
diff changeset
3957 g_free(primary);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3958 gtk_widget_destroy(GTK_WIDGET(widget));
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3959 g_hash_table_remove(gtkblist->connection_errors, account);
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3960 }
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3961
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3962 /* Add some buttons that show connection errors */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3963 static void
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3964 create_connection_error_buttons(gpointer key, gpointer value,
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3965 gpointer user_data)
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3966 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3967 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3968 PurpleStatusType *status_type;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
3969 gchar *escaped, *text;
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3970 GtkWidget *button, *label, *image, *hbox;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
3971 GdkPixbuf *pixbuf;
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3972
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
3973 account = key;
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
3974 escaped = g_markup_escape_text((const gchar *)value, -1);
13023
6c85f34839bf [gaim-migrate @ 15376]
Mark Doliner <markdoliner@pidgin.im>
parents: 13022
diff changeset
3975 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
3976 purple_account_get_username(account),
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
3977 escaped);
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
3978 g_free(escaped);
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
3979
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3980 hbox = gtk_hbox_new(FALSE, 0);
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
3981
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
3982 /* Create the icon */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
3983 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
3984 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
3985 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
14137
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
3986 if (pixbuf != NULL) {
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
3987 image = gtk_image_new_from_pixbuf(pixbuf);
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
3988 g_object_unref(pixbuf);
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
3989
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
3990 gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE,
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
3991 PIDGIN_HIG_BOX_SPACE);
14137
48e2c0761c14 [gaim-migrate @ 16696]
Daniel Atallah <datallah@pidgin.im>
parents: 14136
diff changeset
3992 }
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3993 }
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3994
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
3995 /* Create the text */
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3996 label = gtk_label_new("");
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3997 gtk_label_set_markup(GTK_LABEL(label), text);
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3998 g_free(text);
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
3999 #if GTK_CHECK_VERSION(2,6,0)
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4000 g_object_set(label, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4001 #endif
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4002 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE,
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
4003 PIDGIN_HIG_BOX_SPACE);
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4004
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4005 /* 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
4006 button = gtk_button_new();
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4007 gtk_container_add(GTK_CONTAINER(button), hbox);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4008 g_signal_connect(G_OBJECT(button), "clicked",
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4009 G_CALLBACK(connection_error_button_clicked_cb),
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4010 account);
13049
5b9fac63e263 [gaim-migrate @ 15410]
Mark Doliner <markdoliner@pidgin.im>
parents: 13038
diff changeset
4011 gtk_widget_show_all(button);
13022
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4012 gtk_box_pack_end(GTK_BOX(gtkblist->error_buttons), button,
60db2ca976bf [gaim-migrate @ 15375]
Etan Reisner <deryni@pidgin.im>
parents: 13016
diff changeset
4013 FALSE, FALSE, 0);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4014 }
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4016 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4017 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
4018 {
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4019 GList *l;
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4020
13016
29dd619e4d41 [gaim-migrate @ 15369]
Mark Doliner <markdoliner@pidgin.im>
parents: 13015
diff changeset
4021 if (text == NULL)
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4022 g_hash_table_remove(gtkblist->connection_errors, account);
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4023 else
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4024 g_hash_table_insert(gtkblist->connection_errors, account, g_strdup(text));
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 /* Remove the old error buttons */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4027 for (l = gtk_container_get_children(GTK_CONTAINER(gtkblist->error_buttons));
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4028 l != NULL;
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4029 l = l->next)
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4030 {
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4031 gtk_widget_destroy(GTK_WIDGET(l->data));
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4032 }
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4033
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4034 /* Add new error buttons */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4035 g_hash_table_foreach(gtkblist->connection_errors,
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4036 create_connection_error_buttons, NULL);
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4037 }
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4038
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4039 static gboolean
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4040 paint_headline_hbox (GtkWidget *widget,
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4041 GdkEventExpose *event,
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4042 gpointer user_data)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4043 {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4044 gtk_paint_flat_box (widget->style,
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4045 widget->window,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4046 GTK_STATE_NORMAL,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4047 GTK_SHADOW_OUT,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4048 NULL,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4049 widget,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4050 "tooltip",
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4051 widget->allocation.x + 1,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4052 widget->allocation.y + 1,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4053 widget->allocation.width - 2,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4054 widget->allocation.height - 2);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4055 return FALSE;
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4056 }
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4057
15621
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4058 /* 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
4059 * 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
4060 */
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4061 static void
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4062 treeview_style_set (GtkWidget *widget,
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4063 GtkStyle *prev_style,
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4064 gpointer data)
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4065 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4066 PurpleBuddyList *list = data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4067 PurpleBlistNode *node = list->root;
15621
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4068 while (node) {
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4069 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
4070 node = node->next;
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4071 }
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4072 }
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4073
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4074 static void
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4075 headline_style_set (GtkWidget *widget,
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4076 GtkStyle *prev_style)
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4077 {
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4078 GtkTooltips *tooltips;
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4079 GtkStyle *style;
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4080
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4081 if (gtkblist->changing_style)
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4082 return;
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4083
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4084 tooltips = gtk_tooltips_new ();
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4085 #if GLIB_CHECK_VERSION(2,10,0)
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4086 g_object_ref_sink (tooltips);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4087 #else
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4088 g_object_ref(tooltips);
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4089 gtk_object_sink(GTK_OBJECT(tooltips));
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4090 #endif
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4091
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4092 gtk_tooltips_force_window (tooltips);
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4093 gtk_widget_ensure_style (tooltips->tip_window);
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4094 style = gtk_widget_get_style (tooltips->tip_window);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4095
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4096 gtkblist->changing_style = TRUE;
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4097 gtk_widget_set_style (gtkblist->headline_hbox, style);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4098 gtkblist->changing_style = FALSE;
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4099
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4100 g_object_unref (tooltips);
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4101 }
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4102
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4103 /******************************************/
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4104 /* End of connection error handling stuff */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4105 /******************************************/
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4106
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4107 static int
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4108 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
4109 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4110 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), FALSE);
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4111 return 0;
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4112 }
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4113
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4114 #if 0
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4115 static GtkWidget *
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4116 kiosk_page()
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4117 {
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
4118 GtkWidget *ret = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4119 GtkWidget *label;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4120 GtkWidget *entry;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4121 GtkWidget *bbox;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4122 GtkWidget *button;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4123
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4124 label = gtk_label_new(NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4125 gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4126
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4127 label = gtk_label_new(NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4128 gtk_label_set_markup(GTK_LABEL(label), _("<b>Username:</b>"));
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4129 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4130 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4131 entry = gtk_entry_new();
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4132 gtk_box_pack_start(GTK_BOX(ret), entry, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4133
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4134 label = gtk_label_new(NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4135 gtk_label_set_markup(GTK_LABEL(label), _("<b>Password:</b>"));
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4136 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4137 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4138 entry = gtk_entry_new();
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4139 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4140 gtk_box_pack_start(GTK_BOX(ret), entry, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4141
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4142 label = gtk_label_new(" ");
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4143 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4144
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4145 bbox = gtk_hbutton_box_new();
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4146 button = gtk_button_new_with_mnemonic(_("_Login"));
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4147 gtk_box_pack_start(GTK_BOX(ret), bbox, FALSE, FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4148 gtk_container_add(GTK_CONTAINER(bbox), button);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4149
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4150
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4151 label = gtk_label_new(NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4152 gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4153
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
4154 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
4155
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4156 gtk_widget_show_all(ret);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4157 return ret;
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4158 }
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4159 #endif
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4160
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4161 static void pidgin_blist_show(PurpleBuddyList *list)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4162 {
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
4163 void *handle;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4164 GtkCellRenderer *rend;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4165 GtkTreeViewColumn *column;
10178
16a2e27759fe [gaim-migrate @ 11293]
Christian Hammond <chipx86@chipx86.com>
parents: 10144
diff changeset
4166 GtkWidget *menu;
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4167 GtkWidget *ebox;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4168 GtkWidget *sw;
14608
6eea6c122238 [gaim-migrate @ 17269]
Sean Egan <seanegan@pidgin.im>
parents: 14603
diff changeset
4169 GtkWidget *sep;
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4170 GtkWidget *label;
15091
5eb0bf57d5a2 [gaim-migrate @ 17812]
Sean Egan <seanegan@pidgin.im>
parents: 15089
diff changeset
4171 GList *accounts;
16071
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16068
diff changeset
4172 char *pretty, *tmp;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4173 GtkAccelGroup *accel_group;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4174 GtkTreeSelection *selection;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4175 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
4176 {"application/x-im-contact", 0, DRAG_BUDDY},
9495
e9b2ece77b70 [gaim-migrate @ 10321]
Sean Egan <seanegan@pidgin.im>
parents: 9466
diff changeset
4177 {"text/x-vcard", 0, DRAG_VCARD },
9525
28a430d517db [gaim-migrate @ 10352]
Sean Egan <seanegan@pidgin.im>
parents: 9498
diff changeset
4178 {"text/uri-list", 0, DRAG_URI},
28a430d517db [gaim-migrate @ 10352]
Sean Egan <seanegan@pidgin.im>
parents: 9498
diff changeset
4179 {"text/plain", 0, DRAG_TEXT}};
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4180 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
4181 {"application/x-im-contact", 0, DRAG_BUDDY},
26e2e1141081 [gaim-migrate @ 10392]
Sean Egan <seanegan@pidgin.im>
parents: 9533
diff changeset
4182 {"text/x-vcard", 0, DRAG_VCARD }};
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4183 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
4184 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
4185 return;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4186 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4187
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4188 gtkblist = PIDGIN_BLIST(list);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4189
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
4190 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
4191 gdk_pixbuf_fill(gtkblist->empty_avatar, 0x00000000);
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4192
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4193 gtkblist->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4194 gtk_window_set_role(GTK_WINDOW(gtkblist->window), "buddy_list");
9746
c4f6dab73e01 [gaim-migrate @ 10611]
Luke Schierer <lschiere@pidgin.im>
parents: 9737
diff changeset
4195 gtk_window_set_title(GTK_WINDOW(gtkblist->window), _("Buddy List"));
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4196 g_signal_connect(G_OBJECT(gtkblist->window), "focus-in-event",
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
4197 G_CALLBACK(blist_focus_cb), gtkblist);
12328
4a2611214a15 [gaim-migrate @ 14632]
Nathan Walp <nwalp@pidgin.im>
parents: 12326
diff changeset
4198 GTK_WINDOW(gtkblist->window)->allow_shrink = TRUE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4199
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4200 gtkblist->main_vbox = gtk_vbox_new(FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4201 gtk_widget_show(gtkblist->main_vbox);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4202 gtk_container_add(GTK_CONTAINER(gtkblist->window), gtkblist->main_vbox);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4203
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
4204 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
4205 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
4206 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
4207 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
4208 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
4209 gtk_widget_add_events(gtkblist->window, GDK_VISIBILITY_NOTIFY_MASK);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4210
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4211 /******************************* Menu bar *************************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4212 accel_group = gtk_accel_group_new();
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4213 gtk_window_add_accel_group(GTK_WINDOW (gtkblist->window), accel_group);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4214 g_object_unref(accel_group);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4215 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
4216 gtk_item_factory_set_translate_func(gtkblist->ift,
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
4217 (GtkTranslateFunc)item_factory_translate_func,
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4218 NULL, NULL);
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
4219 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
4220 blist_menu, NULL);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4221 pidgin_load_accels();
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4222 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
4223 G_CALLBACK(pidgin_save_accels_cb), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4224 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
4225 gtkblist->menutray = pidgin_menu_tray_new();
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
4226 gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtkblist->menutray);
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
4227 gtk_widget_show(gtkblist->menutray);
10178
16a2e27759fe [gaim-migrate @ 11293]
Christian Hammond <chipx86@chipx86.com>
parents: 10144
diff changeset
4228 gtk_widget_show(menu);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4229 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
4230
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
4231 accountmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts"));
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
4232
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4233
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4234 /****************************** Notebook *************************************/
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4235 gtkblist->notebook = gtk_notebook_new();
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4236 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gtkblist->notebook), FALSE);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4237 gtk_notebook_set_show_border(GTK_NOTEBOOK(gtkblist->notebook), FALSE);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4238 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
4239
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4240 #if 0
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4241 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), kiosk_page(), NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4242 #endif
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4243
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4244 /* 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
4245 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
4246
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4247 "You have no accounts enabled. Enable your IM accounts from the "
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4248 "<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
4249 "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
4250 "and talk to your friends."), PIDGIN_NAME);
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16068
diff changeset
4251 pretty = pidgin_make_pretty_arrows(tmp);
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16068
diff changeset
4252 g_free(tmp);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4253 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
4254 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
4255 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4256 gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.2);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4257 gtk_label_set_markup(GTK_LABEL(label), pretty);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4258 g_free(pretty);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4259 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook),label, NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4260 gtkblist->vbox = gtk_vbox_new(FALSE, 0);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4261 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), gtkblist->vbox, NULL);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4262 gtk_widget_show_all(gtkblist->notebook);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4263 if ((accounts = purple_accounts_get_all_active())) {
15091
5eb0bf57d5a2 [gaim-migrate @ 17812]
Sean Egan <seanegan@pidgin.im>
parents: 15089
diff changeset
4264 g_list_free(accounts);
15089
0522a7934420 [gaim-migrate @ 17810]
Sean Egan <seanegan@pidgin.im>
parents: 15088
diff changeset
4265 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 1);
15091
5eb0bf57d5a2 [gaim-migrate @ 17812]
Sean Egan <seanegan@pidgin.im>
parents: 15089
diff changeset
4266 }
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15063
diff changeset
4267
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4268 ebox = gtk_event_box_new();
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4269 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
4270 gtkblist->headline_hbox = gtk_hbox_new(FALSE, 3);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4271 gtk_container_set_border_width(GTK_CONTAINER(gtkblist->headline_hbox), 6);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4272 gtk_container_add(GTK_CONTAINER(ebox), gtkblist->headline_hbox);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4273 gtkblist->headline_image = gtk_image_new_from_pixbuf(NULL);
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4274 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
4275 gtkblist->headline_label = gtk_label_new(NULL);
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4276 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
4277 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
4278 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
4279 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
4280 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
4281 g_signal_connect(gtkblist->headline_hbox,
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4282 "style-set",
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4283 G_CALLBACK(headline_style_set),
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4284 NULL);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4285 g_signal_connect (gtkblist->headline_hbox,
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4286 "expose_event",
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4287 G_CALLBACK (paint_headline_hbox),
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4288 NULL);
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4289 gtk_widget_set_name(gtkblist->headline_hbox, "gtk-tooltips");
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4290
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4291 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
4292 if (gtkblist->headline_close) {
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4293 GdkPixbuf *scale = gdk_pixbuf_scale_simple(gtkblist->headline_close,
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4294 HEADLINE_CLOSE_SIZE, HEADLINE_CLOSE_SIZE, GDK_INTERP_BILINEAR);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4295 gdk_pixbuf_unref(gtkblist->headline_close);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4296 gtkblist->headline_close = scale;
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4297 }
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4298
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4299 gtkblist->hand_cursor = gdk_cursor_new (GDK_HAND2);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4300 gtkblist->arrow_cursor = gdk_cursor_new (GDK_LEFT_PTR);
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4301
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4302 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
4303 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
4304 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
4305 #if 0
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4306 /* 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
4307 * 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
4308 * always there. -- sad */
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
4309 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
4310 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
4311 #endif
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4312
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4313 /****************************** GtkTreeView **********************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4314 sw = gtk_scrolled_window_new(NULL,NULL);
10178
16a2e27759fe [gaim-migrate @ 11293]
Christian Hammond <chipx86@chipx86.com>
parents: 10144
diff changeset
4315 gtk_widget_show(sw);
14476
4a36547d336c [gaim-migrate @ 17122]
Sean Egan <seanegan@pidgin.im>
parents: 14471
diff changeset
4316 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
4317 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
4318
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4319 gtkblist->treemodel = gtk_tree_store_new(BLIST_COLUMNS,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4320 GDK_TYPE_PIXBUF, /* Status icon */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4321 G_TYPE_BOOLEAN, /* Status icon visible */
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4322 G_TYPE_STRING, /* Name */
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4323 G_TYPE_STRING, /* Idle */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4324 G_TYPE_BOOLEAN, /* Idle visible */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4325 GDK_TYPE_PIXBUF, /* Buddy icon */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4326 G_TYPE_BOOLEAN, /* Buddy icon visible */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4327 G_TYPE_POINTER, /* Node */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4328 GDK_TYPE_COLOR, /* bgcolor */
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4329 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
4330 G_TYPE_BOOLEAN, /* Group expander visible */
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4331 G_TYPE_BOOLEAN, /* Contact expander */
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4332 G_TYPE_BOOLEAN, /* Contact expander visible */
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4333 GDK_TYPE_PIXBUF, /* Emblem */
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4334 G_TYPE_BOOLEAN); /* Emblem visible */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4335
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4336 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
4337
10178
16a2e27759fe [gaim-migrate @ 11293]
Christian Hammond <chipx86@chipx86.com>
parents: 10144
diff changeset
4338 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
4339 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
4340
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4341 g_signal_connect(gtkblist->treeview,
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4342 "style-set",
947891574425 Make group background colors update when the theme changes.
Sean Egan <seanegan@pidgin.im>
parents: 15614
diff changeset
4343 G_CALLBACK(treeview_style_set), list);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4344 /* Set up selection stuff */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4345 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
4346 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
4347
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4348 /* Set up dnd */
7650
bd193cc04594 [gaim-migrate @ 8293]
Mark Doliner <markdoliner@pidgin.im>
parents: 7642
diff changeset
4349 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
4350 GDK_BUTTON1_MASK, ste, 3,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4351 GDK_ACTION_COPY);
7650
bd193cc04594 [gaim-migrate @ 8293]
Mark Doliner <markdoliner@pidgin.im>
parents: 7642
diff changeset
4352 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
4353 dte, 5,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4354 GDK_ACTION_COPY | GDK_ACTION_MOVE);
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7628
diff changeset
4355
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4356 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
4357 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
4358 #ifdef _WIN32
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4359 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
4360 #endif
10433
04cf48e72655 [gaim-migrate @ 11689]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
4361
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4362 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
4363
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4364 /* Tooltips */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4365 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
4366 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
4367
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4368 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
4369
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4370 column = gtk_tree_view_column_new();
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4371 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), column);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4372 gtk_tree_view_column_set_visible(column, FALSE);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4373 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
4374
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
4375 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
4376 rend = pidgin_cell_renderer_expander_new();
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4377 gtk_tree_view_column_pack_start(column, rend, FALSE);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4378 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
4379 "visible", GROUP_EXPANDER_VISIBLE_COLUMN,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4380 "expander-visible", GROUP_EXPANDER_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4381 #if GTK_CHECK_VERSION(2,6,0)
14626
964677efbddf [gaim-migrate @ 17287]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14624
diff changeset
4382 "sensitive", GROUP_EXPANDER_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4383 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4384 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4385 NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4386
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4387 rend = pidgin_cell_renderer_expander_new();
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4388 gtk_tree_view_column_pack_start(column, rend, FALSE);
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4389 gtk_tree_view_column_set_attributes(column, rend,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4390 "expander-visible", CONTACT_EXPANDER_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4391 #if GTK_CHECK_VERSION(2,6,0)
14626
964677efbddf [gaim-migrate @ 17287]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14624
diff changeset
4392 "sensitive", CONTACT_EXPANDER_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4393 "cell-background-gdk", BGCOLOR_COLUMN,
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4394 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4395 "visible", CONTACT_EXPANDER_VISIBLE_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4396 NULL);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4397
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4398 rend = gtk_cell_renderer_pixbuf_new();
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4399 gtk_tree_view_column_pack_start(column, rend, FALSE);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4400 gtk_tree_view_column_set_attributes(column, rend,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4401 "pixbuf", STATUS_ICON_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4402 "visible", STATUS_ICON_VISIBLE_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4403 #if GTK_CHECK_VERSION(2,6,0)
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4404 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4405 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4406 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
4407 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
4408
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
4409 gtkblist->text_rend = rend = gtk_cell_renderer_text_new();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4410 gtk_tree_view_column_pack_start (column, rend, TRUE);
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4411 gtk_tree_view_column_set_attributes(column, rend,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4412 #if GTK_CHECK_VERSION(2,6,0)
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4413 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4414 #endif
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4415 "markup", NAME_COLUMN,
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
4416 NULL);
16357
c23b4d440efd Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <markdoliner@pidgin.im>
parents: 16284
diff changeset
4417 g_signal_connect(G_OBJECT(rend), "editing-started", G_CALLBACK(gtk_blist_renderer_editing_started_cb), NULL);
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
4418 g_signal_connect(G_OBJECT(rend), "edited", G_CALLBACK(gtk_blist_renderer_edited_cb), NULL);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4419 g_object_set(rend, "ypad", 0, "yalign", 0.5, NULL);
10285
22d4d807c5c3 [gaim-migrate @ 11456]
Sean Egan <seanegan@pidgin.im>
parents: 10282
diff changeset
4420 #if GTK_CHECK_VERSION(2,6,0)
10501
0dd069ed110e [gaim-migrate @ 11793]
Sean Egan <seanegan@pidgin.im>
parents: 10499
diff changeset
4421 g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
10285
22d4d807c5c3 [gaim-migrate @ 11456]
Sean Egan <seanegan@pidgin.im>
parents: 10282
diff changeset
4422 #endif
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4423 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), column);
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 rend = gtk_cell_renderer_text_new();
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4426 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4427 gtk_tree_view_column_pack_start(column, rend, FALSE);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4428 gtk_tree_view_column_set_attributes(column, rend,
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4429 "markup", IDLE_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4430 "visible", IDLE_VISIBLE_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4431 #if GTK_CHECK_VERSION(2,6,0)
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4432 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4433 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4434 NULL);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4435
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4436 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
4437 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
4438 gtk_tree_view_column_pack_start(column, rend, FALSE);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4439 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
4440 #if GTK_CHECK_VERSION(2,6,0)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4441 "cell-background-gdk", BGCOLOR_COLUMN,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4442 #endif
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4443 "visible", EMBLEM_VISIBLE_COLUMN, NULL);
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4444
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4445 rend = gtk_cell_renderer_pixbuf_new();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4446 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL);
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4447 gtk_tree_view_column_pack_start(column, rend, FALSE);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4448 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
4449 #if GTK_CHECK_VERSION(2,6,0)
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4450 "cell-background-gdk", BGCOLOR_COLUMN,
14723
5e5b5c192df3 [gaim-migrate @ 17407]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14722
diff changeset
4451 #endif
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4452 "visible", BUDDY_ICON_VISIBLE_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4453 NULL);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4454
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4455
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4456 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
4457 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
4458 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
4459 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
4460 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
4461 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
4462
5419
062efd736788 [gaim-migrate @ 5798]
Mark Doliner <markdoliner@pidgin.im>
parents: 5398
diff changeset
4463 /* Enable CTRL+F searching */
062efd736788 [gaim-migrate @ 5798]
Mark Doliner <markdoliner@pidgin.im>
parents: 5398
diff changeset
4464 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
4465 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
4466
12583
d4f1bc373c67 [gaim-migrate @ 14911]
Sean Egan <seanegan@pidgin.im>
parents: 12576
diff changeset
4467 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
4468 gtk_container_add(GTK_CONTAINER(sw), gtkblist->treeview);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4469
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4470 sep = gtk_hseparator_new();
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
4471 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
4472
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15571
diff changeset
4473 gtkblist->scrollbook = pidgin_scroll_book_new();
15096
128dd2bdf71d [gaim-migrate @ 17817]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
4474 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
4475
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4476 /* Create an empty vbox used for showing connection errors */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4477 gtkblist->error_buttons = gtk_vbox_new(FALSE, 0);
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4478 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->error_buttons, FALSE, FALSE, 0);
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4479
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
4480 /* Add the statusbox */
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15571
diff changeset
4481 gtkblist->statusbox = pidgin_status_box_new();
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14137
diff changeset
4482 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
4483 gtk_widget_set_name(gtkblist->statusbox, "pidgin_blist_statusbox");
14608
6eea6c122238 [gaim-migrate @ 17269]
Sean Egan <seanegan@pidgin.im>
parents: 14603
diff changeset
4484 gtk_container_set_border_width(GTK_CONTAINER(gtkblist->statusbox), 3);
12583
d4f1bc373c67 [gaim-migrate @ 14911]
Sean Egan <seanegan@pidgin.im>
parents: 12576
diff changeset
4485 gtk_widget_show(gtkblist->statusbox);
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
4486
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4487 /* set the Show Offline Buddies option. must be done
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4488 * after the treeview or faceprint gets mad. -Robot101
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4489 */
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
4490 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
4491 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
4492
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
4493 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
4494 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
4495
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
4496 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
4497 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute"));
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4498
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
4499 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
4500 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
4501
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4502 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
4503 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
4504
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4505 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
4506 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
4507
10353
830e54bb7fa0 [gaim-migrate @ 11570]
Mark Doliner <markdoliner@pidgin.im>
parents: 10352
diff changeset
4508 /* Update some dynamic things */
830e54bb7fa0 [gaim-migrate @ 11570]
Mark Doliner <markdoliner@pidgin.im>
parents: 10352
diff changeset
4509 update_menu_bar(gtkblist);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4510 pidgin_blist_update_plugin_actions();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4511 pidgin_blist_update_sort_methods();
10353
830e54bb7fa0 [gaim-migrate @ 11570]
Mark Doliner <markdoliner@pidgin.im>
parents: 10352
diff changeset
4512
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4513 /* OK... let's show this bad boy. */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4514 pidgin_blist_refresh(list);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4515 pidgin_blist_restore_position();
14543
cc2f90ffee6f [gaim-migrate @ 17200]
Casey Harkins <charkins@pidgin.im>
parents: 14526
diff changeset
4516 gtk_widget_show_all(GTK_WIDGET(gtkblist->vbox));
14574
4a60d4fadfc4 [gaim-migrate @ 17232]
Casey Harkins <charkins@pidgin.im>
parents: 14543
diff changeset
4517 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
4518 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
4519
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4520 /* start the refresh timer */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4521 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
4522
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4523 handle = pidgin_blist_get_handle();
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
4524
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4525 /* 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
4526 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
4527 _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
4528 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
4529 _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
4530 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
4531 _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
4532 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
4533 _prefs_change_redo_list, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4534
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4535 /* 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
4536 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
4537 _prefs_change_sort_method, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4538
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
4539 /* 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
4540 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
4541 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
4542 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
4543 pidgin_blist_sound_method_pref_cb, NULL);
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10046
diff changeset
4544
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4545 /* Setup some purple signal handlers. */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4546 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
4547 gtkblist, PURPLE_CALLBACK(account_modified), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4548 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
4549 gtkblist, PURPLE_CALLBACK(account_modified), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4550 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
4551 gtkblist, PURPLE_CALLBACK(account_modified), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4552 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
4553 gtkblist, PURPLE_CALLBACK(account_status_changed), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4554
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4555 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
4556 gtkblist, PURPLE_CALLBACK(account_modified), gtkblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4557
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4558 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
4559 gtkblist, PURPLE_CALLBACK(sign_on_off_cb), list);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4560 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
4561 gtkblist, PURPLE_CALLBACK(sign_on_off_cb), list);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4562
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4563 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
4564 gtkblist, PURPLE_CALLBACK(plugin_changed_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4565 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
4566 gtkblist, PURPLE_CALLBACK(plugin_changed_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4567
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4568 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
4569 gtkblist, PURPLE_CALLBACK(conversation_updated_cb),
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
4570 gtkblist);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4571 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
4572 gtkblist, PURPLE_CALLBACK(conversation_deleting_cb),
12208
63faaf557886 [gaim-migrate @ 14510]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12191
diff changeset
4573 gtkblist);
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12115
diff changeset
4574
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
4575 gtk_widget_hide(gtkblist->headline_hbox);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4576
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
4577 /* emit our created signal */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4578 purple_signal_emit(handle, "gtkblist-created", list);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4579 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4580
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4581 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
4582 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4583 PurpleBlistNode *node;
15307
57f6de61c714 [gaim-migrate @ 18035]
Mark Doliner <markdoliner@pidgin.im>
parents: 15306
diff changeset
4584
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4585 gtkblist = PIDGIN_BLIST(list);
15306
b4bb51751de0 [gaim-migrate @ 18034]
Ethan Blanton <elb@pidgin.im>
parents: 15300
diff changeset
4586 if(!gtkblist || !gtkblist->treeview)
b4bb51751de0 [gaim-migrate @ 18034]
Ethan Blanton <elb@pidgin.im>
parents: 15300
diff changeset
4587 return;
b4bb51751de0 [gaim-migrate @ 18034]
Ethan Blanton <elb@pidgin.im>
parents: 15300
diff changeset
4588
15307
57f6de61c714 [gaim-migrate @ 18035]
Mark Doliner <markdoliner@pidgin.im>
parents: 15306
diff changeset
4589 node = list->root;
12112
86a24bbf9a2c [gaim-migrate @ 14412]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12080
diff changeset
4590
86a24bbf9a2c [gaim-migrate @ 14412]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12080
diff changeset
4591 while (node)
86a24bbf9a2c [gaim-migrate @ 14412]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12080
diff changeset
4592 {
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4593 /* 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
4594 * status. We shouldn't need to remove otherwise.
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4595 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4596 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
4597 pidgin_blist_hide_node(list, node, FALSE);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4598
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4599 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4600 pidgin_blist_update_buddy(list, node, rerender);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4601 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
4602 pidgin_blist_update(list, node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4603 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
4604 pidgin_blist_update(list, node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4605 node = purple_blist_node_next(node, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4606 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4607
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4608 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4609
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4610 void pidgin_blist_refresh(PurpleBuddyList *list)
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
4611 {
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
4612 redo_buddy_list(list, FALSE, TRUE);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
4613 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
4614
5297
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4615 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4616 pidgin_blist_update_refresh_timeout()
5297
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4617 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4618 PurpleBuddyList *blist;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4619 PidginBuddyList *gtkblist;
5297
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4620
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4621 blist = purple_get_blist();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4622 gtkblist = PIDGIN_BLIST(purple_get_blist());
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4623
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4624 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
4625 }
d0fa35e02d4a [gaim-migrate @ 5669]
Luke Schierer <lschiere@pidgin.im>
parents: 5296
diff changeset
4626
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4627 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
4628 struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)node->ui_data;
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4629 GtkTreePath *path;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4630
5263
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4631 if (!gtknode) {
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4632 return FALSE;
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4633 }
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4634
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4635 if (!gtkblist) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4636 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
4637 return FALSE;
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4638 }
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4639
ed3dfef87785 [gaim-migrate @ 5635]
Ethan Blanton <elb@pidgin.im>
parents: 5260
diff changeset
4640 if (!gtknode->row)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4641 return FALSE;
11494
60bfb30f6cba [gaim-migrate @ 13738]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11490
diff changeset
4642
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4643
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4644 if ((path = gtk_tree_row_reference_get_path(gtknode->row)) == NULL)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4645 return FALSE;
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10992
diff changeset
4646
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4647 if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), iter, path)) {
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4648 gtk_tree_path_free(path);
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4649 return FALSE;
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4650 }
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4651 gtk_tree_path_free(path);
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4652 return TRUE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4653 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4654
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4655 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
4656 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4657 struct _pidgin_blist_node *gtknode = node->ui_data;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
4658
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4659 purple_request_close_with_handle(node);
10222
5371b5459fb9 [gaim-migrate @ 11351]
Andrew Hart <arhart@users.sourceforge.net>
parents: 10209
diff changeset
4660
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4661 pidgin_blist_hide_node(list, node, TRUE);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4662
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4663 if(node->parent)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4664 pidgin_blist_update(list, node->parent);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4665
10504
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
4666 /* There's something I don't understand here - Ethan */
eae130eefbfe [gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10501
diff changeset
4667 /* 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
4668 * 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
4669 * 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
4670 * comment it out again. Stu */
10510
a9d90a5b7556 [gaim-migrate @ 11808]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10504
diff changeset
4671 /* 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
4672 * contacts, the dragged buddy mysteriously 'disappears'. Stu. */
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4673 /* I think it's fixed now. Stu. */
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
4674
11915
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4675 if(gtknode) {
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4676 if(gtknode->recent_signonoff_timer > 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4677 purple_timeout_remove(gtknode->recent_signonoff_timer);
11915
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4678
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4679 g_free(node->ui_data);
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4680 node->ui_data = NULL;
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
4681 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4682 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4683
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4684 static gboolean do_selection_changed(PurpleBlistNode *new_selection)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4685 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4686 PurpleBlistNode *old_selection = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4687
5254
6717daf94719 [gaim-migrate @ 5626]
Robert McQueen <robot101@debian.org>
parents: 5241
diff changeset
4688 /* 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
4689 if (gtkblist && new_selection != gtkblist->selected_node) {
6717daf94719 [gaim-migrate @ 5626]
Robert McQueen <robot101@debian.org>
parents: 5241
diff changeset
4690 old_selection = gtkblist->selected_node;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4691 gtkblist->selected_node = new_selection;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4692 if(new_selection)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4693 pidgin_blist_update(NULL, new_selection);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4694 if(old_selection)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4695 pidgin_blist_update(NULL, old_selection);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4696 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4697
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4698 return FALSE;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4699 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4700
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4701 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4702 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4703 PurpleBlistNode *new_selection = NULL;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4704 GtkTreeIter iter;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4705
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4706 if(gtk_tree_selection_get_selected(selection, NULL, &iter)){
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4707 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4708 NODE_COLUMN, &new_selection, -1);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4709 }
5254
6717daf94719 [gaim-migrate @ 5626]
Robert McQueen <robot101@debian.org>
parents: 5241
diff changeset
4710
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4711 /* we set this up as a timeout, otherwise the blist flickers */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4712 g_timeout_add(0, (GSourceFunc)do_selection_changed, new_selection);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4713 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4714
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4715 static gboolean insert_node(PurpleBuddyList *list, PurpleBlistNode *node, GtkTreeIter *iter)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4716 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4717 GtkTreeIter parent_iter, cur, *curptr = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4718 struct _pidgin_blist_node *gtknode = node->ui_data;
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4719 GtkTreePath *newpath;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4720
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4721 if(!iter)
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
4722 return FALSE;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4723
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4724 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
4725 return FALSE;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4726
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4727 if(get_iter_from_node(node, &cur))
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4728 curptr = &cur;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4729
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4730 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
4731 current_sort_method->func(node, list, parent_iter, curptr, iter);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4732 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
4733 sort_method_none(node, list, parent_iter, curptr, iter);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4734 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4735
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4736 if(gtknode != NULL) {
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4737 gtk_tree_row_reference_free(gtknode->row);
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4738 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4739 pidgin_blist_new_node(node);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4740 gtknode = (struct _pidgin_blist_node *)node->ui_data;
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4741 }
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4742
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4743 newpath = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4744 iter);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4745 gtknode->row =
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4746 gtk_tree_row_reference_new(GTK_TREE_MODEL(gtkblist->treemodel),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4747 newpath);
11494
60bfb30f6cba [gaim-migrate @ 13738]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11490
diff changeset
4748
5256
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4749 gtk_tree_path_free(newpath);
9d90b7aaf38e [gaim-migrate @ 5628]
Oh-One-inator
parents: 5254
diff changeset
4750
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4751 gtk_tree_store_set(gtkblist->treemodel, iter,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4752 NODE_COLUMN, node,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4753 -1);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4754
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4755 if(node->parent) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4756 GtkTreePath *expand = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4757 struct _pidgin_blist_node *gtkparentnode = node->parent->ui_data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4758
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4759 if(PURPLE_BLIST_NODE_IS_GROUP(node->parent)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4760 if(!purple_blist_node_get_bool(node->parent, "collapsed"))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4761 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
4762 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node->parent) &&
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4763 gtkparentnode->contact_expanded) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4764 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
4765 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4766 if(expand) {
7693
1f736efbd12d [gaim-migrate @ 8338]
Nathan Walp <nwalp@pidgin.im>
parents: 7662
diff changeset
4767 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
4768 gtk_tree_path_free(expand);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4769 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4770 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4771
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
4772 return TRUE;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4773 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4774
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4775 /*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
4776 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
4777 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
4778 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4779 PurpleGroup *group;
8203
23f66d41ff8c [gaim-migrate @ 8926]
Alex Smith <madalex@users.sourceforge.net>
parents: 8198
diff changeset
4780 int count;
12341
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
4781 gboolean show = FALSE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4782 PurpleBlistNode* gnode;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4783
13982
b1d1248b2789 [gaim-migrate @ 16432]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13951
diff changeset
4784 g_return_if_fail(node != NULL);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4785
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4786 if (PURPLE_BLIST_NODE_IS_GROUP(node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4787 gnode = node;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4788 else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4789 gnode = node->parent->parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4790 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
4791 gnode = node->parent;
13982
b1d1248b2789 [gaim-migrate @ 16432]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13951
diff changeset
4792 else
b1d1248b2789 [gaim-migrate @ 16432]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13951
diff changeset
4793 return;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4794
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4795 group = (PurpleGroup*)gnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4796
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4797 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
4798 count = purple_blist_get_group_size(group, FALSE);
8203
23f66d41ff8c [gaim-migrate @ 8926]
Alex Smith <madalex@users.sourceforge.net>
parents: 8198
diff changeset
4799 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4800 count = purple_blist_get_group_online_count(group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4801
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4802 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
4803 show = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4804 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
4805 if (buddy_is_displayable((PurpleBuddy*)node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4806 show = TRUE;}
12341
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
4807
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
4808 if (show) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4809 GtkTreeIter iter;
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4810 GtkTreePath *path;
14722
6f567e2961ae [gaim-migrate @ 17406]
Etan Reisner <deryni@pidgin.im>
parents: 14682
diff changeset
4811 gboolean expanded;
14501
17032cb417f9 [gaim-migrate @ 17153]
Gary Kramlich <grim@reaperworld.com>
parents: 14476
diff changeset
4812 GdkColor bgcolor;
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4813 char *title;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4814
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4815
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4816 if(!insert_node(list, gnode, &iter))
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
4817 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4818
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
4819 bgcolor = gtkblist->treeview->style->bg[GTK_STATE_ACTIVE];
14501
17032cb417f9 [gaim-migrate @ 17153]
Gary Kramlich <grim@reaperworld.com>
parents: 14476
diff changeset
4820
17032cb417f9 [gaim-migrate @ 17153]
Gary Kramlich <grim@reaperworld.com>
parents: 14476
diff changeset
4821 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
4822 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
4823 gtk_tree_path_free(path);
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4824
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
4825 title = pidgin_get_group_title(gnode, expanded);
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
4826
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4827 gtk_tree_store_set(gtkblist->treemodel, &iter,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4828 STATUS_ICON_VISIBLE_COLUMN, FALSE,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4829 STATUS_ICON_COLUMN, NULL,
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4830 NAME_COLUMN, title,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4831 NODE_COLUMN, gnode,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4832 BGCOLOR_COLUMN, &bgcolor,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
4833 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
4834 GROUP_EXPANDER_VISIBLE_COLUMN, TRUE,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4835 CONTACT_EXPANDER_VISIBLE_COLUMN, FALSE,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4836 BUDDY_ICON_VISIBLE_COLUMN, FALSE,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4837 IDLE_VISIBLE_COLUMN, FALSE,
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4838 EMBLEM_VISIBLE_COLUMN, FALSE,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4839 -1);
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4840 g_free(title);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4841 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4842 pidgin_blist_hide_node(list, gnode, TRUE);
7620
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
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4846 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
4847 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4848 PurpleGroup *group;
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4849 GdkColor textcolor;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4850 gboolean selected;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4851 char group_count[12] = "";
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4852 char *mark, *esc;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4853
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4854 group = (PurpleGroup*)gnode;
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4855 textcolor = gtkblist->treeview->style->fg[GTK_STATE_ACTIVE];
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4856 selected = gtkblist ? (gtkblist->selected_node == gnode) : FALSE;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4857
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4858 if (!expanded) {
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4859 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
4860 purple_blist_get_group_online_count(group),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4861 purple_blist_get_group_size(group, FALSE));
15385
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4862 }
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4863
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4864 esc = g_markup_escape_text(group->name, -1);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4865 if (selected)
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4866 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
4867 else
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4868 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
4869 textcolor.red>>8, textcolor.green>>8, textcolor.blue>>8,
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4870 esc, group_count);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4871
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4872 g_free(esc);
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4873 return mark;
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4874 }
d9ef6b4281fd [gaim-migrate @ 18114]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
4875
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4876 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
4877 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4878 PurplePresence *presence;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4879 GdkPixbuf *status, *avatar, *emblem;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4880 char *mark;
11257
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
4881 char *idle = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4882 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
4883 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
4884 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
4885 presence = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4886
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4887 status = pidgin_blist_get_status_icon((PurpleBlistNode*)buddy,
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
4888 PIDGIN_STATUS_ICON_SMALL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4889
16950
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4890 /* 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
4891 if(biglist)
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4892 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
4893 else
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4894 avatar = NULL;
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
4895
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4896 if (!avatar) {
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4897 g_object_ref(G_OBJECT(gtkblist->empty_avatar));
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4898 avatar = gtkblist->empty_avatar;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4899 } 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
4900 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
4901 }
e66ed02bc8c9 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@pidgin.im>
parents: 15551
diff changeset
4902
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4903 emblem = pidgin_blist_get_emblem((PurpleBlistNode*) buddy);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4904 mark = pidgin_blist_get_name_markup(buddy, selected);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4905
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
4906 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
4907 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
4908 !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
4909 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4910 time_t idle_secs = purple_presence_get_idle_time(presence);
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4911
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4912 if (idle_secs > 0)
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4913 {
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4914 time_t t;
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4915 int ihrs, imin;
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4916 time(&t);
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4917 ihrs = (t - idle_secs) / 3600;
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4918 imin = ((t - idle_secs) / 60) % 60;
13821
3eda6c8a2b75 [gaim-migrate @ 16251]
Richard Laager <rlaager@pidgin.im>
parents: 13792
diff changeset
4919 idle = g_strdup_printf("%d:%02d", ihrs, imin);
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4920 }
7620
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 if (purple_presence_is_idle(presence))
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4924 {
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
4925 if (idle && !selected) {
10118
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
4926 char *i2 = g_strdup_printf("<span color='%s'>%s</span>",
3e672eabe428 [gaim-migrate @ 11155]
Sean Egan <seanegan@pidgin.im>
parents: 10087
diff changeset
4927 dim_grey(), idle);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4928 g_free(idle);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4929 idle = i2;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4930 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4931 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4932
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4933 gtk_tree_store_set(gtkblist->treemodel, iter,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4934 STATUS_ICON_COLUMN, status,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4935 STATUS_ICON_VISIBLE_COLUMN, TRUE,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4936 NAME_COLUMN, mark,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4937 IDLE_COLUMN, idle,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4938 IDLE_VISIBLE_COLUMN, !biglist && idle,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4939 BUDDY_ICON_COLUMN, avatar,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4940 BUDDY_ICON_VISIBLE_COLUMN, biglist,
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4941 EMBLEM_COLUMN, emblem,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
4942 EMBLEM_VISIBLE_COLUMN, emblem,
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
4943 BGCOLOR_COLUMN, NULL,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4944 CONTACT_EXPANDER_COLUMN, NULL,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
4945 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
4946 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4947 -1);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4948
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4949 g_free(mark);
12656
77de7b9c23bf [gaim-migrate @ 14999]
Mark Doliner <markdoliner@pidgin.im>
parents: 12649
diff changeset
4950 g_free(idle);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4951 if(status)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4952 g_object_unref(status);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4953 if(avatar)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4954 g_object_unref(avatar);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4955 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4956
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4957 /* 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
4958 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
4959 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
4960 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4961 PurpleBlistNode *cnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4962 PurpleContact *contact;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4963 PurpleBuddy *buddy;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4964 struct _pidgin_blist_node *gtknode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4965
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4966 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4967 cnode = node->parent;
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4968 else
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4969 cnode = node;
14239
661d2bb9eb86 [gaim-migrate @ 16827]
Daniel Atallah <datallah@pidgin.im>
parents: 14230
diff changeset
4970
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4971 g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(cnode));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4972
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4973 /* First things first, update the group */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4974 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4975 pidgin_blist_update_group(list, node);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4976 else
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4977 pidgin_blist_update_group(list, cnode->parent);
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4978
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4979 contact = (PurpleContact*)cnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4980 buddy = purple_contact_get_priority_buddy(contact);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4981
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11798
diff changeset
4982 if (buddy_is_displayable(buddy))
10006
800a81666868 [gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents: 9993
diff changeset
4983 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4984 GtkTreeIter iter;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4985
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
4986 if(!insert_node(list, cnode, &iter))
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
4987 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4988
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4989 gtknode = (struct _pidgin_blist_node *)cnode->ui_data;
10515
865130ede44a [gaim-migrate @ 11816]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10510
diff changeset
4990
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4991 if(gtknode->contact_expanded) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4992 GdkPixbuf *status;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4993 char *mark;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4994
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
4995 status = pidgin_blist_get_status_icon(cnode,
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
4996 PIDGIN_STATUS_ICON_SMALL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
4997
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
4998 mark = g_markup_escape_text(purple_contact_get_alias(contact), -1);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4999 gtk_tree_store_set(gtkblist->treemodel, &iter,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5000 STATUS_ICON_COLUMN, status,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5001 STATUS_ICON_VISIBLE_COLUMN, TRUE,
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
5002 NAME_COLUMN, mark,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5003 IDLE_COLUMN, NULL,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5004 IDLE_VISIBLE_COLUMN, FALSE,
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
5005 BGCOLOR_COLUMN, NULL,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5006 BUDDY_ICON_COLUMN, NULL,
14623
046a118a3b04 [gaim-migrate @ 17284]
Sean Egan <seanegan@pidgin.im>
parents: 14622
diff changeset
5007 CONTACT_EXPANDER_COLUMN, TRUE,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14456
diff changeset
5008 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
5009 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5010 -1);
14603
ad5c97d0d32b [gaim-migrate @ 17262]
Sean Egan <seanegan@pidgin.im>
parents: 14574
diff changeset
5011 g_free(mark);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5012 if(status)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5013 g_object_unref(status);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5014 } else {
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5015 buddy_node(buddy, &iter, cnode);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5016 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5017 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5018 pidgin_blist_hide_node(list, cnode, TRUE);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5019 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5020 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5021
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5022
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5023
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5024 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
5025 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5026 PurpleBuddy *buddy;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5027 struct _pidgin_blist_node *gtkparentnode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5028
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5029 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5030
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5031 if (node->parent == NULL)
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5032 return;
13951
4a340b669170 [gaim-migrate @ 16370]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13942
diff changeset
5033
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5034 buddy = (PurpleBuddy*)node;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5035
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5036 /* First things first, update the contact */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5037 pidgin_blist_update_contact(list, node);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5038
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5039 gtkparentnode = (struct _pidgin_blist_node *)node->parent->ui_data;
10918
77103f5ad580 [gaim-migrate @ 12681]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10884
diff changeset
5040
12341
a4b5f9eb0d83 [gaim-migrate @ 14645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12338
diff changeset
5041 if (gtkparentnode->contact_expanded && buddy_is_displayable(buddy))
10006
800a81666868 [gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents: 9993
diff changeset
5042 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5043 GtkTreeIter iter;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5044
10006
800a81666868 [gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents: 9993
diff changeset
5045 if (!insert_node(list, node, &iter))
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5046 return;
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5047
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5048 buddy_node(buddy, &iter, node);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5049
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5050 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5051 pidgin_blist_hide_node(list, node, TRUE);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5052 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5053
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5054 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5055
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5056 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
5057 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5058 PurpleChat *chat;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5059
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5060 g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5061
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5062 /* First things first, update the group */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5063 pidgin_blist_update_group(list, node->parent);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5064
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5065 chat = (PurpleChat*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5066
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5067 if(purple_account_is_connected(chat->account)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5068 GtkTreeIter iter;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5069 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
5070 GdkPixbuf *avatar;
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
5071 GdkPixbuf *emblem;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5072 char *mark;
16950
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5073 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
5074
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5075 if(!insert_node(list, node, &iter))
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8235
diff changeset
5076 return;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5077
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5078 status = pidgin_blist_get_status_icon(node,
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
5079 PIDGIN_STATUS_ICON_SMALL);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5080 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
5081
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5082 /* 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
5083 if(showicons)
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5084 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
5085 else
53c231f0ab5c Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16903
diff changeset
5086 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
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_chat_get_name(chat), -1);
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5089
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5090 gtk_tree_store_set(gtkblist->treemodel, &iter,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5091 STATUS_ICON_COLUMN, status,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5092 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
5093 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
5094 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
5095 EMBLEM_COLUMN, emblem,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15509
diff changeset
5096 EMBLEM_VISIBLE_COLUMN, emblem != NULL,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5097 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
5098 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5099 -1);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5100
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5101 g_free(mark);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5102 if(status)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5103 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
5104 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
5105 g_object_unref(avatar);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5106 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5107 pidgin_blist_hide_node(list, node, TRUE);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5108 }
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
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5111 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5112 {
15282
376816e3cb9e [gaim-migrate @ 18010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15260
diff changeset
5113 if (list)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5114 gtkblist = PIDGIN_BLIST(list);
15306
b4bb51751de0 [gaim-migrate @ 18034]
Ethan Blanton <elb@pidgin.im>
parents: 15300
diff changeset
5115 if(!gtkblist || !gtkblist->treeview || !node)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5116 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5117
13196
b34319a69167 [gaim-migrate @ 15558]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13162
diff changeset
5118 if (node->ui_data == NULL)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5119 pidgin_blist_new_node(node);
13196
b34319a69167 [gaim-migrate @ 15558]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13162
diff changeset
5120
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5121 switch(node->type) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5122 case PURPLE_BLIST_GROUP_NODE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5123 pidgin_blist_update_group(list, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5124 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5125 case PURPLE_BLIST_CONTACT_NODE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5126 pidgin_blist_update_contact(list, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5127 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5128 case PURPLE_BLIST_BUDDY_NODE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5129 pidgin_blist_update_buddy(list, node, TRUE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5130 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5131 case PURPLE_BLIST_CHAT_NODE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5132 pidgin_blist_update_chat(list, node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5133 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5134 case PURPLE_BLIST_OTHER_NODE:
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5135 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5136 }
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
5137
13147
5442361b3f40 [gaim-migrate @ 15509]
Mart Raudsepp
parents: 13141
diff changeset
5138 #if !GTK_CHECK_VERSION(2,6,0)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5139 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(gtkblist->treeview));
13147
5442361b3f40 [gaim-migrate @ 15509]
Mart Raudsepp
parents: 13141
diff changeset
5140 #endif
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5141 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5142
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5143
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5144 static void pidgin_blist_destroy(PurpleBuddyList *list)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5145 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5146 if (!gtkblist)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5147 return;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5148
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5149 purple_signals_disconnect_by_handle(gtkblist);
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8254
diff changeset
5150
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
5151 if (gtkblist->headline_close)
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
5152 gdk_pixbuf_unref(gtkblist->headline_close);
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15286
diff changeset
5153
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5154 gtk_widget_destroy(gtkblist->window);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5155
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5156 pidgin_blist_tooltip_destroy();
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5157
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5158 if (gtkblist->refresh_timer)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5159 g_source_remove(gtkblist->refresh_timer);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5160 if (gtkblist->timeout)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5161 g_source_remove(gtkblist->timeout);
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
5162 if (gtkblist->drag_timeout)
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
5163 g_source_remove(gtkblist->drag_timeout);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5164
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 13001
diff changeset
5165 g_hash_table_destroy(gtkblist->connection_errors);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5166 gtkblist->refresh_timer = 0;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5167 gtkblist->timeout = 0;
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10353
diff changeset
5168 gtkblist->drag_timeout = 0;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5169 gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5170 gtkblist->treemodel = NULL;
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
5171 g_object_unref(G_OBJECT(gtkblist->ift));
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
5172 g_object_unref(G_OBJECT(gtkblist->empty_avatar));
15260
a9e3babd5686 [gaim-migrate @ 17988]
Daniel Atallah <datallah@pidgin.im>
parents: 15259
diff changeset
5173
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5174 gdk_cursor_unref(gtkblist->hand_cursor);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5175 gdk_cursor_unref(gtkblist->arrow_cursor);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5176 gtkblist->hand_cursor = NULL;
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5177 gtkblist->arrow_cursor = NULL;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5178
15282
376816e3cb9e [gaim-migrate @ 18010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15260
diff changeset
5179 g_free(gtkblist);
376816e3cb9e [gaim-migrate @ 18010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15260
diff changeset
5180 accountmenu = NULL;
376816e3cb9e [gaim-migrate @ 18010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15260
diff changeset
5181 gtkblist = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5182 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
5183 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5184
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5185 static void pidgin_blist_set_visible(PurpleBuddyList *list, gboolean show)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5186 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5187 if (!(gtkblist && gtkblist->window))
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5188 return;
10325
9bb530214bae [gaim-migrate @ 11532]
Mark Doliner <markdoliner@pidgin.im>
parents: 10320
diff changeset
5189
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5190 if (show) {
15571
812bd6c69c8c dialogs
Sean Egan <seanegan@pidgin.im>
parents: 15570
diff changeset
5191 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
5192 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
5193 pidgin_blist_restore_position();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5194 gtk_window_present(GTK_WINDOW(gtkblist->window));
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5195 } else {
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5196 if(visibility_manager_count) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5197 purple_signal_emit(pidgin_blist_get_handle(), "gtkblist-hiding", gtkblist);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5198 gtk_widget_hide(gtkblist->window);
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5199 } else {
12479
01ea9120820a [gaim-migrate @ 14790]
Casey Harkins <charkins@pidgin.im>
parents: 12478
diff changeset
5200 if (!GTK_WIDGET_VISIBLE(gtkblist->window))
01ea9120820a [gaim-migrate @ 14790]
Casey Harkins <charkins@pidgin.im>
parents: 12478
diff changeset
5201 gtk_widget_show(gtkblist->window);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5202 gtk_window_iconify(GTK_WINDOW(gtkblist->window));
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5203 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5204 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5205 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5206
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5207 static GList *
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5208 groups_tree(void)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5209 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5210 GList *tmp = NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5211 char *tmp2;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5212 PurpleGroup *g;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5213 PurpleBlistNode *gnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5214
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5215 if (purple_get_blist()->root == NULL)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5216 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5217 tmp2 = g_strdup(_("Buddies"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5218 tmp = g_list_append(tmp, tmp2);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5219 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5220 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5221 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5222 for (gnode = purple_get_blist()->root;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5223 gnode != NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5224 gnode = gnode->next)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5225 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5226 if (PURPLE_BLIST_NODE_IS_GROUP(gnode))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5227 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5228 g = (PurpleGroup *)gnode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5229 tmp2 = g->name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5230 tmp = g_list_append(tmp, tmp2);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5231 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5232 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5233 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5234
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5235 return tmp;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5236 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5237
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5238 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5239 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
5240 PidginAddBuddyData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5241 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5242 /* Save our account */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5243 data->account = account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5244 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5245
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5246 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5247 destroy_add_buddy_dialog_cb(GtkWidget *win, PidginAddBuddyData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5248 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5249 g_free(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5250 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5251
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5252 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5253 add_buddy_cb(GtkWidget *w, int resp, PidginAddBuddyData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5254 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5255 const char *grp, *who, *whoalias;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5256 PurpleGroup *g;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5257 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5258 PurpleConversation *c;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5259 PurpleBuddyIcon *icon;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5260
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5261 if (resp == GTK_RESPONSE_OK)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5262 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5263 who = gtk_entry_get_text(GTK_ENTRY(data->entry));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5264 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
5265 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
5266 if (*whoalias == '\0')
261c1ce87287 [gaim-migrate @ 10506]
Mark Doliner <markdoliner@pidgin.im>
parents: 9646
diff changeset
5267 whoalias = NULL;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5268
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5269 if ((g = purple_find_group(grp)) == NULL)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5270 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5271 g = purple_group_new(grp);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5272 purple_blist_add_group(g, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5273 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5274
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5275 b = purple_buddy_new(data->account, who, whoalias);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5276 purple_blist_add_buddy(b, NULL, g, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5277 purple_account_add_buddy(data->account, b);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5278
7887
4b2925a88897 [gaim-migrate @ 8545]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
5279 /*
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9236
diff changeset
5280 * XXX
11643
f04408721780 [gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 11638
diff changeset
5281 * 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
5282 * 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
5283 * 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
5284 * purple_account_add_buddy() should be renamed to
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5285 * 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
5286 * purple_blist_add_buddy() after it creates it. --Mark
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9236
diff changeset
5287 *
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9236
diff changeset
5288 * 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
5289 * 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
5290 * purple_account_add_buddy and purple_blist_add_buddy().
11643
f04408721780 [gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 11638
diff changeset
5291 * Or something. --Mark
7887
4b2925a88897 [gaim-migrate @ 8545]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
5292 */
4b2925a88897 [gaim-migrate @ 8545]
Mark Doliner <markdoliner@pidgin.im>
parents: 7879
diff changeset
5293
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5294 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
5295 if (c != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5296 icon = purple_conv_im_get_icon(PURPLE_CONV_IM(c));
13942
77bc33d555f8 [gaim-migrate @ 16358]
Mark Doliner <markdoliner@pidgin.im>
parents: 13834
diff changeset
5297 if (icon != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5298 purple_buddy_icon_update(icon);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5299 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5300 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5301
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5302 gtk_widget_destroy(data->window);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5303 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5304
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5305 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5306 pidgin_blist_request_add_buddy(PurpleAccount *account, const char *username,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5307 const char *group, const char *alias)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5308 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5309 GtkWidget *table;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5310 GtkWidget *label;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5311 GtkWidget *hbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5312 GtkWidget *vbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5313 GtkWidget *img;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5314 PidginBuddyList *gtkblist;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5315 PidginAddBuddyData *data = g_new0(PidginAddBuddyData, 1);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5316
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5317 data->account =
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5318 (account != NULL
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5319 ? account
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5320 : purple_connection_get_account(purple_connections_get_all()->data));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5321
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
5322 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
5323 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5324
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5325 gtkblist = PIDGIN_BLIST(purple_get_blist());
7620
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 data->window = gtk_dialog_new_with_buttons(_("Add Buddy"),
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5328 NULL, GTK_DIALOG_NO_SEPARATOR,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5329 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5330 GTK_STOCK_ADD, GTK_RESPONSE_OK,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5331 NULL);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5332
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5333 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
5334 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
5335 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
5336 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
5337 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
5338 gtk_window_set_role(GTK_WINDOW(data->window), "add_buddy");
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5339 gtk_window_set_type_hint(GTK_WINDOW(data->window),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5340 GDK_WINDOW_TYPE_HINT_DIALOG);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5341
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5342 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5343 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5344 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5345 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5346
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5347 vbox = gtk_vbox_new(FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5348 gtk_container_add(GTK_CONTAINER(hbox), vbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5349
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5350 label = gtk_label_new(
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5351 _("Please enter the screen name of the person you would like "
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5352 "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
5353 "or nickname, for the buddy. The alias will be displayed in "
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5354 "place of the screen name whenever possible.\n"));
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 gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5357 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5358 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5359 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5360
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5361 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5362 gtk_container_add(GTK_CONTAINER(vbox), hbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5363
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5364 g_signal_connect(G_OBJECT(data->window), "destroy",
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5365 G_CALLBACK(destroy_add_buddy_dialog_cb), data);
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 table = gtk_table_new(4, 2, FALSE);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5368 gtk_table_set_row_spacings(GTK_TABLE(table), 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5369 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5370 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5371 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5372
13546
0700f0c29e14 [gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents: 13543
diff changeset
5373 label = gtk_label_new(_("Screen name:"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5374 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5375 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
5376
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5377 data->entry = gtk_entry_new();
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5378 gtk_table_attach_defaults(GTK_TABLE(table), data->entry, 1, 2, 0, 1);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5379 gtk_widget_grab_focus(data->entry);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5380
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5381 if (username != NULL)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5382 gtk_entry_set_text(GTK_ENTRY(data->entry), username);
12337
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5383 else
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5384 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window),
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5385 GTK_RESPONSE_OK, FALSE);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5386
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5387 gtk_entry_set_activates_default (GTK_ENTRY(data->entry), TRUE);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5388 pidgin_set_accessible_label (data->entry, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5389
12337
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5390 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
5391 G_CALLBACK(pidgin_set_sensitive_if_input),
12337
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5392 data->window);
1c9251d1f005 [gaim-migrate @ 14641]
Mark Doliner <markdoliner@pidgin.im>
parents: 12334
diff changeset
5393
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5394 label = gtk_label_new(_("Alias:"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5395 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5396 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
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 data->entry_for_alias = gtk_entry_new();
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5399 gtk_table_attach_defaults(GTK_TABLE(table),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5400 data->entry_for_alias, 1, 2, 1, 2);
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 if (alias != NULL)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5403 gtk_entry_set_text(GTK_ENTRY(data->entry_for_alias), alias);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5404
10734
4e49449724ec [gaim-migrate @ 12336]
Richard Laager <rlaager@pidgin.im>
parents: 10694
diff changeset
5405 if (username != NULL)
4e49449724ec [gaim-migrate @ 12336]
Richard Laager <rlaager@pidgin.im>
parents: 10694
diff changeset
5406 gtk_widget_grab_focus(GTK_WIDGET(data->entry_for_alias));
4e49449724ec [gaim-migrate @ 12336]
Richard Laager <rlaager@pidgin.im>
parents: 10694
diff changeset
5407
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5408 gtk_entry_set_activates_default (GTK_ENTRY(data->entry_for_alias), TRUE);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5409 pidgin_set_accessible_label (data->entry_for_alias, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5410
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5411 label = gtk_label_new(_("Group:"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5412 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5413 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5414
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5415 data->combo = gtk_combo_new();
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5416 gtk_combo_set_popdown_strings(GTK_COMBO(data->combo), groups_tree());
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5417 gtk_table_attach_defaults(GTK_TABLE(table), data->combo, 1, 2, 2, 3);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5418 pidgin_set_accessible_label (data->combo, label);
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 /* Set up stuff for the account box */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5421 label = gtk_label_new(_("Account:"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5422 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5423 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5424
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5425 data->account_box = pidgin_account_option_menu_new(account, FALSE,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5426 G_CALLBACK(add_buddy_select_account_cb), NULL, data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5427
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5428 gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 1, 2, 3, 4);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5429 pidgin_set_accessible_label (data->account_box, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5430 /* End of account box */
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5431
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5432 g_signal_connect(G_OBJECT(data->window), "response",
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5433 G_CALLBACK(add_buddy_cb), data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5434
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5435 gtk_widget_show_all(data->window);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5436
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5437 if (group != NULL)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5438 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
5439 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5440
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5441 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5442 add_chat_cb(GtkWidget *w, PidginAddChatData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5443 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5444 GHashTable *components;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5445 GList *tmp;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5446 PurpleChat *chat;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5447 PurpleGroup *group;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5448 const char *group_name;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5449 const char *value;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5450
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5451 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
5452 g_free, g_free);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5453
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5454 for (tmp = data->entries; tmp; tmp = tmp->next)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5455 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5456 if (g_object_get_data(tmp->data, "is_spin"))
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5457 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5458 g_hash_table_replace(components,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5459 g_strdup(g_object_get_data(tmp->data, "identifier")),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5460 g_strdup_printf("%d",
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5461 gtk_spin_button_get_value_as_int(tmp->data)));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5462 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5463 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5464 {
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5465 value = gtk_entry_get_text(tmp->data);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5466 if (*value != '\0')
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5467 g_hash_table_replace(components,
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5468 g_strdup(g_object_get_data(tmp->data, "identifier")),
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5469 g_strdup(value));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5470 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5471 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5472
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5473 chat = purple_chat_new(data->account,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5474 gtk_entry_get_text(GTK_ENTRY(data->alias_entry)),
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5475 components);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5476
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5477 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
5478
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5479 if ((group = purple_find_group(group_name)) == NULL)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5480 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5481 group = purple_group_new(group_name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5482 purple_blist_add_group(group, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5483 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5484
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5485 if (chat != NULL)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5486 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5487 purple_blist_add_chat(chat, group, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5488 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5489
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5490 gtk_widget_destroy(data->window);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5491 g_free(data->default_chat_name);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5492 g_list_free(data->entries);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5493 g_free(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5494 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5495
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5496 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5497 add_chat_resp_cb(GtkWidget *w, int resp, PidginAddChatData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5498 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5499 if (resp == GTK_RESPONSE_OK)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5500 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5501 add_chat_cb(NULL, data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5502 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5503 else
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 gtk_widget_destroy(data->window);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5506 g_free(data->default_chat_name);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5507 g_list_free(data->entries);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5508 g_free(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5509 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5510 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5511
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5512 /*
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5513 * 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
5514 * 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
5515 */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5516 static void
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5517 addchat_set_sensitive_if_input_cb(GtkWidget *entry, gpointer user_data)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5518 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5519 PidginAddChatData *data;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5520 GList *tmp;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5521 const char *text;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5522 gboolean required;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5523 gboolean sensitive = TRUE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5524
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5525 data = user_data;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5526
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5527 for (tmp = data->entries; tmp != NULL; tmp = tmp->next)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5528 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5529 if (!g_object_get_data(tmp->data, "is_spin"))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5530 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5531 required = GPOINTER_TO_INT(g_object_get_data(tmp->data, "required"));
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5532 text = gtk_entry_get_text(tmp->data);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5533 if (required && (*text == '\0'))
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5534 sensitive = FALSE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5535 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5536 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5537
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5538 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
5539 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5540
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5541 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5542 rebuild_addchat_entries(PidginAddChatData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5543 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5544 PurpleConnection *gc;
15051
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
5545 GList *list = NULL, *tmp;
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5546 GHashTable *defaults = NULL;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5547 struct proto_chat_entry *pce;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5548 gboolean focus = TRUE;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5549
10127
3ea502c95653 [gaim-migrate @ 11165]
Daniel Atallah <datallah@pidgin.im>
parents: 10118
diff changeset
5550 g_return_if_fail(data->account != NULL);
3ea502c95653 [gaim-migrate @ 11165]
Daniel Atallah <datallah@pidgin.im>
parents: 10118
diff changeset
5551
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5552 gc = purple_account_get_connection(data->account);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5553
15051
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
5554 while ((tmp = gtk_container_get_children(GTK_CONTAINER(data->entries_box))))
1d0c9b4b68e6 [gaim-migrate @ 17768]
Daniel Atallah <datallah@pidgin.im>
parents: 15050
diff changeset
5555 gtk_widget_destroy(tmp->data);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5556
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5557 g_list_free(data->entries);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5558
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5559 data->entries = NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5560
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5561 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
5562 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
5563
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5564 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
5565 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
5566
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5567 for (tmp = list; tmp; tmp = tmp->next)
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 GtkWidget *label;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5570 GtkWidget *rowbox;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5571 GtkWidget *input;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5572
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5573 pce = tmp->data;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5574
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5575 rowbox = gtk_hbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5576 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
5577
7889
34cc5467bf55 [gaim-migrate @ 8547]
Nathan Walp <nwalp@pidgin.im>
parents: 7887
diff changeset
5578 label = gtk_label_new_with_mnemonic(pce->label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5579 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5580 gtk_size_group_add_widget(data->sg, label);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5581 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5582
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5583 if (pce->is_int)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5584 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5585 GtkObject *adjust;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5586 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5587 1, 10, 10);
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5588 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5589 gtk_widget_set_size_request(input, 50, -1);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5590 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
5591 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5592 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5593 {
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5594 char *value;
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5595 input = gtk_entry_new();
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5596 gtk_entry_set_activates_default(GTK_ENTRY(input), TRUE);
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5597 value = g_hash_table_lookup(defaults, pce->identifier);
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5598 if (value != NULL)
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5599 gtk_entry_set_text(GTK_ENTRY(input), value);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5600 if (pce->secret)
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11983
diff changeset
5601 {
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5602 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE);
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15386
diff changeset
5603 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
5604 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
5605 }
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5606 gtk_box_pack_end(GTK_BOX(rowbox), input, TRUE, TRUE, 0);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5607 g_signal_connect(G_OBJECT(input), "changed",
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5608 G_CALLBACK(addchat_set_sensitive_if_input_cb), data);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5609 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5610
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5611 /* Do the following for any type of input widget */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5612 if (focus)
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5613 {
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5614 gtk_widget_grab_focus(input);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5615 focus = FALSE;
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5616 }
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5617 gtk_label_set_mnemonic_widget(GTK_LABEL(label), input);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5618 pidgin_set_accessible_label(input, label);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 13091
diff changeset
5619 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
5620 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
5621 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
5622 data->entries = g_list_append(data->entries, input);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5623
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5624 g_free(pce);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5625 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5626
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5627 g_list_free(list);
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5628 g_hash_table_destroy(defaults);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5629
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5630 /* Set whether the "OK" button should be clickable initially */
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5631 addchat_set_sensitive_if_input_cb(NULL, data);
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5632
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5633 gtk_widget_show_all(data->entries_box);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5634 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5635
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5636 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5637 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
5638 PidginAddChatData *data)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5639 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5640 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
5641 purple_account_get_protocol_id(account)) == 0)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5642 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5643 data->account = account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5644 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5645 else
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5646 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5647 data->account = account;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5648 rebuild_addchat_entries(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5649 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5650 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5651
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
5652 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5653 pidgin_blist_request_add_chat(PurpleAccount *account, PurpleGroup *group,
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5654 const char *alias, const char *name)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5655 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5656 PidginAddChatData *data;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5657 PidginBuddyList *gtkblist;
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5658 GList *l;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5659 PurpleConnection *gc;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5660 GtkWidget *label;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5661 GtkWidget *rowbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5662 GtkWidget *hbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5663 GtkWidget *vbox;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5664 GtkWidget *img;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5665
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5666 if (account != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5667 gc = purple_account_get_connection(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5668
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5669 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
5670 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
5671 return;
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5672 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5673 } else {
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5674 /* Find an account with chat capabilities */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5675 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
5676 gc = (PurpleConnection *)l->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5677
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5678 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
5679 account = purple_connection_get_account(gc);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5680 break;
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5681 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5682 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5683
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5684 if (account == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5685 purple_notify_error(NULL, NULL,
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5686 _("You are not currently signed on with any "
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5687 "protocols that have the ability to chat."), NULL);
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5688 return;
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5689 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5690 }
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5691
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5692 data = g_new0(PidginAddChatData, 1);
9812
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5693 data->account = account;
26cf39e74774 [gaim-migrate @ 10683]
Mark Doliner <markdoliner@pidgin.im>
parents: 9811
diff changeset
5694 data->default_chat_name = g_strdup(name);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5695
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
5696 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15496
diff changeset
5697 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5698
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5699 gtkblist = PIDGIN_BLIST(purple_get_blist());
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5700
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5701 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5702
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5703 data->window = gtk_dialog_new_with_buttons(_("Add Chat"),
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5704 NULL, GTK_DIALOG_NO_SEPARATOR,
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5705 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5706 GTK_STOCK_ADD, GTK_RESPONSE_OK,
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5707 NULL);
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5708
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5709 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
5710 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
5711 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
5712 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
5713 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
5714 gtk_window_set_role(GTK_WINDOW(data->window), "add_chat");
8975
729d25bd6c96 [gaim-migrate @ 9749]
Etan Reisner <deryni@pidgin.im>
parents: 8960
diff changeset
5715 gtk_window_set_type_hint(GTK_WINDOW(data->window),
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5716 GDK_WINDOW_TYPE_HINT_DIALOG);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5717
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15799
diff changeset
5718 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5719 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5720 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5721 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
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 vbox = gtk_vbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5724 gtk_container_add(GTK_CONTAINER(hbox), vbox);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5725
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5726 label = gtk_label_new(
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5727 _("Please enter an alias, and the appropriate information "
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5728 "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
5729 gtk_widget_set_size_request(label, 400, -1);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5730 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5731 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5732 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5733
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5734 rowbox = gtk_hbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5735 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5736
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5737 label = gtk_label_new(_("Account:"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5738 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5739 gtk_size_group_add_widget(data->sg, label);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5740 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5741
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5742 data->account_menu = pidgin_account_option_menu_new(account, FALSE,
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10439
diff changeset
5743 G_CALLBACK(addchat_select_account_cb),
9987
2396bd099335 [gaim-migrate @ 10900]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9959
diff changeset
5744 chat_account_filter_func, data);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5745 gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5746 pidgin_set_accessible_label (data->account_menu, label);
7620
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 data->entries_box = gtk_vbox_new(FALSE, 5);
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5749 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
5750 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
5751
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5752 rebuild_addchat_entries(data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5753
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5754 rowbox = gtk_hbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5755 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5756
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5757 label = gtk_label_new(_("Alias:"));
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5758 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5759 gtk_size_group_add_widget(data->sg, label);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5760 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5761
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5762 data->alias_entry = gtk_entry_new();
7859
b0f646df7125 [gaim-migrate @ 8513]
Mark Doliner <markdoliner@pidgin.im>
parents: 7856
diff changeset
5763 if (alias != NULL)
b0f646df7125 [gaim-migrate @ 8513]
Mark Doliner <markdoliner@pidgin.im>
parents: 7856
diff changeset
5764 gtk_entry_set_text(GTK_ENTRY(data->alias_entry), alias);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5765 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
5766 gtk_entry_set_activates_default(GTK_ENTRY(data->alias_entry), TRUE);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5767 pidgin_set_accessible_label (data->alias_entry, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5768
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5769 rowbox = gtk_hbox_new(FALSE, 5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5770 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5771
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5772 label = gtk_label_new(_("Group:"));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5773 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5774 gtk_size_group_add_widget(data->sg, label);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5775 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5776
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5777 data->group_combo = gtk_combo_new();
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
5778 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
5779 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
5780
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5781 if (group)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5782 {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5783 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
5784 group->name);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5785 }
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
5786 pidgin_set_accessible_label (data->group_combo, label);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5787
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5788 g_signal_connect(G_OBJECT(data->window), "response",
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5789 G_CALLBACK(add_chat_resp_cb), data);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5790
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5791 gtk_widget_show_all(data->window);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5792 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5793
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5794 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5795 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
5796 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5797 PurpleGroup *group;
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9236
diff changeset
5798
12458
c1bb7ec2fb26 [gaim-migrate @ 14767]
Mark Doliner <markdoliner@pidgin.im>
parents: 12450
diff changeset
5799 if ((group_name == NULL) || (*group_name == '\0'))
c1bb7ec2fb26 [gaim-migrate @ 14767]
Mark Doliner <markdoliner@pidgin.im>
parents: 12450
diff changeset
5800 return;
c1bb7ec2fb26 [gaim-migrate @ 14767]
Mark Doliner <markdoliner@pidgin.im>
parents: 12450
diff changeset
5801
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5802 group = purple_group_new(group_name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5803 purple_blist_add_group(group, NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5804 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5805
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
5806 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5807 pidgin_blist_request_add_group(void)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5808 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5809 purple_request_input(NULL, _("Add Group"), NULL,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5810 _("Please enter the name of the group to be added."),
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8592
diff changeset
5811 NULL, FALSE, FALSE, NULL,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5812 _("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
5813 _("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
5814 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
5815 NULL);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5816 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5817
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5818 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5819 pidgin_blist_toggle_visibility()
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5820 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5821 if (gtkblist && gtkblist->window) {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5822 if (GTK_WIDGET_VISIBLE(gtkblist->window)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5823 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
5824 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5825 purple_blist_set_visible(TRUE);
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5826 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5827 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5828 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5829
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5830 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5831 pidgin_blist_visibility_manager_add()
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5832 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5833 visibility_manager_count++;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5834 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
5835 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5836
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5837 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5838 pidgin_blist_visibility_manager_remove()
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5839 {
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5840 if (visibility_manager_count)
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5841 visibility_manager_count--;
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5842 if (!visibility_manager_count)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5843 purple_blist_set_visible(TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5844 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
5845 }
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5846
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5847 void pidgin_blist_add_alert(GtkWidget *widget)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
5848 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
5849 gtk_container_add(GTK_CONTAINER(gtkblist->scrollbook), widget);
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
5850 if (!GTK_WIDGET_HAS_FOCUS(gtkblist->window))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5851 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), TRUE);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
5852 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15091
diff changeset
5853
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5854 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5855 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
5856 gpointer user_data, GDestroyNotify destroy)
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5857 {
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5858 /* Destroy any existing headline first */
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5859 if (gtkblist->headline_destroy)
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5860 gtkblist->headline_destroy(gtkblist->headline_data);
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5861
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
5862 gtk_label_set_markup(GTK_LABEL(gtkblist->headline_label), text);
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
5863 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
5864
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5865 gtkblist->headline_callback = callback;
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5866 gtkblist->headline_data = user_data;
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15385
diff changeset
5867 gtkblist->headline_destroy = destroy;
15413
3f4d28fe3423 [gaim-migrate @ 18144]
Sean Egan <seanegan@pidgin.im>
parents: 15409
diff changeset
5868 if (!GTK_WIDGET_HAS_FOCUS(gtkblist->window))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5869 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), TRUE);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5870 gtk_widget_show_all(gtkblist->headline_hbox);
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15209
diff changeset
5871 }
12016
0517ad5d0196 [gaim-migrate @ 14309]
Casey Harkins <charkins@pidgin.im>
parents: 11988
diff changeset
5872
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5873 static PurpleBlistUiOps blist_ui_ops =
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5874 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5875 pidgin_blist_new_list,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5876 pidgin_blist_new_node,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5877 pidgin_blist_show,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5878 pidgin_blist_update,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5879 pidgin_blist_remove,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5880 pidgin_blist_destroy,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5881 pidgin_blist_set_visible,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5882 pidgin_blist_request_add_buddy,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5883 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
5884 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
5885 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16625
diff changeset
5886 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16625
diff changeset
5887 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16625
diff changeset
5888 NULL
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5889 };
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5890
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5891
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5892 PurpleBlistUiOps *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5893 pidgin_blist_get_ui_ops(void)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5894 {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5895 return &blist_ui_ops;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5896 }
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5897
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5898 PidginBuddyList *pidgin_blist_get_default_gtk_blist()
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10623
diff changeset
5899 {
15509
068826834dd2 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15505
diff changeset
5900 return gtkblist;
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10623
diff changeset
5901 }
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10623
diff changeset
5902
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5903 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
5904 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5905 PurpleAccount *account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5906 PurpleBlistNode *gnode, *cnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5907 for(gnode = purple_get_blist()->root; gnode; gnode = gnode->next)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5908 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5909 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5910 continue;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5911 for(cnode = gnode->child; cnode; cnode = cnode->next)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5912 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5913 PurpleChat *chat;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5914
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5915 if(!PURPLE_BLIST_NODE_IS_CHAT(cnode))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5916 continue;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5917
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5918 chat = (PurpleChat *)cnode;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5919
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5920 if(chat->account != account)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5921 continue;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5922
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5923 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
5924 (purple_blist_node_get_string((PurpleBlistNode*)chat,
8198
867abd109161 [gaim-migrate @ 8921]
Nathan Walp <nwalp@pidgin.im>
parents: 8197
diff changeset
5925 "gtk-autojoin") != NULL))
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5926 serv_join_chat(gc, chat->components);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5927 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5928 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5929 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5930
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
5931 void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5932 pidgin_blist_get_handle() {
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
5933 static int handle;
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
5934
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
5935 return &handle;
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
5936 }
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
5937
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5938 static gboolean buddy_signonoff_timeout_cb(PurpleBuddy *buddy)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5939 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5940 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode*)buddy)->ui_data;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5941
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5942 gtknode->recent_signonoff = FALSE;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5943 gtknode->recent_signonoff_timer = 0;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5944
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5945 pidgin_blist_update(NULL, (PurpleBlistNode*)buddy);
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5946
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5947 return FALSE;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5948 }
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5949
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5950 static void buddy_signonoff_cb(PurpleBuddy *buddy)
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5951 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5952 struct _pidgin_blist_node *gtknode;
11915
2803eadda83e [gaim-migrate @ 14206]
Nathan Walp <nwalp@pidgin.im>
parents: 11910
diff changeset
5953
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5954 if(!((PurpleBlistNode*)buddy)->ui_data) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5955 pidgin_blist_new_node((PurpleBlistNode*)buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5956 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5957
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5958 gtknode = ((PurpleBlistNode*)buddy)->ui_data;
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5959
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5960 gtknode->recent_signonoff = TRUE;
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5961
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5962 if(gtknode->recent_signonoff_timer > 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5963 purple_timeout_remove(gtknode->recent_signonoff_timer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5964 gtknode->recent_signonoff_timer = purple_timeout_add(10000,
11910
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5965 (GSourceFunc)buddy_signonoff_timeout_cb, buddy);
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5966 }
4f8184cdcfff [gaim-migrate @ 14201]
Nathan Walp <nwalp@pidgin.im>
parents: 11906
diff changeset
5967
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5968 void pidgin_blist_init(void)
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5969 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
5970 void *gtk_blist_handle = pidgin_blist_get_handle();
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5971
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5972 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
5973 gtk_blist_handle, PURPLE_CALLBACK(account_signon_cb),
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
5974 NULL);
7731
7c3bb30a94c4 [gaim-migrate @ 8376]
Nathan Walp <nwalp@pidgin.im>
parents: 7723
diff changeset
5975
7c3bb30a94c4 [gaim-migrate @ 8376]
Nathan Walp <nwalp@pidgin.im>
parents: 7723
diff changeset
5976 /* 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
5977 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
5978 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
5979 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
5980 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
5981 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
5982 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
5983 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
5984 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
5985 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
5986 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
5987 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
5988 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
5989 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
5990
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
5991 /* Register our signals */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5992 purple_signal_register(gtk_blist_handle, "gtkblist-hiding",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5993 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5994 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5995 PURPLE_SUBTYPE_BLIST));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5996
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5997 purple_signal_register(gtk_blist_handle, "gtkblist-unhiding",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5998 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
5999 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6000 PURPLE_SUBTYPE_BLIST));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6001
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6002 purple_signal_register(gtk_blist_handle, "gtkblist-created",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6003 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6004 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6005 PURPLE_SUBTYPE_BLIST));
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 purple_signal_register(gtk_blist_handle, "drawing-tooltip",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6008 purple_marshal_VOID__POINTER_POINTER_UINT, NULL, 3,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6009 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6010 PURPLE_SUBTYPE_BLIST_NODE),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6011 purple_value_new_outgoing(PURPLE_TYPE_BOXED, "GString *"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6012 purple_value_new(PURPLE_TYPE_BOOLEAN));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6013
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6014
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6015 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
6016 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
6017 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
6018 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6019
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6020 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6021 pidgin_blist_uninit(void) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6022 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
6023 purple_signals_disconnect_by_handle(pidgin_blist_get_handle());
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8710
diff changeset
6024 }
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6025
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6026 /*********************************************************************
9811
2cbca162a09f [gaim-migrate @ 10682]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
6027 * Buddy List sorting functions *
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6028 *********************************************************************/
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6029
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6030 GList *pidgin_blist_get_sort_methods()
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6031 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6032 return pidgin_blist_sort_methods;
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6033 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6034
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6035 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
6036 {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6037 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
6038 method->id = g_strdup(id);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6039 method->name = g_strdup(name);
9775
e3a3555b0621 [gaim-migrate @ 10643]
Daniel Atallah <datallah@pidgin.im>
parents: 9774
diff changeset
6040 method->func = func;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6041 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
6042 pidgin_blist_update_sort_methods();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6043 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6044
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6045 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
6046 GList *l = pidgin_blist_sort_methods;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6047
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6048 while(l) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6049 struct pidgin_blist_sort_method *method = l->data;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6050 if(!strcmp(method->id, id)) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6051 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
6052 g_free(method->id);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6053 g_free(method->name);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6054 g_free(method);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6055 break;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6056 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6057 }
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6058 pidgin_blist_update_sort_methods();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6059 }
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6060
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6061 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
6062 GList *l = pidgin_blist_sort_methods;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6063
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6064 if(!id)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6065 id = "none";
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6066
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6067 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
6068 l = l->next;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6069
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6070 if (l) {
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6071 current_sort_method = l->data;
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6072 } else if (!current_sort_method) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6073 pidgin_blist_sort_method_set("none");
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6074 return;
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6075 }
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
6076 if (!strcmp(id, "none")) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6077 redo_buddy_list(purple_get_blist(), TRUE, FALSE);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
6078 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6079 redo_buddy_list(purple_get_blist(), FALSE, FALSE);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
6080 }
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6081 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6082
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6083 /******************************************
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6084 ** Sort Methods
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6085 ******************************************/
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6086
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6087 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
6088 {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6089 PurpleBlistNode *sibling = node->prev;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6090 GtkTreeIter sibling_iter;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6091
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6092 if (cur != NULL) {
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6093 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6094 return;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6095 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6096
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6097 while (sibling && !get_iter_from_node(sibling, &sibling_iter)) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6098 sibling = sibling->prev;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6099 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6100
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6101 gtk_tree_store_insert_after(gtkblist->treemodel, iter,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6102 node->parent ? &parent_iter : NULL,
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6103 sibling ? &sibling_iter : NULL);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6104 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6105
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6106 #if GTK_CHECK_VERSION(2,2,1)
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6107
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6108 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
6109 {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6110 GtkTreeIter more_z;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6111
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6112 const char *my_name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6113
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6114 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6115 my_name = purple_contact_get_alias((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6116 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6117 my_name = purple_chat_get_name((PurpleChat*)node);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6118 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6119 sort_method_none(node, blist, groupiter, cur, iter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6120 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6121 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6122
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6123
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6124 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
6125 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6126 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6127 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6128
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6129 do {
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6130 GValue val;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6131 PurpleBlistNode *n;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6132 const char *this_name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6133 int cmp;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6134
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6135 val.g_type = 0;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6136 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
6137 n = g_value_get_pointer(&val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6138
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6139 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6140 this_name = purple_contact_get_alias((PurpleContact*)n);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6141 } else if(PURPLE_BLIST_NODE_IS_CHAT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6142 this_name = purple_chat_get_name((PurpleChat*)n);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6143 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6144 this_name = NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6145 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6146
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6147 cmp = purple_utf8_strcasecmp(my_name, this_name);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6148
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6149 if(this_name && (cmp < 0 || (cmp == 0 && node < n))) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6150 if(cur) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6151 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6152 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6153 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6154 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6155 gtk_tree_store_insert_before(gtkblist->treemodel, iter,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6156 &groupiter, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6157 return;
7620
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 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6160 g_value_unset(&val);
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6161 } 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
6162
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6163 if(cur) {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6164 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6165 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6166 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6167 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6168 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6169 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6170 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6171 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6172
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6173 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
6174 {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6175 GtkTreeIter more_z;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6176
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6177 PurpleBuddy *my_buddy, *this_buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6178
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6179 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6180 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
6181 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6182 if (cur != NULL) {
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6183 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6184 return;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6185 }
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6186
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6187 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6188 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6189 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6190 sort_method_none(node, blist, groupiter, cur, iter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6191 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6192 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6193
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6194
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6195 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
6196 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6197 return;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6198 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6199
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6200 do {
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6201 GValue val;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6202 PurpleBlistNode *n;
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6203 gint name_cmp;
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6204 gint presence_cmp;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6205
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6206 val.g_type = 0;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6207 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
6208 n = g_value_get_pointer(&val);
7620
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 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6211 this_buddy = purple_contact_get_priority_buddy((PurpleContact*)n);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6212 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6213 this_buddy = NULL;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6214 }
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 name_cmp = purple_utf8_strcasecmp(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6217 purple_contact_get_alias(purple_buddy_get_contact(my_buddy)),
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6218 (this_buddy
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6219 ? purple_contact_get_alias(purple_buddy_get_contact(this_buddy))
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6220 : NULL));
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6221
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6222 presence_cmp = purple_presence_compare(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6223 purple_buddy_get_presence(my_buddy),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6224 this_buddy ? purple_buddy_get_presence(this_buddy) : NULL);
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6225
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6226 if (this_buddy == NULL ||
10860
8f600347b9e4 [gaim-migrate @ 12543]
Palmer Cox <enix@users.sourceforge.net>
parents: 10850
diff changeset
6227 (presence_cmp < 0 ||
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6228 (presence_cmp == 0 &&
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6229 (name_cmp < 0 || (name_cmp == 0 && node < n)))))
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6230 {
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6231 if (cur != NULL)
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6232 {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6233 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6234 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6235 return;
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6236 }
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6237 else
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6238 {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6239 gtk_tree_store_insert_before(gtkblist->treemodel, iter,
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6240 &groupiter, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6241 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6242 }
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6243 }
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6244
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6245 g_value_unset(&val);
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6246 }
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6247 while (gtk_tree_model_iter_next(GTK_TREE_MODEL(gtkblist->treemodel),
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9925
diff changeset
6248 &more_z));
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6249
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6250 if (cur) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6251 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6252 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6253 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6254 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6255 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6256 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6257 }
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6258 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6259
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6260 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
6261 {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6262 GtkTreeIter more_z;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6263
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6264 int log_size = 0, this_log_size = 0;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6265 const char *buddy_name, *this_buddy_name;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6266
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6267 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
6268 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6269 return;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6270 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6271
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6272 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6273 PurpleBlistNode *n;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6274 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
6275 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
6276 buddy_name = purple_contact_get_alias((PurpleContact*)node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6277 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6278 /* 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
6279 * from the chat info in the blist, yet */
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6280 if (cur != NULL) {
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6281 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6282 return;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6283 }
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6284
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6285 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6286 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6287 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6288 sort_method_none(node, blist, groupiter, cur, iter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6289 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6290 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6291
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6292
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6293 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
6294 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6295 return;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6296 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6297
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6298 do {
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6299 GValue val;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6300 PurpleBlistNode *n;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6301 PurpleBlistNode *n2;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6302 int cmp;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6303
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12592
diff changeset
6304 val.g_type = 0;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6305 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
6306 n = g_value_get_pointer(&val);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6307 this_log_size = 0;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6308
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6309 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6310 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
6311 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
6312 this_buddy_name = purple_contact_get_alias((PurpleContact*)n);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6313 } else {
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6314 this_buddy_name = NULL;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6315 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6316
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6317 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
6318
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6319 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
6320 ((log_size == this_log_size) &&
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6321 (cmp < 0 || (cmp == 0 && node < n)))) {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6322 if (cur != NULL) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6323 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6324 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6325 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6326 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6327 gtk_tree_store_insert_before(gtkblist->treemodel, iter,
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6328 &groupiter, &more_z);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6329 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6330 }
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6331 }
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6332 g_value_unset(&val);
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6333 } 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
6334
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6335 if (cur != NULL) {
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6336 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL);
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6337 *iter = *cur;
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6338 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6339 } else {
12413
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6340 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter);
ce06aa90beee [gaim-migrate @ 14720]
Richard Laager <rlaager@pidgin.im>
parents: 12368
diff changeset
6341 return;
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6342 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6343 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6344
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6345 #endif
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6346
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6347 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6348 plugin_act(GtkObject *obj, PurplePluginAction *pam)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6349 {
13197
734f8ef469b8 [gaim-migrate @ 15559]
Gary Kramlich <grim@reaperworld.com>
parents: 13196
diff changeset
6350 if (pam && pam->callback)
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10351
diff changeset
6351 pam->callback(pam);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5419
diff changeset
6352 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6353
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6354 static void
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6355 build_plugin_actions(GtkWidget *menu, PurplePlugin *plugin,
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6356 gpointer context)
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6357 {
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6358 GtkWidget *menuitem;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6359 PurplePluginAction *action = NULL;
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6360 GList *actions, *l;
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6361
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6362 actions = PURPLE_PLUGIN_ACTIONS(plugin, context);
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6363
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6364 for (l = actions; l != NULL; l = l->next)
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6365 {
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6366 if (l->data)
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6367 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6368 action = (PurplePluginAction *) l->data;
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6369 action->plugin = plugin;
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6370 action->context = context;
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6371
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6372 menuitem = gtk_menu_item_new_with_label(action->label);
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6373 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6374
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6375 g_signal_connect(G_OBJECT(menuitem), "activate",
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6376 G_CALLBACK(plugin_act), action);
13197
734f8ef469b8 [gaim-migrate @ 15559]
Gary Kramlich <grim@reaperworld.com>
parents: 13196
diff changeset
6377 g_object_set_data_full(G_OBJECT(menuitem), "plugin_action",
734f8ef469b8 [gaim-migrate @ 15559]
Gary Kramlich <grim@reaperworld.com>
parents: 13196
diff changeset
6378 action,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6379 (GDestroyNotify)purple_plugin_action_free);
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6380 gtk_widget_show(menuitem);
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6381 }
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6382 else
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
6383 pidgin_separator(menu);
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6384 }
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 9013
diff changeset
6385
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6386 g_list_free(actions);
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6387 }
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6388
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6389 static void
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6390 modify_account_cb(GtkWidget *widget, gpointer data)
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6391 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6392 pidgin_account_dialog_show(PIDGIN_MODIFY_ACCOUNT_DIALOG, data);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6393 }
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6394
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6395 static void
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6396 enable_account_cb(GtkCheckMenuItem *widget, gpointer data)
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6397 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6398 PurpleAccount *account = data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6399 const PurpleSavedStatus *saved_status;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6400
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6401 saved_status = purple_savedstatus_get_current();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6402 purple_savedstatus_activate_for_account(saved_status, account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6403
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6404 purple_account_set_enabled(account, PIDGIN_UI, TRUE);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6405 }
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6406
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6407 static void
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6408 disable_account_cb(GtkCheckMenuItem *widget, gpointer data)
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6409 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6410 PurpleAccount *account = data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6411
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6412 purple_account_set_enabled(account, PIDGIN_UI, FALSE);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6413 }
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6414
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6415 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6416 pidgin_blist_update_accounts_menu(void)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6417 {
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6418 GtkWidget *menuitem = NULL, *submenu = NULL;
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6419 GtkAccelGroup *accel_group = NULL;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6420 GList *l = NULL, *accounts = NULL;
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6421 gboolean disabled_accounts = FALSE;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6422
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6423 if (accountmenu == NULL)
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6424 return;
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6425
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6426 /* Clear the old Accounts menu */
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6427 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
6428 menuitem = l->data;
847b6a8f2d07 [gaim-migrate @ 14652]
Etan Reisner <deryni@pidgin.im>
parents: 12341
diff changeset
6429
847b6a8f2d07 [gaim-migrate @ 14652]
Etan Reisner <deryni@pidgin.im>
parents: 12341
diff changeset
6430 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
6431 gtk_widget_destroy(menuitem);
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6432 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6433
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6434 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) {
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6435 char *buf = NULL;
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6436 char *accel_path_buf = NULL;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6437 GtkWidget *image = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6438 PurpleConnection *gc = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6439 PurpleAccount *account = NULL;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6440 GdkPixbuf *pixbuf = NULL;
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6441 PurplePlugin *plugin = NULL;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6442
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6443 account = accounts->data;
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6444 accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu));
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6445
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6446 if(purple_account_get_enabled(account, PIDGIN_UI)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6447 buf = g_strconcat(purple_account_get_username(account), " (",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6448 purple_account_get_protocol_name(account), ")", NULL);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6449 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
6450 accel_path_buf = g_strconcat(N_("<PurpleMain>/Accounts/"), buf, NULL);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6451 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
6452 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6453 if (pixbuf != NULL)
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6454 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6455 if (!purple_account_is_connected(account))
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6456 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf,
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6457 0.0, FALSE);
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6458 image = gtk_image_new_from_pixbuf(pixbuf);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6459 g_object_unref(G_OBJECT(pixbuf));
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6460 gtk_widget_show(image);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6461 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
6462 }
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6463 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6464 gtk_widget_show(menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6465
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6466 submenu = gtk_menu_new();
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6467 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group);
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6468 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf);
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6469 g_free(accel_path_buf);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6470 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6471 gtk_widget_show(submenu);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6472
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6473
12334
f88c9f928f51 [gaim-migrate @ 14638]
Mark Doliner <markdoliner@pidgin.im>
parents: 12333
diff changeset
6474 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account"));
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6475 g_signal_connect(G_OBJECT(menuitem), "activate",
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6476 G_CALLBACK(modify_account_cb), account);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6477 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6478 gtk_widget_show(menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6479
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
6480 pidgin_separator(submenu);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6481
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6482 gc = purple_account_get_connection(account);
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6483 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
6484 if (plugin && PURPLE_PLUGIN_HAS_ACTIONS(plugin)) {
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6485 build_plugin_actions(submenu, plugin, gc);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6486 } else {
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6487 menuitem = gtk_menu_item_new_with_label(_("No actions available"));
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6488 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6489 gtk_widget_set_sensitive(menuitem, FALSE);
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6490 gtk_widget_show(menuitem);
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6491 }
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6492
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
6493 pidgin_separator(submenu);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6494
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6495 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable"));
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6496 g_signal_connect(G_OBJECT(menuitem), "activate",
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6497 G_CALLBACK(disable_account_cb), account);
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6498 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6499 gtk_widget_show(menuitem);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6500 } else {
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6501 disabled_accounts = TRUE;
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12279
diff changeset
6502 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6503 }
9019
b9a333b36763 [gaim-migrate @ 9795]
Mark Doliner <markdoliner@pidgin.im>
parents: 9015
diff changeset
6504
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6505 if(disabled_accounts) {
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15566
diff changeset
6506 pidgin_separator(accountmenu);
12338
3548ced0c9ff [gaim-migrate @ 14642]
Mark Doliner <markdoliner@pidgin.im>
parents: 12337
diff changeset
6507 menuitem = gtk_menu_item_new_with_label(_("Enable Account"));
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6508 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6509 gtk_widget_show(menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6510
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6511 submenu = gtk_menu_new();
15063
f049d0515fd8 [gaim-migrate @ 17781]
Richard Laager <rlaager@pidgin.im>
parents: 15058
diff changeset
6512 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
6513 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
6514 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6515 gtk_widget_show(submenu);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6516
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6517 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) {
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6518 char *buf = NULL;
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6519 GtkWidget *image = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6520 PurpleAccount *account = NULL;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6521 GdkPixbuf *pixbuf = NULL;
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6522
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6523 account = accounts->data;
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6524
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6525 if(!purple_account_get_enabled(account, PIDGIN_UI)) {
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6526
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6527 disabled_accounts = TRUE;
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6528
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6529 buf = g_strconcat(purple_account_get_username(account), " (",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6530 purple_account_get_protocol_name(account), ")", NULL);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6531 menuitem = gtk_image_menu_item_new_with_label(buf);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6532 g_free(buf);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6533 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6534 if (pixbuf != NULL)
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6535 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6536 if (!purple_account_is_connected(account))
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6537 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE);
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13049
diff changeset
6538 image = gtk_image_new_from_pixbuf(pixbuf);
12330
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6539 g_object_unref(G_OBJECT(pixbuf));
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6540 gtk_widget_show(image);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6541 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
6542 }
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6543 g_signal_connect(G_OBJECT(menuitem), "activate",
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6544 G_CALLBACK(enable_account_cb), account);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6545 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6546 gtk_widget_show(menuitem);
ad4b7fa046c5 [gaim-migrate @ 14634]
Nathan Walp <nwalp@pidgin.im>
parents: 12328
diff changeset
6547 }
9019
b9a333b36763 [gaim-migrate @ 9795]
Mark Doliner <markdoliner@pidgin.im>
parents: 9015
diff changeset
6548 }
7620
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6549 }
18cf42f8955c [gaim-migrate @ 8244]
Sean Egan <seanegan@pidgin.im>
parents: 5516
diff changeset
6550 }
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6551
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6552 static GList *plugin_submenus = NULL;
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6553
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6554 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6555 pidgin_blist_update_plugin_actions(void)
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6556 {
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6557 GtkWidget *menuitem, *submenu;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6558 PurplePlugin *plugin = NULL;
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6559 GList *l;
12464
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6560 GtkAccelGroup *accel_group;
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6561
11742
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6562 GtkWidget *pluginmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools"));
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6563
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6564 g_return_if_fail(pluginmenu != NULL);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6565
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6566 /* Remove old plugin action submenus from the Tools menu */
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6567 for (l = plugin_submenus; l; l = l->next)
15057
909e807e3070 [gaim-migrate @ 17774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15051
diff changeset
6568 gtk_widget_destroy(GTK_WIDGET(l->data));
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6569 g_list_free(plugin_submenus);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6570 plugin_submenus = NULL;
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6571
12464
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6572 accel_group = gtk_menu_get_accel_group(GTK_MENU(pluginmenu));
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6573
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6574 /* 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
6575 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
6576 char *path;
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6577
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6578 plugin = (PurplePlugin *) l->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6579
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6580 if (PURPLE_IS_PROTOCOL_PLUGIN(plugin))
11742
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6581 continue;
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6582
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
6583 if (!PURPLE_PLUGIN_HAS_ACTIONS(plugin))
11742
ddba58b25836 [gaim-migrate @ 14033]
Sean Egan <seanegan@pidgin.im>
parents: 11740
diff changeset
6584 continue;
9019
b9a333b36763 [gaim-migrate @ 9795]
Mark Doliner <markdoliner@pidgin.im>
parents: 9015
diff changeset
6585
13337
1a425a37dcf7 [gaim-migrate @ 15706]
Richard Laager <rlaager@pidgin.im>
parents: 13316
diff changeset
6586 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
6587 gtk_menu_shell_append(GTK_MENU_SHELL(pluginmenu), menuitem);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6588 gtk_widget_show(menuitem);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6589
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6590 plugin_submenus = g_list_append(plugin_submenus, menuitem);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6591
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6592 submenu = gtk_menu_new();
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6593 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6594 gtk_widget_show(submenu);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
6595
12464
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6596 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group);
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6597 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
6598 gtk_menu_set_accel_path(GTK_MENU(submenu), path);
bfe63ab6ebcf [gaim-migrate @ 14774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12461
diff changeset
6599 g_free(path);
12333
8e39e95c81b6 [gaim-migrate @ 14637]
Mark Doliner <markdoliner@pidgin.im>
parents: 12330
diff changeset
6600
16040
d213ae510895 sf patch #1689182, from Will Thompson
Mark Doliner <markdoliner@pidgin.im>
parents: 15982
diff changeset
6601 build_plugin_actions(submenu, plugin, NULL);
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6602 }
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8975
diff changeset
6603 }
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6604
12246
7af1ef3b1cc4 [gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents: 12240
diff changeset
6605 static void
7af1ef3b1cc4 [gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents: 12240
diff changeset
6606 sortmethod_act(GtkCheckMenuItem *checkmenuitem, char *id)
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6607 {
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6608 if (gtk_check_menu_item_get_active(checkmenuitem))
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6609 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6610 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 14199
diff changeset
6611 /* This is redundant. I think. */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6612 /* 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
6613 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
6614
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6615 pidgin_clear_cursor(gtkblist->window);
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6616 }
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6617 }
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6618
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6619 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6620 pidgin_blist_update_sort_methods(void)
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6621 {
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6622 GtkWidget *menuitem = NULL, *activeitem = NULL;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6623 PidginBlistSortMethod *method = NULL;
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6624 GList *l;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6625 GSList *sl = NULL;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6626 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
6627 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
6628
15286
ecc4149f47fb [gaim-migrate @ 18014]
Mark Doliner <markdoliner@pidgin.im>
parents: 15284
diff changeset
6629 if ((gtkblist == NULL) || (gtkblist->ift == NULL))
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6630 return;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6631
11798
481b46227443 [gaim-migrate @ 14089]
Etan Reisner <deryni@pidgin.im>
parents: 11797
diff changeset
6632 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
6633
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6634 if (sortmenu == NULL)
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6635 return;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6636
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6637 /* Clear the old menu */
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6638 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
6639 menuitem = l->data;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6640 gtk_widget_destroy(GTK_WIDGET(menuitem));
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6641 }
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6642
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15561
diff changeset
6643 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
6644 method = (PidginBlistSortMethod *) l->data;
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6645 menuitem = gtk_radio_menu_item_new_with_label(sl, _(method->name));
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6646 if (!strcmp(m, method->id))
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6647 activeitem = menuitem;
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6648 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
6649 gtk_menu_shell_append(GTK_MENU_SHELL(sortmenu), menuitem);
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6650 g_signal_connect(G_OBJECT(menuitem), "toggled",
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6651 G_CALLBACK(sortmethod_act), method->id);
11923
a492ccce1a12 [gaim-migrate @ 14214]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
6652 gtk_widget_show(menuitem);
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6653 }
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6654 if (activeitem)
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11768
diff changeset
6655 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
6656 }

mercurial