Mercurial > pidgin.yaz
annotate pidgin/gtkblist.c @ 27931:d8e6a2d592a4
propagate from branch 'im.pidgin.pidgin' (head 66190c21dfe7125476caca3c14725bac9db8b71b)
to branch 'im.pidgin.pidgin.yaz' (head 30f1655106c7764e3f9cfc8a139784d9b0bd4459)
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 03 Mar 2009 06:57:02 +0000 |
parents | 25319f536d93 4b8c4870b13a |
children | f44832c6a65b |
rev | line source |
---|---|
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2 * @file gtkblist.c GTK+ BuddyList API |
16193
247e421c4fa6
Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@wiktel.com>
parents:
16122
diff
changeset
|
3 * @ingroup pidgin |
20074
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
20059
diff
changeset
|
4 */ |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
20059
diff
changeset
|
5 |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
20059
diff
changeset
|
6 /* pidgin |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7 * |
15871
66dff3dfdea6
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@wiktel.com>
parents:
15823
diff
changeset
|
8 * Pidgin is the legal property of its developers, whose names are too numerous |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
9 * to list here. Please refer to the COPYRIGHT file distributed with this |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
10 * source distribution. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
11 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
12 * This program is free software; you can redistribute it and/or modify |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
13 * it under the terms of the GNU General Public License as published by |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
14 * the Free Software Foundation; either version 2 of the License, or |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
15 * (at your option) any later version. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
16 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
17 * This program is distributed in the hope that it will be useful, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
20 * GNU General Public License for more details. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
21 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
22 * You should have received a copy of the GNU General Public License |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
23 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19635
diff
changeset
|
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
25 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
26 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
27 #include "internal.h" |
15514 | 28 #include "pidgin.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
29 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
30 #include "account.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
31 #include "connection.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
32 #include "core.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
33 #include "debug.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
34 #include "notify.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
35 #include "prpl.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
36 #include "prefs.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
37 #include "plugin.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
38 #include "request.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
39 #include "signals.h" |
15822
84b0f9b23ede
According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@gmail.com>
parents:
15821
diff
changeset
|
40 #include "pidginstock.h" |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
41 #include "theme-loader.h" |
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
42 #include "theme-manager.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
43 #include "util.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
44 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
45 #include "gtkaccount.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
46 #include "gtkblist.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
47 #include "gtkcellrendererexpander.h" |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
18435
diff
changeset
|
48 #include "gtkcertmgr.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
49 #include "gtkconv.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
50 #include "gtkdebug.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
51 #include "gtkdialogs.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
52 #include "gtkft.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
53 #include "gtklog.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
54 #include "gtkmenutray.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
55 #include "gtkpounce.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
56 #include "gtkplugin.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
57 #include "gtkprefs.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
58 #include "gtkprivacy.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
59 #include "gtkroomlist.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
60 #include "gtkstatusbox.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
61 #include "gtkscrollbook.h" |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22299
diff
changeset
|
62 #include "gtksmiley.h" |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
63 #include "gtkblist-theme.h" |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
25267
diff
changeset
|
64 #include "gtkblist-theme-loader.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
65 #include "gtkutils.h" |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
66 #include "pidgin/minidialog.h" |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
67 #include "pidgin/pidgintooltip.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
68 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
69 #include <gdk/gdkkeysyms.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
70 #include <gtk/gtk.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
71 #include <gdk/gdk.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
72 |
25088
e0dc8933ce26
Use a stock size that we are sure exists (which ends up making the icon a pixel
Daniel Atallah <daniel.atallah@gmail.com>
parents:
25076
diff
changeset
|
73 #define HEADLINE_CLOSE_SIZE 11 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
74 |
27830
c18e82b59f02
removed annoying "Mute Sounds" short cut key
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
22770
diff
changeset
|
75 /* I noticed that some of short cuts are very annoying. |
c18e82b59f02
removed annoying "Mute Sounds" short cut key
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
22770
diff
changeset
|
76 If you really want to use them, change this to 1. --yaz |
c18e82b59f02
removed annoying "Mute Sounds" short cut key
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
22770
diff
changeset
|
77 */ |
c18e82b59f02
removed annoying "Mute Sounds" short cut key
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
22770
diff
changeset
|
78 #define ENABLE_SHORTCUT 0 |
c18e82b59f02
removed annoying "Mute Sounds" short cut key
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
22770
diff
changeset
|
79 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
80 typedef struct |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
81 { |
15823 | 82 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
83 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
84 GtkWidget *window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
85 GtkWidget *combo; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
86 GtkWidget *entry; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
87 GtkWidget *entry_for_alias; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
88 GtkWidget *account_box; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
89 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
90 } PidginAddBuddyData; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
91 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
92 typedef struct |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
93 { |
15823 | 94 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
95 gchar *default_chat_name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
96 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
97 GtkWidget *window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
98 GtkWidget *account_menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
99 GtkWidget *alias_entry; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
100 GtkWidget *group_combo; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
101 GtkWidget *entries_box; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
102 GtkSizeGroup *sg; |
20084
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
103 GtkWidget *autojoin; |
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
104 GtkWidget *persistent; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
105 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
106 GList *entries; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
107 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
108 } PidginAddChatData; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
109 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
110 typedef struct |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
111 { |
15823 | 112 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
113 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
114 GtkWidget *window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
115 GtkWidget *account_menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
116 GtkWidget *entries_box; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
117 GtkSizeGroup *sg; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
118 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
119 GList *entries; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
120 } PidginJoinChatData; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
121 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
122 typedef struct |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
123 { |
21497
e2e70f45307f
Remove account error dialogs from the scrollbook's notebook, not from the
Will Thompson <will.thompson@collabora.co.uk>
parents:
21458
diff
changeset
|
124 /** Used to hold error minidialogs. Gets packed |
e2e70f45307f
Remove account error dialogs from the scrollbook's notebook, not from the
Will Thompson <will.thompson@collabora.co.uk>
parents:
21458
diff
changeset
|
125 * inside PidginBuddyList.error_buttons |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
126 */ |
21497
e2e70f45307f
Remove account error dialogs from the scrollbook's notebook, not from the
Will Thompson <will.thompson@collabora.co.uk>
parents:
21458
diff
changeset
|
127 PidginScrollBook *error_scrollbook; |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
128 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
129 /** Pointer to the mini-dialog about having signed on elsewhere, if one |
21497
e2e70f45307f
Remove account error dialogs from the scrollbook's notebook, not from the
Will Thompson <will.thompson@collabora.co.uk>
parents:
21458
diff
changeset
|
130 * is showing; @c NULL otherwise. |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
131 */ |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
132 PidginMiniDialog *signed_on_elsewhere; |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
133 |
23478
4aeef8c3cce3
restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23476
diff
changeset
|
134 PidginBlistTheme *current_theme; |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
135 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
136 } PidginBuddyListPrivate; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
137 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
138 #define PIDGIN_BUDDY_LIST_GET_PRIVATE(list) \ |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
139 ((PidginBuddyListPrivate *)((list)->priv)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
140 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
141 static GtkWidget *accountmenu = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
142 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
143 static guint visibility_manager_count = 0; |
21041
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
144 static GdkVisibilityState gtk_blist_visibility = GDK_VISIBILITY_UNOBSCURED; |
22898
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
145 static gboolean gtk_blist_focused = FALSE; |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
146 static gboolean editing_blist = FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
147 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
148 static GList *pidgin_blist_sort_methods = NULL; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
149 static struct pidgin_blist_sort_method *current_sort_method = NULL; |
15823 | 150 static void sort_method_none(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
151 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
152 /* The functions we use for sorting aren't available in gtk 2.0.x, and |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
153 * segfault in 2.2.0. 2.2.1 is known to work, so I'll require that */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
154 #if GTK_CHECK_VERSION(2,2,1) |
15823 | 155 static void sort_method_alphabetical(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter); |
156 static void sort_method_status(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter); | |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
157 static void sort_method_log_activity(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
158 #endif |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
159 static PidginBuddyList *gtkblist = NULL; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
160 |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
161 static GList *groups_tree(void); |
15823 | 162 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list); |
19538
6575ec8e1a97
Do not try to update a buddy in the buddylist when there's no buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19509
diff
changeset
|
163 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean status_change); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
164 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data); |
15823 | 165 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node); |
166 static void pidgin_blist_update_group(PurpleBuddyList *list, PurpleBlistNode *node); | |
167 static void pidgin_blist_update_contact(PurpleBuddyList *list, PurpleBlistNode *node); | |
168 static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
169 static const char *item_factory_translate_func (const char *path, gpointer func_data); |
15823 | 170 static gboolean get_iter_from_node(PurpleBlistNode *node, GtkTreeIter *iter); |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
171 static gboolean buddy_is_displayable(PurpleBuddy *buddy); |
15823 | 172 static void redo_buddy_list(PurpleBuddyList *list, gboolean remove, gboolean rerender); |
173 static void pidgin_blist_collapse_contact_cb(GtkWidget *w, PurpleBlistNode *node); | |
174 static char *pidgin_get_group_title(PurpleBlistNode *gnode, gboolean expanded); | |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
175 static void pidgin_blist_expand_contact_cb(GtkWidget *w, PurpleBlistNode *node); |
22299
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
176 static void set_urgent(void); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
177 |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
178 typedef enum { |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
179 PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE = 1 << 0, /* Whether there's pending message in a conversation */ |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
180 PIDGIN_BLIST_CHAT_HAS_PENDING_MESSAGE_WITH_NICK = 1 << 1, /* Whether there's a pending message in a chat that mentions our nick */ |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
181 } PidginBlistNodeFlags; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
182 |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
183 typedef struct _pidgin_blist_node { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
184 GtkTreeRowReference *row; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
185 gboolean contact_expanded; |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
186 gboolean recent_signonoff; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
187 gint recent_signonoff_timer; |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
188 struct { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
189 PurpleConversation *conv; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
190 time_t last_message; /* timestamp for last displayed message */ |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
191 PidginBlistNodeFlags flags; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
192 } conv; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
193 } PidginBlistNode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
194 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
195 /*************************************************** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
196 * Callbacks * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
197 ***************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
198 static gboolean gtk_blist_visibility_cb(GtkWidget *w, GdkEventVisibility *event, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
199 { |
21041
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
200 GdkVisibilityState old_state = gtk_blist_visibility; |
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
201 gtk_blist_visibility = event->state; |
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
202 |
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
203 if (gtk_blist_visibility == GDK_VISIBILITY_FULLY_OBSCURED && |
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
204 old_state != GDK_VISIBILITY_FULLY_OBSCURED) { |
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
205 |
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
206 /* no longer fully obscured */ |
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
207 pidgin_blist_refresh_timer(purple_get_blist()); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
208 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
209 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
210 /* continue to handle event normally */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
211 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
212 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
213 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
214 static gboolean gtk_blist_window_state_cb(GtkWidget *w, GdkEventWindowState *event, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
215 { |
18285
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
216 #if GTK_CHECK_VERSION(2,2,0) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
217 if(event->changed_mask & GDK_WINDOW_STATE_WITHDRAWN) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
218 if(event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN) |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
219 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
220 else { |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
221 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", TRUE); |
15823 | 222 pidgin_blist_refresh_timer(purple_get_blist()); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
223 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
224 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
225 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
226 if(event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
227 if(event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
228 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
229 else |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
230 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
231 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
232 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
233 /* Refresh gtkblist if un-iconifying */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
234 if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED){ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
235 if (!(event->new_window_state & GDK_WINDOW_STATE_ICONIFIED)) |
15823 | 236 pidgin_blist_refresh_timer(purple_get_blist()); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
237 } |
18285
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
238 #else |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
239 /* At least gtk+ 2.0.6 does not properly set the change_mask when unsetting a |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
240 * GdkWindowState flag. To work around, the window state will be explicitly |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
241 * queried on these older versions of gtk+. See pidgin ticket #739. |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
242 */ |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
243 GdkWindowState new_window_state = gdk_window_get_state(G_OBJECT(gtkblist->window->window)); |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
244 |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
245 if(new_window_state & GDK_WINDOW_STATE_WITHDRAWN) { |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
246 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", FALSE); |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
247 } else { |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
248 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", TRUE); |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
249 pidgin_blist_refresh_timer(purple_get_blist()); |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
250 } |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
251 |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
252 if(new_window_state & GDK_WINDOW_STATE_MAXIMIZED) |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
253 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", TRUE); |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
254 else |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
255 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", FALSE); |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
256 |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
257 if (!(new_window_state & GDK_WINDOW_STATE_ICONIFIED)) |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
258 pidgin_blist_refresh_timer(purple_get_blist()); |
51ebbe199514
Work around bug in older gtk+ versions which does not set the changed_mask
Casey Harkins <charkins@pidgin.im>
parents:
18241
diff
changeset
|
259 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
260 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
261 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
262 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
263 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
264 static gboolean gtk_blist_delete_cb(GtkWidget *w, GdkEventAny *event, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
265 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
266 if(visibility_manager_count) |
15823 | 267 purple_blist_set_visible(FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
268 else |
15823 | 269 purple_core_quit(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
270 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
271 /* we handle everything, event should not propogate further */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
272 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
273 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
274 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
275 static gboolean gtk_blist_configure_cb(GtkWidget *w, GdkEventConfigure *event, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
276 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
277 /* unfortunately GdkEventConfigure ignores the window gravity, but * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
278 * the only way we have of setting the position doesn't. we have to * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
279 * call get_position because it does pay attention to the gravity. * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
280 * this is inefficient and I agree it sucks, but it's more likely * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
281 * to work correctly. - Robot101 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
282 gint x, y; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
283 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
284 /* check for visibility because when we aren't visible, this will * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
285 * give us bogus (0,0) coordinates. - xOr */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
286 if (GTK_WIDGET_VISIBLE(w)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
287 gtk_window_get_position(GTK_WINDOW(w), &x, &y); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
288 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
289 return FALSE; /* carry on normally */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
290 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
291 #ifdef _WIN32 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
292 /* Workaround for GTK+ bug # 169811 - "configure_event" is fired |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
293 * when the window is being maximized */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
294 if (gdk_window_get_state(w->window) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
295 & GDK_WINDOW_STATE_MAXIMIZED) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
296 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
297 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
298 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
299 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
300 /* don't save if nothing changed */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
301 if (x == purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/x") && |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
302 y == purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/y") && |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
303 event->width == purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width") && |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
304 event->height == purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/height")) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
305 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
306 return FALSE; /* carry on normally */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
307 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
308 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
309 /* don't save off-screen positioning */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
310 if (x + event->width < 0 || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
311 y + event->height < 0 || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
312 x > gdk_screen_width() || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
313 y > gdk_screen_height()) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
314 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
315 return FALSE; /* carry on normally */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
316 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
317 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
318 /* ignore changes when maximized */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
319 if(purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized")) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
320 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
321 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
322 /* store the position */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
323 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/blist/x", x); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
324 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/blist/y", y); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
325 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/blist/width", event->width); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
326 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/blist/height", event->height); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
327 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
328 /* continue to handle event normally */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
329 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
330 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
331 |
15823 | 332 static void gtk_blist_menu_info_cb(GtkWidget *w, PurpleBuddy *b) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
333 { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
334 PurpleAccount *account = purple_buddy_get_account(b); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
335 |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
336 pidgin_retrieve_user_info(purple_account_get_connection(account), |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
337 purple_buddy_get_name(b)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
338 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
339 |
15823 | 340 static void gtk_blist_menu_im_cb(GtkWidget *w, PurpleBuddy *b) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
341 { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
342 pidgin_dialogs_im_with_user(purple_buddy_get_account(b), |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
343 purple_buddy_get_name(b)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
344 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
345 |
15823 | 346 static void gtk_blist_menu_send_file_cb(GtkWidget *w, PurpleBuddy *b) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
347 { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
348 PurpleAccount *account = purple_buddy_get_account(b); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
349 |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
350 serv_send_file(purple_account_get_connection(account), |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
351 purple_buddy_get_name(b), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
352 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
353 |
20045
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
354 static void gtk_blist_menu_move_to_cb(GtkWidget *w, PurpleBlistNode *node) |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
355 { |
20099
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
356 PurpleGroup *group = g_object_get_data(G_OBJECT(w), "groupnode"); |
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
357 purple_blist_add_contact((PurpleContact *)node, group, NULL); |
20045
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
358 |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
359 } |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
360 |
15823 | 361 static void gtk_blist_menu_autojoin_cb(GtkWidget *w, PurpleChat *chat) |
362 { | |
363 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-autojoin", | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
364 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
365 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
366 |
19900
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
367 static void gtk_blist_menu_persistent_cb(GtkWidget *w, PurpleChat *chat) |
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
368 { |
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
369 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-persistent", |
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
370 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w))); |
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
371 } |
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
372 |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
373 static PurpleConversation * |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
374 find_conversation_with_buddy(PurpleBuddy *buddy) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
375 { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
376 PidginBlistNode *ui = purple_blist_node_get_ui_data(PURPLE_BLIST_NODE(buddy)); |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
377 if (ui) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
378 return ui->conv.conv; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
379 return purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
380 purple_buddy_get_name(buddy), |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
381 purple_buddy_get_account(buddy)); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
382 } |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
383 |
15823 | 384 static void gtk_blist_join_chat(PurpleChat *chat) |
385 { | |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
386 PurpleAccount *account; |
15823 | 387 PurpleConversation *conv; |
18217
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
388 PurplePluginProtocolInfo *prpl_info; |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
389 GHashTable *components; |
18217
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
390 const char *name; |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
391 char *chat_name; |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
392 |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
393 account = purple_chat_get_account(chat); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
394 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_find_prpl(purple_account_get_protocol_id(account))); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
395 |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
396 components = purple_chat_get_components(chat); |
18217
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
397 |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
398 if (prpl_info && prpl_info->get_chat_name) |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
399 chat_name = prpl_info->get_chat_name(components); |
18217
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
400 else |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
401 chat_name = NULL; |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
402 |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
403 if (chat_name) |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
404 name = chat_name; |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
405 else |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
406 name = purple_chat_get_name(chat); |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
407 |
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
408 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, name, |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
409 account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
410 |
19415
2128daf52d31
Reattach the gtk-ui to a conversation when the user wants to
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19363
diff
changeset
|
411 if (conv != NULL) { |
2128daf52d31
Reattach the gtk-ui to a conversation when the user wants to
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19363
diff
changeset
|
412 pidgin_conv_attach_to_conversation(conv); |
15823 | 413 purple_conversation_present(conv); |
19415
2128daf52d31
Reattach the gtk-ui to a conversation when the user wants to
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19363
diff
changeset
|
414 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
415 |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
416 serv_join_chat(purple_account_get_connection(account), components); |
18217
e3a4ed0febd2
fix double clicking joined chat by asking the prpl what the real name of
Ka-Hing Cheung <khc@hxbc.us>
parents:
18215
diff
changeset
|
417 g_free(chat_name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
418 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
419 |
15823 | 420 static void gtk_blist_menu_join_cb(GtkWidget *w, PurpleChat *chat) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
421 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
422 gtk_blist_join_chat(chat); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
423 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
424 |
18208
669dc8404b56
Fix a compile warning with gtk < 2.6
Stu Tomlinson <stu@nosnilmot.com>
parents:
18206
diff
changeset
|
425 #if GTK_CHECK_VERSION(2,6,0) |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
426 static void gtk_blist_renderer_editing_cancelled_cb(GtkCellRenderer *renderer, PurpleBuddyList *list) |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
427 { |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
428 editing_blist = FALSE; |
21931
fa57a93219bf
Reset the 'editable' flag of the renderer after cancelling the edit. Fixes #4471.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21925
diff
changeset
|
429 g_object_set(G_OBJECT(renderer), "editable", FALSE, NULL); |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
430 pidgin_blist_refresh(list); |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
431 } |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
432 |
16275
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
433 static void gtk_blist_renderer_editing_started_cb(GtkCellRenderer *renderer, |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
434 GtkCellEditable *editable, |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
435 gchar *path_str, |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
436 gpointer user_data) |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
437 { |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
438 GtkTreeIter iter; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
439 GtkTreePath *path = NULL; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
440 GValue val; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
441 PurpleBlistNode *node; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
442 const char *text = NULL; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
443 |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
444 path = gtk_tree_path_new_from_string (path_str); |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
445 gtk_tree_model_get_iter (GTK_TREE_MODEL(gtkblist->treemodel), &iter, path); |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
446 gtk_tree_path_free (path); |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
447 val.g_type = 0; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
448 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val); |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
449 node = g_value_get_pointer(&val); |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
450 |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
451 switch (purple_blist_node_get_type(node)) { |
16275
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
452 case PURPLE_BLIST_CONTACT_NODE: |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
453 text = purple_contact_get_alias(PURPLE_CONTACT(node)); |
16275
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
454 break; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
455 case PURPLE_BLIST_BUDDY_NODE: |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
456 text = purple_buddy_get_alias(PURPLE_BUDDY(node)); |
16275
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
457 break; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
458 case PURPLE_BLIST_GROUP_NODE: |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
459 text = purple_group_get_name(PURPLE_GROUP(node)); |
16275
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
460 break; |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
461 default: |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
462 g_return_if_reached(); |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
463 } |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
464 |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
465 if (GTK_IS_ENTRY (editable)) { |
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
466 GtkEntry *entry = GTK_ENTRY (editable); |
17046
0be41b604566
Patch #702, Info not reset on URL redirect
Sean Egan <seanegan@gmail.com>
parents:
17044
diff
changeset
|
467 gtk_entry_set_text(entry, text); |
0be41b604566
Patch #702, Info not reset on URL redirect
Sean Egan <seanegan@gmail.com>
parents:
17044
diff
changeset
|
468 } |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
469 editing_blist = TRUE; |
16275
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
470 } |
18208
669dc8404b56
Fix a compile warning with gtk < 2.6
Stu Tomlinson <stu@nosnilmot.com>
parents:
18206
diff
changeset
|
471 #endif |
16275
9a4854d71234
Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents:
16222
diff
changeset
|
472 |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
473 static void |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
474 gtk_blist_do_personize(GList *merges) |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
475 { |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
476 PurpleBlistNode *contact = NULL; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
477 int max = 0; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
478 GList *tmp; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
479 |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
480 /* First, we find the contact to merge the rest of the buddies into. |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
481 * This will be the contact with the most buddies in it; ties are broken |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
482 * by which contact is higher in the list |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
483 */ |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
484 for (tmp = merges; tmp; tmp = tmp->next) { |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
485 PurpleBlistNode *node = tmp->data; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
486 PurpleBlistNode *b; |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
487 PurpleBlistNodeType type; |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
488 int i = 0; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
489 |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
490 type = purple_blist_node_get_type(node); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
491 |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
492 if(type == PURPLE_BLIST_BUDDY_NODE) |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
493 node = purple_blist_node_get_parent(node); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
494 |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
495 if(type == PURPLE_BLIST_CONTACT_NODE) |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
496 continue; |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
497 |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
498 for (b = purple_blist_node_get_first_child(node); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
499 b; |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
500 b = purple_blist_node_get_sibling_next(b)) |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
501 { |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
502 i++; |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
503 } |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
504 |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
505 if (i > max) { |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
506 contact = node; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
507 max = i; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
508 } |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
509 } |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
510 |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
511 if (contact == NULL) |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
512 return; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
513 |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
514 /* Merge all those buddies into this contact */ |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
515 for (tmp = merges; tmp; tmp = tmp->next) { |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
516 PurpleBlistNode *node = tmp->data; |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
517 if (purple_blist_node_get_type(node) == PURPLE_BLIST_BUDDY_NODE) |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
518 node = purple_blist_node_get_parent(node); |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
519 |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
520 if (node == contact) |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
521 continue; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
522 |
20099
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
523 purple_blist_merge_contact((PurpleContact *)node, contact); |
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
524 } |
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
525 |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
526 /* And show the expanded contact, so the people know what's going on */ |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
527 pidgin_blist_expand_contact_cb(NULL, contact); |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
528 g_list_free(merges); |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
529 } |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
530 |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
531 static void |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
532 gtk_blist_auto_personize(PurpleBlistNode *group, const char *alias) |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
533 { |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
534 PurpleBlistNode *contact; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
535 PurpleBlistNode *buddy; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
536 GList *merges = NULL; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
537 int i = 0; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
538 char *a = g_utf8_casefold(alias, -1); |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
539 |
25311
43aeab2bb50e
A totally untested struct hiding fix.
Richard Laager <rlaager@wiktel.com>
parents:
25296
diff
changeset
|
540 for (contact = purple_blist_node_get_first_child(group); |
43aeab2bb50e
A totally untested struct hiding fix.
Richard Laager <rlaager@wiktel.com>
parents:
25296
diff
changeset
|
541 contact != NULL; |
43aeab2bb50e
A totally untested struct hiding fix.
Richard Laager <rlaager@wiktel.com>
parents:
25296
diff
changeset
|
542 contact = purple_blist_node_get_sibling_next(contact)) { |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
543 char *node_alias; |
25311
43aeab2bb50e
A totally untested struct hiding fix.
Richard Laager <rlaager@wiktel.com>
parents:
25296
diff
changeset
|
544 if (purple_blist_node_get_type(contact) != PURPLE_BLIST_CONTACT_NODE) |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
545 continue; |
20099
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
546 |
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
547 node_alias = g_utf8_casefold(purple_contact_get_alias((PurpleContact *)contact), -1); |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
548 if (node_alias && !g_utf8_collate(node_alias, a)) { |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
549 merges = g_list_append(merges, contact); |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
550 i++; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
551 g_free(node_alias); |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
552 continue; |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
553 } |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
554 g_free(node_alias); |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
555 |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
556 for (buddy = purple_blist_node_get_first_child(contact); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
557 buddy; |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
558 buddy = purple_blist_node_get_sibling_next(buddy)) |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
559 { |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
560 if (purple_blist_node_get_type(buddy) != PURPLE_BLIST_BUDDY_NODE) |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
561 continue; |
20099
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
562 |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
563 node_alias = g_utf8_casefold(purple_buddy_get_alias(PURPLE_BUDDY(buddy)), -1); |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
564 if (node_alias && !g_utf8_collate(node_alias, a)) { |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
565 merges = g_list_append(merges, buddy); |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
566 i++; |
21932
f82c94a72f5f
Do not prompt for an already merged contact. Fixes #4285.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21931
diff
changeset
|
567 g_free(node_alias); |
f82c94a72f5f
Do not prompt for an already merged contact. Fixes #4285.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21931
diff
changeset
|
568 break; |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
569 } |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
570 g_free(node_alias); |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
571 } |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
572 } |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
573 g_free(a); |
21932
f82c94a72f5f
Do not prompt for an already merged contact. Fixes #4285.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21931
diff
changeset
|
574 |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
575 if (i > 1) |
20082
90b5255f0a30
In the auto-personize code:
Richard Laager <rlaager@wiktel.com>
parents:
20059
diff
changeset
|
576 { |
20158 | 577 char *msg = g_strdup_printf(ngettext("You have %d contact named %s. Would you like to merge them?", "You currently have %d contacts named %s. Would you like to merge them?", i), i, alias); |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
578 purple_request_action(NULL, NULL, msg, _("Merging these contacts will cause them to share a single entry on the buddy list and use a single conversation window. " |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
579 "You can separate them again by choosing 'Expand' from the contact's context menu"), 0, NULL, NULL, NULL, |
22479
f54a1f4f2963
I think "Yes" and "No" are better answers to "Would you like to merge these
Stu Tomlinson <stu@nosnilmot.com>
parents:
22473
diff
changeset
|
580 merges, 2, _("_Yes"), PURPLE_CALLBACK(gtk_blist_do_personize), _("_No"), PURPLE_CALLBACK(g_list_free)); |
20082
90b5255f0a30
In the auto-personize code:
Richard Laager <rlaager@wiktel.com>
parents:
20059
diff
changeset
|
581 g_free(msg); |
20099
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
582 } else |
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
583 g_list_free(merges); |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
584 } |
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
585 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
586 static void gtk_blist_renderer_edited_cb(GtkCellRendererText *text_rend, char *arg1, |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
587 char *arg2, PurpleBuddyList *list) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
588 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
589 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
590 GtkTreePath *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
591 GValue val; |
15823 | 592 PurpleBlistNode *node; |
593 PurpleGroup *dest; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
594 |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
595 editing_blist = FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
596 path = gtk_tree_path_new_from_string (arg1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
597 gtk_tree_model_get_iter (GTK_TREE_MODEL(gtkblist->treemodel), &iter, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
598 gtk_tree_path_free (path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
599 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
600 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
601 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
602 gtk_tree_view_set_enable_search (GTK_TREE_VIEW(gtkblist->treeview), TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
603 g_object_set(G_OBJECT(gtkblist->text_rend), "editable", FALSE, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
604 |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
605 switch (purple_blist_node_get_type(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
606 { |
15823 | 607 case PURPLE_BLIST_CONTACT_NODE: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
608 { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
609 PurpleContact *contact = PURPLE_CONTACT(node); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
610 struct _pidgin_blist_node *gtknode = |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
611 (struct _pidgin_blist_node *)purple_blist_node_get_ui_data(node); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
612 |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
613 if (purple_contact_get_alias(contact) || gtknode->contact_expanded) { |
15823 | 614 purple_blist_alias_contact(contact, arg2); |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
615 gtk_blist_auto_personize(purple_blist_node_get_parent(node), arg2); |
20043
4d278e98b5ac
Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents:
20042
diff
changeset
|
616 } else { |
15823 | 617 PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact); |
618 purple_blist_alias_buddy(buddy, arg2); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
619 serv_alias_buddy(buddy); |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
620 gtk_blist_auto_personize(purple_blist_node_get_parent(node), arg2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
621 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
622 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
623 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
624 |
15823 | 625 case PURPLE_BLIST_BUDDY_NODE: |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
626 { |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
627 PurpleGroup *group = purple_buddy_get_group(PURPLE_BUDDY(node)); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
628 |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
629 purple_blist_alias_buddy(PURPLE_BUDDY(node), arg2); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
630 serv_alias_buddy(PURPLE_BUDDY(node)); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
631 gtk_blist_auto_personize(PURPLE_BLIST_NODE(group), arg2); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
632 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
633 break; |
15823 | 634 case PURPLE_BLIST_GROUP_NODE: |
635 dest = purple_find_group(arg2); | |
25381
43b721aa4b76
explicit merge of '32d4ce0b6cfc9ccb9a6e7ed661423b9260a0bead'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
636 if (dest != NULL && purple_utf8_strcasecmp(arg2, purple_group_get_name(PURPLE_GROUP(node)))) { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
637 pidgin_dialogs_merge_groups(PURPLE_GROUP(node), arg2); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
638 } else { |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
639 purple_blist_rename_group(PURPLE_GROUP(node), arg2); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
640 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
641 break; |
15823 | 642 case PURPLE_BLIST_CHAT_NODE: |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
643 purple_blist_alias_chat(PURPLE_CHAT(node), arg2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
644 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
645 default: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
646 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
647 } |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
648 pidgin_blist_refresh(list); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
649 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
650 |
22760
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
651 static void |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
652 chat_components_edit_ok(PurpleChat *chat, PurpleRequestFields *allfields) |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
653 { |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
654 GList *groups, *fields; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
655 |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
656 for (groups = purple_request_fields_get_groups(allfields); groups; groups = groups->next) { |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
657 fields = purple_request_field_group_get_fields(groups->data); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
658 for (; fields; fields = fields->next) { |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
659 PurpleRequestField *field = fields->data; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
660 const char *id; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
661 char *val; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
662 |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
663 id = purple_request_field_get_id(field); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
664 if (purple_request_field_get_type(field) == PURPLE_REQUEST_FIELD_INTEGER) |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
665 val = g_strdup_printf("%d", purple_request_field_int_get_value(field)); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
666 else |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
667 val = g_strdup(purple_request_field_string_get_value(field)); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
668 |
22762
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
669 if (!val) { |
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
670 g_hash_table_remove(purple_chat_get_components(chat), id); |
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
671 } else { |
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
672 g_hash_table_replace(purple_chat_get_components(chat), g_strdup(id), val); /* val should not be free'd */ |
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
673 } |
22760
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
674 } |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
675 } |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
676 } |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
677 |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
678 static void chat_components_edit(GtkWidget *w, PurpleBlistNode *node) |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
679 { |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
680 PurpleRequestFields *fields = purple_request_fields_new(); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
681 PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
682 PurpleRequestField *field; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
683 GList *parts, *iter; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
684 struct proto_chat_entry *pce; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
685 PurpleConnection *gc; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
686 PurpleChat *chat = (PurpleChat*)node; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
687 |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
688 purple_request_fields_add_group(fields, group); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
689 |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
690 gc = purple_account_get_connection(purple_chat_get_account(chat)); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
691 parts = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc))->chat_info(gc); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
692 |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
693 for (iter = parts; iter; iter = iter->next) { |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
694 pce = iter->data; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
695 if (pce->is_int) { |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
696 int val; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
697 const char *str = g_hash_table_lookup(purple_chat_get_components(chat), pce->identifier); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
698 if (!str || sscanf(str, "%d", &val) != 1) |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
699 val = pce->min; |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
700 field = purple_request_field_int_new(pce->identifier, pce->label, val); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
701 } else { |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
702 field = purple_request_field_string_new(pce->identifier, pce->label, |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
703 g_hash_table_lookup(purple_chat_get_components(chat), pce->identifier), FALSE); |
22762
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
704 if (pce->secret) |
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
705 purple_request_field_string_set_masked(field, TRUE); |
22760
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
706 } |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
707 |
22762
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
708 if (pce->required) |
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
709 purple_request_field_set_required(field, TRUE); |
dd8cdf1d8b19
Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22760
diff
changeset
|
710 |
22760
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
711 purple_request_field_group_add_field(group, field); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
712 g_free(pce); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
713 } |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
714 |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
715 g_list_free(parts); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
716 |
22789
b4a0f4b32ba5
Tweak some strings in the Edit Chat dialog.
Will Thompson <will.thompson@collabora.co.uk>
parents:
22770
diff
changeset
|
717 purple_request_fields(NULL, _("Edit Chat"), NULL, _("Please update the necessary fields."), |
b4a0f4b32ba5
Tweak some strings in the Edit Chat dialog.
Will Thompson <will.thompson@collabora.co.uk>
parents:
22770
diff
changeset
|
718 fields, _("Save"), G_CALLBACK(chat_components_edit_ok), _("Cancel"), NULL, |
22760
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
719 NULL, NULL, NULL, |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
720 chat); |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
721 } |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
722 |
15823 | 723 static void gtk_blist_menu_alias_cb(GtkWidget *w, PurpleBlistNode *node) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
724 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
725 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
726 GtkTreePath *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
727 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
728 if (!(get_iter_from_node(node, &iter))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
729 /* This is either a bug, or the buddy is in a collapsed contact */ |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
730 node = purple_blist_node_get_parent(node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
731 if (!get_iter_from_node(node, &iter)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
732 /* Now it's definitely a bug */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
733 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
734 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
735 |
21175
4ce3e1f998f6
Don't allow tooltips to interfere with editing blist entries. Fixes #3830.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21041
diff
changeset
|
736 pidgin_blist_tooltip_destroy(); |
4ce3e1f998f6
Don't allow tooltips to interfere with editing blist entries. Fixes #3830.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21041
diff
changeset
|
737 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
738 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
739 g_object_set(G_OBJECT(gtkblist->text_rend), "editable", TRUE, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
740 gtk_tree_view_set_enable_search (GTK_TREE_VIEW(gtkblist->treeview), FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
741 gtk_widget_grab_focus(gtkblist->treeview); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
742 #if GTK_CHECK_VERSION(2,2,0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
743 gtk_tree_view_set_cursor_on_cell(GTK_TREE_VIEW(gtkblist->treeview), path, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
744 gtkblist->text_column, gtkblist->text_rend, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
745 #else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
746 gtk_tree_view_set_cursor(GTK_TREE_VIEW(gtkblist->treeview), path, gtkblist->text_column, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
747 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
748 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
749 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
750 |
15823 | 751 static void gtk_blist_menu_bp_cb(GtkWidget *w, PurpleBuddy *b) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
752 { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
753 pidgin_pounce_editor_show(purple_buddy_get_account(b), |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
754 purple_buddy_get_name(b), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
755 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
756 |
15823 | 757 static void gtk_blist_menu_showlog_cb(GtkWidget *w, PurpleBlistNode *node) |
758 { | |
759 PurpleLogType type; | |
760 PurpleAccount *account; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
761 char *name = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
762 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
763 pidgin_set_cursor(gtkblist->window, GDK_WATCH); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
764 |
15823 | 765 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
766 PurpleBuddy *b = (PurpleBuddy*) node; | |
767 type = PURPLE_LOG_IM; | |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
768 name = g_strdup(purple_buddy_get_name(b)); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
769 account = purple_buddy_get_account(b); |
15823 | 770 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
771 PurpleChat *c = PURPLE_CHAT(node); |
15823 | 772 PurplePluginProtocolInfo *prpl_info = NULL; |
773 type = PURPLE_LOG_CHAT; | |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
774 account = purple_chat_get_account(c); |
15823 | 775 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_find_prpl(purple_account_get_protocol_id(account))); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
776 if (prpl_info && prpl_info->get_chat_name) { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
777 name = prpl_info->get_chat_name(purple_chat_get_components(c)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
778 } |
15823 | 779 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
780 pidgin_log_show_contact(PURPLE_CONTACT(node)); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
781 pidgin_clear_cursor(gtkblist->window); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
782 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
783 } else { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
784 pidgin_clear_cursor(gtkblist->window); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
785 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
786 /* This callback should not have been registered for a node |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
787 * that doesn't match the type of one of the blocks above. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
788 g_return_if_reached(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
789 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
790 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
791 if (name && account) { |
21340
6c4de0d24eff
Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents:
21227
diff
changeset
|
792 pidgin_log_show(type, name, account); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
793 pidgin_clear_cursor(gtkblist->window); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
794 } |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
795 |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
796 g_free(name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
797 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
798 |
20163
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
799 static void gtk_blist_menu_showoffline_cb(GtkWidget *w, PurpleBlistNode *node) |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
800 { |
20164
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
801 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
802 { |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
803 purple_blist_node_set_bool(node, "show_offline", |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
804 !purple_blist_node_get_bool(node, "show_offline")); |
22695
387071b0d4d4
Fix setting "show offline" for buddy list nodes so it takes immediate
Stu Tomlinson <stu@nosnilmot.com>
parents:
22662
diff
changeset
|
805 pidgin_blist_update(purple_get_blist(), node); |
20164
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
806 } |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
807 else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
808 { |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
809 PurpleBlistNode *bnode; |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
810 gboolean setting = !purple_blist_node_get_bool(node, "show_offline"); |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
811 |
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
812 purple_blist_node_set_bool(node, "show_offline", setting); |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
813 for (bnode = purple_blist_node_get_first_child(node); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
814 bnode != NULL; |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
815 bnode = purple_blist_node_get_sibling_next(bnode)) |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
816 { |
20164
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
817 purple_blist_node_set_bool(bnode, "show_offline", setting); |
22695
387071b0d4d4
Fix setting "show offline" for buddy list nodes so it takes immediate
Stu Tomlinson <stu@nosnilmot.com>
parents:
22662
diff
changeset
|
818 pidgin_blist_update(purple_get_blist(), bnode); |
20164
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
819 } |
22436
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
820 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
821 PurpleBlistNode *cnode, *bnode; |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
822 gboolean setting = !purple_blist_node_get_bool(node, "show_offline"); |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
823 |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
824 purple_blist_node_set_bool(node, "show_offline", setting); |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
825 for (cnode = purple_blist_node_get_first_child(node); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
826 cnode != NULL; |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
827 cnode = purple_blist_node_get_sibling_next(cnode)) |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
828 { |
22436
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
829 purple_blist_node_set_bool(cnode, "show_offline", setting); |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
830 for (bnode = purple_blist_node_get_first_child(cnode); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
831 bnode != NULL; |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
832 bnode = purple_blist_node_get_sibling_next(bnode)) |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
833 { |
22436
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
834 purple_blist_node_set_bool(bnode, "show_offline", setting); |
22695
387071b0d4d4
Fix setting "show offline" for buddy list nodes so it takes immediate
Stu Tomlinson <stu@nosnilmot.com>
parents:
22662
diff
changeset
|
835 pidgin_blist_update(purple_get_blist(), bnode); |
22436
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
836 } |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
837 } |
20164
7d9391b94b1c
Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents:
20163
diff
changeset
|
838 } |
20163
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
839 } |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
840 |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21960
diff
changeset
|
841 static void gtk_blist_show_systemlog_cb(void) |
21340
6c4de0d24eff
Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents:
21227
diff
changeset
|
842 { |
6c4de0d24eff
Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents:
21227
diff
changeset
|
843 pidgin_syslog_show(); |
6c4de0d24eff
Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents:
21227
diff
changeset
|
844 } |
6c4de0d24eff
Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents:
21227
diff
changeset
|
845 |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21960
diff
changeset
|
846 static void gtk_blist_show_onlinehelp_cb(void) |
17432
0bbc08d41234
disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents:
17431
diff
changeset
|
847 { |
17880
9e0aec946cd0
use pidgin.im/documentation as the help url (which redirects already)
Stu Tomlinson <stu@nosnilmot.com>
parents:
17879
diff
changeset
|
848 purple_notify_uri(NULL, PURPLE_WEBSITE "documentation"); |
17432
0bbc08d41234
disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents:
17431
diff
changeset
|
849 } |
0bbc08d41234
disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents:
17431
diff
changeset
|
850 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
851 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
852 do_join_chat(PidginJoinChatData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
853 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
854 if (data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
855 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
856 GHashTable *components = |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
857 g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
858 GList *tmp; |
15823 | 859 PurpleChat *chat; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
860 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
861 for (tmp = data->entries; tmp != NULL; tmp = tmp->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
862 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
863 if (g_object_get_data(tmp->data, "is_spin")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
864 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
865 g_hash_table_replace(components, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
866 g_strdup(g_object_get_data(tmp->data, "identifier")), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
867 g_strdup_printf("%d", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
868 gtk_spin_button_get_value_as_int(tmp->data))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
869 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
870 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
871 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
872 g_hash_table_replace(components, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
873 g_strdup(g_object_get_data(tmp->data, "identifier")), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
874 g_strdup(gtk_entry_get_text(tmp->data))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
875 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
876 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
877 |
15823 | 878 chat = purple_chat_new(data->account, NULL, components); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
879 gtk_blist_join_chat(chat); |
15823 | 880 purple_blist_remove_chat(chat); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
881 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
882 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
883 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
884 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
885 do_joinchat(GtkWidget *dialog, int id, PidginJoinChatData *info) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
886 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
887 switch(id) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
888 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
889 case GTK_RESPONSE_OK: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
890 do_join_chat(info); |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
891 break; |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
892 |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
893 case 1: |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
894 pidgin_roomlist_dialog_show_with_account(info->account); |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
895 return; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
896 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
897 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
898 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
899 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
900 gtk_widget_destroy(GTK_WIDGET(dialog)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
901 g_list_free(info->entries); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
902 g_free(info); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
903 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
904 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
905 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
906 * Check the values of all the text entry boxes. If any required input |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
907 * strings are empty then don't allow the user to click on "OK." |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
908 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
909 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
910 joinchat_set_sensitive_if_input_cb(GtkWidget *entry, gpointer user_data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
911 { |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
912 PurplePluginProtocolInfo *prpl_info; |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
913 PurpleConnection *gc; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
914 PidginJoinChatData *data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
915 GList *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
916 const char *text; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
917 gboolean required; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
918 gboolean sensitive = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
919 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
920 data = user_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
921 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
922 for (tmp = data->entries; tmp != NULL; tmp = tmp->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
923 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
924 if (!g_object_get_data(tmp->data, "is_spin")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
925 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
926 required = GPOINTER_TO_INT(g_object_get_data(tmp->data, "required")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
927 text = gtk_entry_get_text(tmp->data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
928 if (required && (*text == '\0')) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
929 sensitive = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
930 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
931 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
932 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
933 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), GTK_RESPONSE_OK, sensitive); |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
934 |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
935 gc = purple_account_get_connection(data->account); |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
936 prpl_info = (gc != NULL) ? PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl) : NULL; |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
937 sensitive = (prpl_info != NULL && prpl_info->roomlist_get_list != NULL); |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
938 |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
939 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), 1, sensitive); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
940 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
941 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
942 static void |
15823 | 943 pidgin_blist_update_privacy_cb(PurpleBuddy *buddy) |
944 { | |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
945 struct _pidgin_blist_node *ui_data = purple_blist_node_get_ui_data(PURPLE_BLIST_NODE(buddy)); |
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
946 if (ui_data == NULL || ui_data->row == NULL) |
19538
6575ec8e1a97
Do not try to update a buddy in the buddylist when there's no buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19509
diff
changeset
|
947 return; |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
948 pidgin_blist_update_buddy(purple_get_blist(), PURPLE_BLIST_NODE(buddy), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
949 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
950 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
951 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
952 rebuild_joinchat_entries(PidginJoinChatData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
953 { |
15823 | 954 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
955 GList *list = NULL, *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
956 GHashTable *defaults = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
957 struct proto_chat_entry *pce; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
958 gboolean focus = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
959 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
960 g_return_if_fail(data->account != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
961 |
15823 | 962 gc = purple_account_get_connection(data->account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
963 |
18646
05cab350d1fb
Fix memory leak by freeing the list returned by gtk_container_get_children.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18435
diff
changeset
|
964 gtk_container_foreach(GTK_CONTAINER(data->entries_box), (GtkCallback)gtk_widget_destroy, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
965 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
966 g_list_free(data->entries); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
967 data->entries = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
968 |
15823 | 969 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info != NULL) |
970 list = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info(gc); | |
971 | |
972 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) | |
973 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
974 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
975 for (tmp = list; tmp; tmp = tmp->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
976 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
977 GtkWidget *input; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
978 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
979 pce = tmp->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
980 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
981 if (pce->is_int) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
982 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
983 GtkObject *adjust; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
984 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
985 1, 10, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
986 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
987 gtk_widget_set_size_request(input, 50, -1); |
21992
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
988 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, FALSE, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
989 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
990 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
991 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
992 char *value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
993 input = gtk_entry_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
994 gtk_entry_set_activates_default(GTK_ENTRY(input), TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
995 value = g_hash_table_lookup(defaults, pce->identifier); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
996 if (value != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
997 gtk_entry_set_text(GTK_ENTRY(input), value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
998 if (pce->secret) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
999 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1000 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); |
24987
17b840986607
GTK+ 2.16.0 will set the invisible character to a nice bullet instead of
Mark Doliner <mark@kingant.net>
parents:
24933
diff
changeset
|
1001 #if !GTK_CHECK_VERSION(2,16,0) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1002 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') |
15821 | 1003 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); |
24987
17b840986607
GTK+ 2.16.0 will set the invisible character to a nice bullet instead of
Mark Doliner <mark@kingant.net>
parents:
24933
diff
changeset
|
1004 #endif /* Less than GTK+ 2.16 */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1005 } |
21992
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
1006 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1007 g_signal_connect(G_OBJECT(input), "changed", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1008 G_CALLBACK(joinchat_set_sensitive_if_input_cb), data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1009 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1010 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1011 /* Do the following for any type of input widget */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1012 if (focus) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1013 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1014 gtk_widget_grab_focus(input); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1015 focus = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1016 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1017 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1018 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1019 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1020 data->entries = g_list_append(data->entries, input); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1021 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1022 g_free(pce); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1023 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1024 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1025 g_list_free(list); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1026 g_hash_table_destroy(defaults); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1027 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1028 /* Set whether the "OK" button should be clickable initially */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1029 joinchat_set_sensitive_if_input_cb(NULL, data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1030 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1031 gtk_widget_show_all(data->entries_box); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1032 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1033 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1034 static void |
15823 | 1035 joinchat_select_account_cb(GObject *w, PurpleAccount *account, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1036 PidginJoinChatData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1037 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1038 data->account = account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1039 rebuild_joinchat_entries(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1040 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1041 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1042 static gboolean |
15823 | 1043 chat_account_filter_func(PurpleAccount *account) |
1044 { | |
1045 PurpleConnection *gc = purple_account_get_connection(account); | |
1046 PurplePluginProtocolInfo *prpl_info = NULL; | |
1047 | |
1048 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1049 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1050 return (prpl_info->chat_info != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1051 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1052 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1053 gboolean |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1054 pidgin_blist_joinchat_is_showable() |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1055 { |
18063
926ccb104da0
disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents:
18058
diff
changeset
|
1056 GList *c; |
15823 | 1057 PurpleConnection *gc; |
1058 | |
1059 for (c = purple_connections_get_all(); c != NULL; c = c->next) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1060 gc = c->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1061 |
15823 | 1062 if (chat_account_filter_func(purple_connection_get_account(gc))) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1063 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1064 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1065 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1066 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1067 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1068 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1069 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1070 pidgin_blist_joinchat_show(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1071 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1072 GtkWidget *hbox, *vbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1073 GtkWidget *label; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1074 PidginBuddyList *gtkblist; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1075 GtkWidget *img = NULL; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1076 PidginJoinChatData *data = NULL; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1077 |
25313
12e258fb6f3c
Got about a third of the gtkblist.c direct struct usage, much more to go obviously, but i must sleep...
Gary Kramlich <grim@reaperworld.com>
parents:
25311
diff
changeset
|
1078 gtkblist = purple_blist_get_ui_data(); |
15436 | 1079 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION, |
1080 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE)); | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1081 data = g_new0(PidginJoinChatData, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1082 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1083 data->window = gtk_dialog_new_with_buttons(_("Join a Chat"), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1084 NULL, GTK_DIALOG_NO_SEPARATOR, |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
1085 _("Room _List"), 1, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1086 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
15509 | 1087 PIDGIN_STOCK_CHAT, GTK_RESPONSE_OK, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1088 gtk_dialog_set_default_response(GTK_DIALOG(data->window), GTK_RESPONSE_OK); |
15821 | 1089 gtk_container_set_border_width(GTK_CONTAINER(data->window), PIDGIN_HIG_BOX_SPACE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1090 gtk_window_set_resizable(GTK_WINDOW(data->window), FALSE); |
15821 | 1091 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BORDER); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1092 gtk_container_set_border_width( |
15821 | 1093 GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BOX_SPACE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1094 gtk_window_set_role(GTK_WINDOW(data->window), "join_chat"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1095 |
15821 | 1096 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1097 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1098 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1099 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1100 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1101 vbox = gtk_vbox_new(FALSE, 5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1102 gtk_container_set_border_width(GTK_CONTAINER(vbox), 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1103 gtk_container_add(GTK_CONTAINER(hbox), vbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1104 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1105 label = gtk_label_new(_("Please enter the appropriate information " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1106 "about the chat you would like to join.\n")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1107 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1108 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1109 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1110 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1111 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1112 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1113 data->account_menu = pidgin_account_option_menu_new(NULL, FALSE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1114 G_CALLBACK(joinchat_select_account_cb), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1115 chat_account_filter_func, data); |
21992
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
1116 |
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
1117 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Account:"), data->sg, data->account_menu, TRUE, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1118 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1119 data->entries_box = gtk_vbox_new(FALSE, 5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1120 gtk_container_add(GTK_CONTAINER(vbox), data->entries_box); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1121 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1122 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1123 data->account = pidgin_account_option_menu_get_selected(data->account_menu); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1124 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1125 rebuild_joinchat_entries(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1126 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1127 g_signal_connect(G_OBJECT(data->window), "response", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1128 G_CALLBACK(do_joinchat), data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1129 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1130 g_object_unref(data->sg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1131 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1132 gtk_widget_show_all(data->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1133 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1134 |
17139
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1135 static void gtk_blist_row_expanded_cb(GtkTreeView *tv, GtkTreeIter *iter, GtkTreePath *path, gpointer user_data) |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1136 { |
15823 | 1137 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1138 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1139 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1140 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1141 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1142 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1143 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1144 |
15823 | 1145 if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1146 char *title; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1147 |
15821 | 1148 title = pidgin_get_group_title(node, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1149 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1150 gtk_tree_store_set(gtkblist->treemodel, iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1151 NAME_COLUMN, title, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1152 -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1153 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1154 g_free(title); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1155 |
15823 | 1156 purple_blist_node_set_bool(node, "collapsed", FALSE); |
22646
654f8386f4b3
Destroy the tooltip when a group in the buddylist is expanded or collapsed
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22594
diff
changeset
|
1157 pidgin_blist_tooltip_destroy(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1158 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1159 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1160 |
17139
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1161 static void gtk_blist_row_collapsed_cb(GtkTreeView *tv, GtkTreeIter *iter, GtkTreePath *path, gpointer user_data) |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1162 { |
15823 | 1163 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1164 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1165 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1166 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1167 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1168 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1169 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1170 |
15823 | 1171 if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1172 char *title; |
17139
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1173 struct _pidgin_blist_node *gtknode; |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1174 PurpleBlistNode *cnode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1175 |
15821 | 1176 title = pidgin_get_group_title(node, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1177 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1178 gtk_tree_store_set(gtkblist->treemodel, iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1179 NAME_COLUMN, title, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1180 -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1181 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1182 g_free(title); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1183 |
15823 | 1184 purple_blist_node_set_bool(node, "collapsed", TRUE); |
17139
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1185 |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1186 for(cnode = node->child; cnode; cnode = cnode->next) { |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1187 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1188 gtknode = cnode->ui_data; |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1189 if (!gtknode->contact_expanded) |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1190 continue; |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1191 gtknode->contact_expanded = FALSE; |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1192 pidgin_blist_update_contact(NULL, cnode); |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1193 } |
17117b8cfbb7
Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17046
diff
changeset
|
1194 } |
22646
654f8386f4b3
Destroy the tooltip when a group in the buddylist is expanded or collapsed
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22594
diff
changeset
|
1195 pidgin_blist_tooltip_destroy(); |
15823 | 1196 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1197 pidgin_blist_collapse_contact_cb(NULL, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1198 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1199 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1200 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1201 static void gtk_blist_row_activated_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) { |
15823 | 1202 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1203 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1204 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1205 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1206 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1207 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1208 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1209 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1210 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1211 |
15823 | 1212 if(PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
1213 PurpleBuddy *buddy; | |
1214 | |
1215 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) | |
1216 buddy = purple_contact_get_priority_buddy((PurpleContact*)node); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1217 else |
15823 | 1218 buddy = (PurpleBuddy*)node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1219 |
16202
0973688f4b74
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents:
16198
diff
changeset
|
1220 pidgin_dialogs_im_with_user(buddy->account, buddy->name); |
15823 | 1221 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { |
1222 gtk_blist_join_chat((PurpleChat *)node); | |
1223 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1224 /* if (gtk_tree_view_row_expanded(tv, path)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1225 gtk_tree_view_collapse_row(tv, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1226 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1227 gtk_tree_view_expand_row(tv,path,FALSE);*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1228 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1229 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1230 |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21960
diff
changeset
|
1231 static void pidgin_blist_add_chat_cb(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1232 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1233 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1234 GtkTreeIter iter; |
15823 | 1235 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1236 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1237 if(gtk_tree_selection_get_selected(sel, NULL, &iter)){ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1238 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1); |
15823 | 1239 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
1240 purple_blist_request_add_chat(NULL, (PurpleGroup*)node->parent->parent, NULL, NULL); | |
1241 if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node)) | |
1242 purple_blist_request_add_chat(NULL, (PurpleGroup*)node->parent, NULL, NULL); | |
1243 else if (PURPLE_BLIST_NODE_IS_GROUP(node)) | |
1244 purple_blist_request_add_chat(NULL, (PurpleGroup*)node, NULL, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1245 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1246 else { |
15823 | 1247 purple_blist_request_add_chat(NULL, NULL, NULL, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1248 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1249 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1250 |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21960
diff
changeset
|
1251 static void pidgin_blist_add_buddy_cb(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1252 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1253 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1254 GtkTreeIter iter; |
15823 | 1255 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1256 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1257 if(gtk_tree_selection_get_selected(sel, NULL, &iter)){ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1258 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1); |
15823 | 1259 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
1260 purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node->parent->parent)->name, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1261 NULL); |
15823 | 1262 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) |
1263 || PURPLE_BLIST_NODE_IS_CHAT(node)) { | |
1264 purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node->parent)->name, NULL); | |
1265 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { | |
1266 purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node)->name, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1267 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1268 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1269 else { |
15823 | 1270 purple_blist_request_add_buddy(NULL, NULL, NULL, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1271 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1272 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1273 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1274 static void |
15823 | 1275 pidgin_blist_remove_cb (GtkWidget *w, PurpleBlistNode *node) |
1276 { | |
1277 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { | |
16202
0973688f4b74
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents:
16198
diff
changeset
|
1278 pidgin_dialogs_remove_buddy((PurpleBuddy*)node); |
15823 | 1279 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { |
16202
0973688f4b74
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents:
16198
diff
changeset
|
1280 pidgin_dialogs_remove_chat((PurpleChat*)node); |
15823 | 1281 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
16202
0973688f4b74
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents:
16198
diff
changeset
|
1282 pidgin_dialogs_remove_group((PurpleGroup*)node); |
15823 | 1283 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
16202
0973688f4b74
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents:
16198
diff
changeset
|
1284 pidgin_dialogs_remove_contact((PurpleContact*)node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1285 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1286 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1287 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1288 struct _expand { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1289 GtkTreeView *treeview; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1290 GtkTreePath *path; |
15823 | 1291 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1292 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1293 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1294 static gboolean |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1295 scroll_to_expanded_cell(gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1296 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1297 struct _expand *ex = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1298 gtk_tree_view_scroll_to_cell(ex->treeview, ex->path, NULL, FALSE, 0, 0); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1299 pidgin_blist_update_contact(NULL, ex->node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1300 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1301 gtk_tree_path_free(ex->path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1302 g_free(ex); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1303 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1304 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1305 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1306 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1307 static void |
15823 | 1308 pidgin_blist_expand_contact_cb(GtkWidget *w, PurpleBlistNode *node) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1309 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1310 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1311 GtkTreeIter iter, parent; |
15823 | 1312 PurpleBlistNode *bnode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1313 GtkTreePath *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1314 |
15823 | 1315 if(!PURPLE_BLIST_NODE_IS_CONTACT(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1316 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1317 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1318 gtknode = (struct _pidgin_blist_node *)node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1319 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1320 gtknode->contact_expanded = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1321 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1322 for(bnode = node->child; bnode; bnode = bnode->next) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1323 pidgin_blist_update(NULL, bnode); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1324 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1325 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1326 /* This ensures that the bottom buddy is visible, i.e. not scrolled off the alignment */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1327 if (get_iter_from_node(node, &parent)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1328 struct _expand *ex = g_new0(struct _expand, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1329 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1330 gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(gtkblist->treemodel), &iter, &parent, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1331 gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gtkblist->treemodel), &parent) -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1332 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1333 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1334 /* Let the treeview draw so it knows where to scroll */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1335 ex->treeview = GTK_TREE_VIEW(gtkblist->treeview); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1336 ex->path = path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1337 ex->node = node->child; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1338 g_idle_add(scroll_to_expanded_cell, ex); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1339 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1340 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1341 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1342 static void |
15823 | 1343 pidgin_blist_collapse_contact_cb(GtkWidget *w, PurpleBlistNode *node) |
1344 { | |
1345 PurpleBlistNode *bnode; | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1346 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1347 |
15823 | 1348 if(!PURPLE_BLIST_NODE_IS_CONTACT(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1349 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1350 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1351 gtknode = (struct _pidgin_blist_node *)node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1352 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1353 gtknode->contact_expanded = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1354 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1355 for(bnode = node->child; bnode; bnode = bnode->next) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1356 pidgin_blist_update(NULL, bnode); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1357 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1358 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1359 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1360 static void |
15823 | 1361 toggle_privacy(GtkWidget *widget, PurpleBlistNode *node) |
1362 { | |
1363 PurpleBuddy *buddy; | |
1364 PurpleAccount *account; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1365 gboolean permitted; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1366 const char *name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1367 |
15823 | 1368 if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1369 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1370 |
15823 | 1371 buddy = (PurpleBuddy *)node; |
1372 account = purple_buddy_get_account(buddy); | |
1373 name = purple_buddy_get_name(buddy); | |
1374 | |
1375 permitted = purple_privacy_check(account, name); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1376 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1377 /* XXX: Perhaps ask whether to restore the previous lists where appropirate? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1378 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1379 if (permitted) |
15823 | 1380 purple_privacy_deny(account, name, FALSE, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1381 else |
15823 | 1382 purple_privacy_allow(account, name, FALSE, FALSE); |
1383 | |
1384 pidgin_blist_update(purple_get_blist(), node); | |
1385 } | |
1386 | |
1387 void pidgin_append_blist_node_privacy_menu(GtkWidget *menu, PurpleBlistNode *node) | |
1388 { | |
1389 PurpleBuddy *buddy = (PurpleBuddy *)node; | |
1390 PurpleAccount *account; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1391 gboolean permitted; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1392 |
15823 | 1393 account = purple_buddy_get_account(buddy); |
1394 permitted = purple_privacy_check(account, purple_buddy_get_name(buddy)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1395 |
15507 | 1396 pidgin_new_item_from_stock(menu, permitted ? _("_Block") : _("Un_block"), |
16007
d64602bb59d2
block and unblock have the right icons now
Nathan Walp <nwalp@pidgin.im>
parents:
15980
diff
changeset
|
1397 permitted ? PIDGIN_STOCK_TOOLBAR_BLOCK : PIDGIN_STOCK_TOOLBAR_UNBLOCK, G_CALLBACK(toggle_privacy), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1398 node, 0 ,0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1399 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1400 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1401 void |
15823 | 1402 pidgin_append_blist_node_proto_menu(GtkWidget *menu, PurpleConnection *gc, |
1403 PurpleBlistNode *node) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1404 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1405 GList *l, *ll; |
15823 | 1406 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1407 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1408 if(!prpl_info || !prpl_info->blist_node_menu) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1409 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1410 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1411 for(l = ll = prpl_info->blist_node_menu(node); l; l = l->next) { |
15823 | 1412 PurpleMenuAction *act = (PurpleMenuAction *) l->data; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1413 pidgin_append_menu_action(menu, act, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1414 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1415 g_list_free(ll); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1416 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1417 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1418 void |
15823 | 1419 pidgin_append_blist_node_extended_menu(GtkWidget *menu, PurpleBlistNode *node) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1420 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1421 GList *l, *ll; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1422 |
15823 | 1423 for(l = ll = purple_blist_node_get_extended_menu(node); l; l = l->next) { |
1424 PurpleMenuAction *act = (PurpleMenuAction *) l->data; | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1425 pidgin_append_menu_action(menu, act, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1426 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1427 g_list_free(ll); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1428 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1429 |
20045
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1430 |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1431 |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1432 static void |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1433 pidgin_append_blist_node_move_to_menu(GtkWidget *menu, PurpleBlistNode *node) |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1434 { |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1435 GtkWidget *submenu; |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1436 GtkWidget *menuitem; |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1437 PurpleBlistNode *group; |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1438 |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1439 menuitem = gtk_menu_item_new_with_label(_("Move to")); |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1440 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1441 gtk_widget_show(menuitem); |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1442 |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1443 submenu = gtk_menu_new(); |
20099
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
1444 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
20045
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1445 |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1446 for (group = purple_blist_get_root(); group; group = group->next) { |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1447 if (group->type != PURPLE_BLIST_GROUP_NODE) |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1448 continue; |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1449 if (group == node->parent) |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1450 continue; |
20099
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
1451 menuitem = pidgin_new_item_from_stock(submenu, purple_group_get_name((PurpleGroup *)group), NULL, |
20045
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1452 G_CALLBACK(gtk_blist_menu_move_to_cb), node, 0, 0, NULL); |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1453 g_object_set_data(G_OBJECT(menuitem), "groupnode", group); |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1454 } |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1455 gtk_widget_show_all(submenu); |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1456 } |
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1457 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1458 void |
15823 | 1459 pidgin_blist_make_buddy_menu(GtkWidget *menu, PurpleBuddy *buddy, gboolean sub) { |
1460 PurplePluginProtocolInfo *prpl_info; | |
1461 PurpleContact *contact; | |
20163
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1462 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1463 gboolean contact_expanded = FALSE; |
20163
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1464 gboolean show_offline = FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1465 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1466 g_return_if_fail(menu); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1467 g_return_if_fail(buddy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1468 |
15823 | 1469 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(buddy->account->gc->prpl); |
1470 | |
20163
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1471 node = (PurpleBlistNode*)buddy; |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1472 |
15823 | 1473 contact = purple_buddy_get_contact(buddy); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1474 if (contact) { |
15823 | 1475 contact_expanded = ((struct _pidgin_blist_node *)(((PurpleBlistNode*)contact)->ui_data))->contact_expanded; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1476 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1477 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1478 if (prpl_info && prpl_info->get_info) { |
15560
442128853bdb
toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents:
15559
diff
changeset
|
1479 pidgin_new_item_from_stock(menu, _("Get _Info"), PIDGIN_STOCK_TOOLBAR_USER_INFO, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1480 G_CALLBACK(gtk_blist_menu_info_cb), buddy, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1481 } |
15560
442128853bdb
toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents:
15559
diff
changeset
|
1482 pidgin_new_item_from_stock(menu, _("I_M"), PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1483 G_CALLBACK(gtk_blist_menu_im_cb), buddy, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1484 if (prpl_info && prpl_info->send_file) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1485 if (!prpl_info->can_receive_file || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1486 prpl_info->can_receive_file(buddy->account->gc, buddy->name)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1487 { |
20546
4195e0a93b1e
Ellipsize some menu actions that require further input. Fixes #1770
Sean Egan <seanegan@gmail.com>
parents:
20543
diff
changeset
|
1488 pidgin_new_item_from_stock(menu, _("_Send File..."), |
16839 | 1489 PIDGIN_STOCK_TOOLBAR_SEND_FILE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1490 G_CALLBACK(gtk_blist_menu_send_file_cb), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1491 buddy, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1492 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1493 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1494 |
20546
4195e0a93b1e
Ellipsize some menu actions that require further input. Fixes #1770
Sean Egan <seanegan@gmail.com>
parents:
20543
diff
changeset
|
1495 pidgin_new_item_from_stock(menu, _("Add Buddy _Pounce..."), NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1496 G_CALLBACK(gtk_blist_menu_bp_cb), buddy, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1497 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
1498 if (node->parent && node->parent->child->next && |
18671 | 1499 !sub && !contact_expanded) { |
15560
442128853bdb
toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents:
15559
diff
changeset
|
1500 pidgin_new_item_from_stock(menu, _("View _Log"), NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1501 G_CALLBACK(gtk_blist_menu_showlog_cb), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1502 contact, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1503 } else if (!sub) { |
15559 | 1504 pidgin_new_item_from_stock(menu, _("View _Log"), NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1505 G_CALLBACK(gtk_blist_menu_showlog_cb), buddy, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1506 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1507 |
20163
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1508 if (!(purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)) { |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1509 show_offline = purple_blist_node_get_bool(node, "show_offline"); |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1510 pidgin_new_item_from_stock(menu, show_offline ? _("Hide when offline") : _("Show when offline"), |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1511 NULL, G_CALLBACK(gtk_blist_menu_showoffline_cb), node, 0, 0, NULL); |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1512 } |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1513 |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1514 pidgin_append_blist_node_proto_menu(menu, buddy->account->gc, node); |
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1515 pidgin_append_blist_node_extended_menu(menu, node); |
15823 | 1516 |
21752
9c2230fe2217
Fix a crash that occurs when creating the "Move To" menu for buddies that aren't on your list. Fixes #4217.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21751
diff
changeset
|
1517 if (!contact_expanded && contact != NULL) |
20099
ac6bf49cd5ba
Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20084
diff
changeset
|
1518 pidgin_append_blist_node_move_to_menu(menu, (PurpleBlistNode *)contact); |
20045
507e109387fd
Move to menu in blist context menu. Used for more easily moving buddies between groups
Sean Egan <seanegan@gmail.com>
parents:
20043
diff
changeset
|
1519 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
1520 if (node->parent && node->parent->child->next && |
18671 | 1521 !sub && !contact_expanded) { |
15507 | 1522 pidgin_separator(menu); |
20163
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1523 pidgin_append_blist_node_privacy_menu(menu, node); |
17693
fa5c24086481
Add the mnemonics I really meant to add before I got distracted by Add Chat
Stu Tomlinson <stu@nosnilmot.com>
parents:
17688
diff
changeset
|
1524 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1525 G_CALLBACK(gtk_blist_menu_alias_cb), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1526 contact, 0, 0, NULL); |
17693
fa5c24086481
Add the mnemonics I really meant to add before I got distracted by Add Chat
Stu Tomlinson <stu@nosnilmot.com>
parents:
17688
diff
changeset
|
1527 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1528 G_CALLBACK(pidgin_blist_remove_cb), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1529 contact, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1530 } else if (!sub || contact_expanded) { |
15507 | 1531 pidgin_separator(menu); |
20163
1971e13bb5f6
Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents:
20161
diff
changeset
|
1532 pidgin_append_blist_node_privacy_menu(menu, node); |
15509 | 1533 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1534 G_CALLBACK(gtk_blist_menu_alias_cb), buddy, 0, 0, NULL); |
15507 | 1535 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1536 G_CALLBACK(pidgin_blist_remove_cb), buddy, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1537 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1538 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1539 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1540 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1541 static gboolean |
17275
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17139
diff
changeset
|
1542 gtk_blist_key_press_cb(GtkWidget *tv, GdkEventKey *event, gpointer data) |
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17139
diff
changeset
|
1543 { |
15823 | 1544 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1545 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1546 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1547 GtkTreeSelection *sel; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1548 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1549 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1550 if(!gtk_tree_selection_get_selected(sel, NULL, &iter)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1551 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1552 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1553 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1554 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), &iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1555 NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1556 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1557 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1558 if(event->state & GDK_CONTROL_MASK && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1559 (event->keyval == 'o' || event->keyval == 'O')) { |
15823 | 1560 PurpleBuddy *buddy; |
1561 | |
1562 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { | |
1563 buddy = purple_contact_get_priority_buddy((PurpleContact*)node); | |
1564 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { | |
1565 buddy = (PurpleBuddy*)node; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1566 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1567 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1568 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1569 if(buddy) |
17275
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17139
diff
changeset
|
1570 pidgin_retrieve_user_info(buddy->account->gc, buddy->name); |
16220
68114539cdf7
Patch from SuperMMX, "I would like to be able to rename (alias)
Mark Doliner <mark@kingant.net>
parents:
16202
diff
changeset
|
1571 } else if (event->keyval == GDK_F2) { |
68114539cdf7
Patch from SuperMMX, "I would like to be able to rename (alias)
Mark Doliner <mark@kingant.net>
parents:
16202
diff
changeset
|
1572 gtk_blist_menu_alias_cb(tv, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1573 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1574 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1575 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1576 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1577 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1578 static void |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1579 set_node_custom_icon_cb(const gchar *filename, gpointer data) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1580 { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1581 if (filename) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1582 PurpleBlistNode *node = (PurpleBlistNode*)data; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1583 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1584 purple_buddy_icons_node_set_custom_icon_from_file(node, |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1585 filename); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1586 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1587 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1588 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1589 static void |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1590 set_node_custom_icon(GtkWidget *w, PurpleBlistNode *node) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1591 { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1592 /* This doesn't keep track of the returned dialog (so that successive |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1593 * calls could be made to re-display that dialog). Do we want that? */ |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1594 GtkWidget *win = pidgin_buddy_icon_chooser_new(NULL, set_node_custom_icon_cb, node); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1595 gtk_widget_show_all(win); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1596 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1597 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1598 static void |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1599 remove_node_custom_icon(GtkWidget *w, PurpleBlistNode *node) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1600 { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1601 purple_buddy_icons_node_set_custom_icon(node, NULL, 0); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1602 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1603 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1604 static void |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1605 add_buddy_icon_menu_items(GtkWidget *menu, PurpleBlistNode *node) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1606 { |
23164
78dad8135c72
Disable the 'remove custom icon' item from the menu if a custom icon isn't set.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23161
diff
changeset
|
1607 GtkWidget *item; |
78dad8135c72
Disable the 'remove custom icon' item from the menu if a custom icon isn't set.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23161
diff
changeset
|
1608 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1609 pidgin_new_item_from_stock(menu, _("Set Custom Icon"), NULL, |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1610 G_CALLBACK(set_node_custom_icon), node, 0, |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1611 0, NULL); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1612 |
23164
78dad8135c72
Disable the 'remove custom icon' item from the menu if a custom icon isn't set.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23161
diff
changeset
|
1613 item = pidgin_new_item_from_stock(menu, _("Remove Custom Icon"), NULL, |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1614 G_CALLBACK(remove_node_custom_icon), node, |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1615 0, 0, NULL); |
23164
78dad8135c72
Disable the 'remove custom icon' item from the menu if a custom icon isn't set.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23161
diff
changeset
|
1616 if (!purple_buddy_icons_node_has_custom_icon(node)) |
78dad8135c72
Disable the 'remove custom icon' item from the menu if a custom icon isn't set.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23161
diff
changeset
|
1617 gtk_widget_set_sensitive(item, FALSE); |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1618 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1619 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1620 static GtkWidget * |
15823 | 1621 create_group_menu (PurpleBlistNode *node, PurpleGroup *g) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1622 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1623 GtkWidget *menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1624 GtkWidget *item; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1625 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1626 menu = gtk_menu_new(); |
20546
4195e0a93b1e
Ellipsize some menu actions that require further input. Fixes #1770
Sean Egan <seanegan@gmail.com>
parents:
20543
diff
changeset
|
1627 item = pidgin_new_item_from_stock(menu, _("Add _Buddy..."), GTK_STOCK_ADD, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1628 G_CALLBACK(pidgin_blist_add_buddy_cb), node, 0, 0, NULL); |
16777
1de66d5d1de8
if you're offline, and right-click on a group, you shouldn't be presented
Nathan Walp <nwalp@pidgin.im>
parents:
16760
diff
changeset
|
1629 gtk_widget_set_sensitive(item, purple_connections_get_all() != NULL); |
20546
4195e0a93b1e
Ellipsize some menu actions that require further input. Fixes #1770
Sean Egan <seanegan@gmail.com>
parents:
20543
diff
changeset
|
1630 item = pidgin_new_item_from_stock(menu, _("Add C_hat..."), GTK_STOCK_ADD, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1631 G_CALLBACK(pidgin_blist_add_chat_cb), node, 0, 0, NULL); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1632 gtk_widget_set_sensitive(item, pidgin_blist_joinchat_is_showable()); |
15507 | 1633 pidgin_new_item_from_stock(menu, _("_Delete Group"), GTK_STOCK_REMOVE, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1634 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL); |
15507 | 1635 pidgin_new_item_from_stock(menu, _("_Rename"), NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1636 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL); |
22436
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
1637 if (!(purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)) { |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
1638 gboolean show_offline = purple_blist_node_get_bool(node, "show_offline"); |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
1639 pidgin_new_item_from_stock(menu, show_offline ? _("Hide when offline") : _("Show when offline"), |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
1640 NULL, G_CALLBACK(gtk_blist_menu_showoffline_cb), node, 0, 0, NULL); |
df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents:
22313
diff
changeset
|
1641 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1642 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1643 add_buddy_icon_menu_items(menu, node); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1644 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1645 pidgin_append_blist_node_extended_menu(menu, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1646 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1647 return menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1648 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1649 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1650 static GtkWidget * |
18658
1987beefd494
Make the infopane context-menu look more like a buddylist context menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18646
diff
changeset
|
1651 create_chat_menu(PurpleBlistNode *node, PurpleChat *c) |
1987beefd494
Make the infopane context-menu look more like a buddylist context menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18646
diff
changeset
|
1652 { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1653 GtkWidget *menu; |
19900
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
1654 gboolean autojoin, persistent; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1655 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1656 menu = gtk_menu_new(); |
15823 | 1657 autojoin = (purple_blist_node_get_bool(node, "gtk-autojoin") || |
1658 (purple_blist_node_get_string(node, "gtk-autojoin") != NULL)); | |
19900
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
1659 persistent = purple_blist_node_get_bool(node, "gtk-persistent"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1660 |
15509 | 1661 pidgin_new_item_from_stock(menu, _("_Join"), PIDGIN_STOCK_CHAT, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1662 G_CALLBACK(gtk_blist_menu_join_cb), node, 0, 0, NULL); |
15507 | 1663 pidgin_new_check_item(menu, _("Auto-Join"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1664 G_CALLBACK(gtk_blist_menu_autojoin_cb), node, autojoin); |
19900
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
1665 pidgin_new_check_item(menu, _("Persistent"), |
ee5b3ac0d41d
"We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19899
diff
changeset
|
1666 G_CALLBACK(gtk_blist_menu_persistent_cb), node, persistent); |
15560
442128853bdb
toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents:
15559
diff
changeset
|
1667 pidgin_new_item_from_stock(menu, _("View _Log"), NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1668 G_CALLBACK(gtk_blist_menu_showlog_cb), node, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1669 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1670 pidgin_append_blist_node_proto_menu(menu, c->account->gc, node); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1671 pidgin_append_blist_node_extended_menu(menu, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1672 |
15507 | 1673 pidgin_separator(menu); |
1674 | |
22760
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
1675 pidgin_new_item_from_stock(menu, _("_Edit Settings..."), NULL, |
cf88a302fa88
'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22695
diff
changeset
|
1676 G_CALLBACK(chat_components_edit), node, 0, 0, NULL); |
15509 | 1677 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1678 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL); |
15507 | 1679 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1680 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1681 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1682 add_buddy_icon_menu_items(menu, node); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1683 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1684 return menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1685 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1686 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1687 static GtkWidget * |
15823 | 1688 create_contact_menu (PurpleBlistNode *node) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1689 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1690 GtkWidget *menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1691 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1692 menu = gtk_menu_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1693 |
15560
442128853bdb
toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents:
15559
diff
changeset
|
1694 pidgin_new_item_from_stock(menu, _("View _Log"), NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1695 G_CALLBACK(gtk_blist_menu_showlog_cb), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1696 node, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1697 |
15507 | 1698 pidgin_separator(menu); |
1699 | |
15509 | 1700 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1701 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL); |
15507 | 1702 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1703 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1704 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1705 add_buddy_icon_menu_items(menu, node); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
1706 |
15507 | 1707 pidgin_separator(menu); |
1708 | |
1709 pidgin_new_item_from_stock(menu, _("_Collapse"), GTK_STOCK_ZOOM_OUT, | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1710 G_CALLBACK(pidgin_blist_collapse_contact_cb), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1711 node, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1712 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1713 pidgin_append_blist_node_extended_menu(menu, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1714 return menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1715 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1716 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1717 static GtkWidget * |
18658
1987beefd494
Make the infopane context-menu look more like a buddylist context menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18646
diff
changeset
|
1718 create_buddy_menu(PurpleBlistNode *node, PurpleBuddy *b) |
1987beefd494
Make the infopane context-menu look more like a buddylist context menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18646
diff
changeset
|
1719 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1720 struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1721 GtkWidget *menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1722 GtkWidget *menuitem; |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
1723 gboolean show_offline = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1724 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1725 menu = gtk_menu_new(); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1726 pidgin_blist_make_buddy_menu(menu, b, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1727 |
15823 | 1728 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
15507 | 1729 pidgin_separator(menu); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1730 |
23166
28dae90906e1
Show the custom icon menu for a contact even if it's collapsed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23164
diff
changeset
|
1731 add_buddy_icon_menu_items(menu, node); |
28dae90906e1
Show the custom icon menu for a contact even if it's collapsed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23164
diff
changeset
|
1732 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1733 if(gtknode->contact_expanded) { |
15507 | 1734 pidgin_new_item_from_stock(menu, _("_Collapse"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1735 GTK_STOCK_ZOOM_OUT, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1736 G_CALLBACK(pidgin_blist_collapse_contact_cb), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1737 node, 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1738 } else { |
15507 | 1739 pidgin_new_item_from_stock(menu, _("_Expand"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1740 GTK_STOCK_ZOOM_IN, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1741 G_CALLBACK(pidgin_blist_expand_contact_cb), node, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1742 0, 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1743 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1744 if(node->child->next) { |
15823 | 1745 PurpleBlistNode *bnode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1746 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1747 for(bnode = node->child; bnode; bnode = bnode->next) { |
15823 | 1748 PurpleBuddy *buddy = (PurpleBuddy*)bnode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1749 GdkPixbuf *buf; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1750 GtkWidget *submenu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1751 GtkWidget *image; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1752 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1753 if(buddy == b) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1754 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1755 if(!buddy->account->gc) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1756 continue; |
15823 | 1757 if(!show_offline && !PURPLE_BUDDY_IS_ONLINE(buddy)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1758 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1759 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1760 menuitem = gtk_image_menu_item_new_with_label(buddy->name); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1761 buf = pidgin_create_prpl_icon(buddy->account,PIDGIN_PRPL_ICON_SMALL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1762 image = gtk_image_new_from_pixbuf(buf); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1763 g_object_unref(G_OBJECT(buf)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1764 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1765 image); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1766 gtk_widget_show(image); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1767 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1768 gtk_widget_show(menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1769 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1770 submenu = gtk_menu_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1771 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1772 gtk_widget_show(submenu); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1773 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1774 pidgin_blist_make_buddy_menu(submenu, buddy, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1775 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1776 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1777 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1778 return menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1779 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1780 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1781 static gboolean |
15823 | 1782 pidgin_blist_show_context_menu(PurpleBlistNode *node, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1783 GtkMenuPositionFunc func, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1784 GtkWidget *tv, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1785 guint button, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1786 guint32 time) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1787 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1788 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1789 GtkWidget *menu = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1790 gboolean handled = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1791 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1792 gtknode = (struct _pidgin_blist_node *)node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1793 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1794 /* Create a menu based on the thing we right-clicked on */ |
15823 | 1795 if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
1796 PurpleGroup *g = (PurpleGroup *)node; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1797 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1798 menu = create_group_menu(node, g); |
15823 | 1799 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { |
1800 PurpleChat *c = (PurpleChat *)node; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1801 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1802 menu = create_chat_menu(node, c); |
15823 | 1803 } else if ((PURPLE_BLIST_NODE_IS_CONTACT(node)) && (gtknode->contact_expanded)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1804 menu = create_contact_menu(node); |
15823 | 1805 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
1806 PurpleBuddy *b; | |
1807 | |
1808 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) | |
1809 b = purple_contact_get_priority_buddy((PurpleContact*)node); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1810 else |
15823 | 1811 b = (PurpleBuddy *)node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1812 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1813 menu = create_buddy_menu(node, b); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1814 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1815 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1816 #ifdef _WIN32 |
22976
8ac3ffa6841e
Patch from Arban57 to prevent tooltips conflicting with the context menu on
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22936
diff
changeset
|
1817 pidgin_blist_tooltip_destroy(); |
8ac3ffa6841e
Patch from Arban57 to prevent tooltips conflicting with the context menu on
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22936
diff
changeset
|
1818 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1819 /* Unhook the tooltip-timeout since we don't want a tooltip |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1820 * to appear and obscure the context menu we are about to show |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1821 This is a workaround for GTK+ bug 107320. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1822 if (gtkblist->timeout) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1823 g_source_remove(gtkblist->timeout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1824 gtkblist->timeout = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1825 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1826 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1827 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1828 /* Now display the menu */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1829 if (menu != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1830 gtk_widget_show_all(menu); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1831 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, func, tv, button, time); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1832 handled = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1833 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1834 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1835 return handled; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1836 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1837 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
1838 static gboolean |
23485
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
1839 gtk_blist_button_press_cb(GtkWidget *tv, GdkEventButton *event, gpointer user_data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1840 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1841 GtkTreePath *path; |
15823 | 1842 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1843 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1844 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1845 GtkTreeSelection *sel; |
15823 | 1846 PurplePlugin *prpl = NULL; |
1847 PurplePluginProtocolInfo *prpl_info = NULL; | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1848 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1849 gboolean handled = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1850 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1851 /* Here we figure out which node was clicked */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1852 if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), event->x, event->y, &path, NULL, NULL, NULL)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1853 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1854 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1855 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1856 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1857 node = g_value_get_pointer(&val); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1858 gtknode = (struct _pidgin_blist_node *)node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1859 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1860 /* Right click draws a context menu */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1861 if ((event->button == 3) && (event->type == GDK_BUTTON_PRESS)) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1862 handled = pidgin_blist_show_context_menu(node, NULL, tv, 3, event->time); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1863 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1864 /* CTRL+middle click expands or collapse a contact */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1865 } else if ((event->button == 2) && (event->type == GDK_BUTTON_PRESS) && |
15823 | 1866 (event->state & GDK_CONTROL_MASK) && (PURPLE_BLIST_NODE_IS_CONTACT(node))) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1867 if (gtknode->contact_expanded) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1868 pidgin_blist_collapse_contact_cb(NULL, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1869 else |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1870 pidgin_blist_expand_contact_cb(NULL, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1871 handled = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1872 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1873 /* Double middle click gets info */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1874 } else if ((event->button == 2) && (event->type == GDK_2BUTTON_PRESS) && |
15823 | 1875 ((PURPLE_BLIST_NODE_IS_CONTACT(node)) || (PURPLE_BLIST_NODE_IS_BUDDY(node)))) { |
1876 PurpleBuddy *b; | |
1877 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) | |
1878 b = purple_contact_get_priority_buddy((PurpleContact*)node); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1879 else |
15823 | 1880 b = (PurpleBuddy *)node; |
1881 | |
1882 prpl = purple_find_prpl(purple_account_get_protocol_id(b->account)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1883 if (prpl != NULL) |
15823 | 1884 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1885 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1886 if (prpl && prpl_info->get_info) |
17275
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17139
diff
changeset
|
1887 pidgin_retrieve_user_info(b->account->gc, b->name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1888 handled = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1889 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1890 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1891 #if (1) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1892 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1893 * This code only exists because GTK+ doesn't work. If we return |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1894 * FALSE here, as would be normal the event propoagates down and |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1895 * somehow gets interpreted as the start of a drag event. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1896 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1897 * Um, isn't it _normal_ to return TRUE here? Since the event |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1898 * was handled? --Mark |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1899 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1900 if(handled) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1901 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1902 gtk_tree_selection_select_path(sel, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1903 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1904 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1905 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1906 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1907 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1908 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1909 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1910 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1911 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1912 static gboolean |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1913 pidgin_blist_popup_menu_cb(GtkWidget *tv, void *user_data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1914 { |
15823 | 1915 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1916 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1917 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1918 GtkTreeSelection *sel; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1919 gboolean handled = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1920 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1921 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1922 if (!gtk_tree_selection_get_selected(sel, NULL, &iter)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1923 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1924 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1925 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1926 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1927 &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1928 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1929 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1930 /* Shift+F10 draws a context menu */ |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1931 handled = pidgin_blist_show_context_menu(node, pidgin_treeview_popup_menu_position_func, tv, 0, GDK_CURRENT_TIME); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1932 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1933 return handled; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1934 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1935 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1936 static void pidgin_blist_buddy_details_cb(gpointer data, guint action, GtkWidget *item) |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1937 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1938 pidgin_set_cursor(gtkblist->window, GDK_WATCH); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1939 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
1940 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1941 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1942 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1943 pidgin_clear_cursor(gtkblist->window); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1944 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1945 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1946 static void pidgin_blist_show_idle_time_cb(gpointer data, guint action, GtkWidget *item) |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1947 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1948 pidgin_set_cursor(gtkblist->window, GDK_WATCH); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1949 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
1950 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1951 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1952 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1953 pidgin_clear_cursor(gtkblist->window); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1954 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1955 |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
1956 static void pidgin_blist_show_protocol_icons_cb(gpointer data, guint action, GtkWidget *item) |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
1957 { |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
1958 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_protocol_icons", |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
1959 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))); |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
1960 } |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
1961 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1962 static void pidgin_blist_show_empty_groups_cb(gpointer data, guint action, GtkWidget *item) |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1963 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1964 pidgin_set_cursor(gtkblist->window, GDK_WATCH); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1965 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
1966 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1967 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1968 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1969 pidgin_clear_cursor(gtkblist->window); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1970 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1971 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1972 static void pidgin_blist_edit_mode_cb(gpointer callback_data, guint callback_action, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1973 GtkWidget *checkitem) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1974 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1975 pidgin_set_cursor(gtkblist->window, GDK_WATCH); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1976 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
1977 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1978 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(checkitem))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1979 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1980 pidgin_clear_cursor(gtkblist->window); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1981 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1982 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
1983 static void pidgin_blist_mute_sounds_cb(gpointer data, guint action, GtkWidget *item) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1984 { |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
1985 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", GTK_CHECK_MENU_ITEM(item)->active); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1986 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1987 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1988 static void |
15823 | 1989 pidgin_blist_mute_pref_cb(const char *name, PurplePrefType type, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1990 gconstpointer value, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1991 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1992 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(gtkblist->ift, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1993 N_("/Tools/Mute Sounds"))), (gboolean)GPOINTER_TO_INT(value)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1994 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1995 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1996 static void |
15823 | 1997 pidgin_blist_sound_method_pref_cb(const char *name, PurplePrefType type, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1998 gconstpointer value, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1999 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2000 gboolean sensitive = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2001 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2002 if(!strcmp(value, "none")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2003 sensitive = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2004 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2005 gtk_widget_set_sensitive(gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Mute Sounds")), sensitive); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2006 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2007 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2008 static void |
15823 | 2009 add_buddies_from_vcard(const char *prpl_id, PurpleGroup *group, GList *list, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2010 const char *alias) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2011 { |
18063
926ccb104da0
disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents:
18058
diff
changeset
|
2012 GList *l; |
15823 | 2013 PurpleAccount *account = NULL; |
2014 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2015 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2016 if (list == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2017 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2018 |
15823 | 2019 for (l = purple_connections_get_all(); l != NULL; l = l->next) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2020 { |
15823 | 2021 gc = (PurpleConnection *)l->data; |
2022 account = purple_connection_get_account(gc); | |
2023 | |
2024 if (!strcmp(purple_account_get_protocol_id(account), prpl_id)) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2025 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2026 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2027 account = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2028 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2029 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2030 if (account != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2031 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2032 for (l = list; l != NULL; l = l->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2033 { |
15823 | 2034 purple_blist_request_add_buddy(account, l->data, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2035 (group ? group->name : NULL), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2036 alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2037 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2038 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2039 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2040 g_list_foreach(list, (GFunc)g_free, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2041 g_list_free(list); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2042 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2043 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2044 static gboolean |
15823 | 2045 parse_vcard(const char *vcard, PurpleGroup *group) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2046 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2047 char *temp_vcard; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2048 char *s, *c; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2049 char *alias = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2050 GList *aims = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2051 GList *icqs = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2052 GList *yahoos = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2053 GList *msns = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2054 GList *jabbers = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2055 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2056 s = temp_vcard = g_strdup(vcard); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2057 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2058 while (*s != '\0' && strncmp(s, "END:vCard", strlen("END:vCard"))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2059 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2060 char *field, *value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2061 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2062 field = s; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2063 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2064 /* Grab the field */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2065 while (*s != '\r' && *s != '\n' && *s != '\0' && *s != ':') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2066 s++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2067 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2068 if (*s == '\r') s++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2069 if (*s == '\n') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2070 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2071 s++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2072 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2073 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2074 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2075 if (*s != '\0') *s++ = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2076 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2077 if ((c = strchr(field, ';')) != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2078 *c = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2079 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2080 /* Proceed to the end of the line */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2081 value = s; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2082 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2083 while (*s != '\r' && *s != '\n' && *s != '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2084 s++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2085 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2086 if (*s == '\r') *s++ = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2087 if (*s == '\n') *s++ = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2088 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2089 /* We only want to worry about a few fields here. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2090 if (!strcmp(field, "FN")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2091 alias = g_strdup(value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2092 else if (!strcmp(field, "X-AIM") || !strcmp(field, "X-ICQ") || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2093 !strcmp(field, "X-YAHOO") || !strcmp(field, "X-MSN") || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2094 !strcmp(field, "X-JABBER")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2095 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2096 char **values = g_strsplit(value, ":", 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2097 char **im; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2098 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2099 for (im = values; *im != NULL; im++) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2100 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2101 if (!strcmp(field, "X-AIM")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2102 aims = g_list_append(aims, g_strdup(*im)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2103 else if (!strcmp(field, "X-ICQ")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2104 icqs = g_list_append(icqs, g_strdup(*im)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2105 else if (!strcmp(field, "X-YAHOO")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2106 yahoos = g_list_append(yahoos, g_strdup(*im)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2107 else if (!strcmp(field, "X-MSN")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2108 msns = g_list_append(msns, g_strdup(*im)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2109 else if (!strcmp(field, "X-JABBER")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2110 jabbers = g_list_append(jabbers, g_strdup(*im)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2111 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2112 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2113 g_strfreev(values); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2114 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2115 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2116 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2117 g_free(temp_vcard); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2118 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2119 if (aims == NULL && icqs == NULL && yahoos == NULL && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2120 msns == NULL && jabbers == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2121 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2122 g_free(alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2123 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2124 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2125 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2126 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2127 add_buddies_from_vcard("prpl-oscar", group, aims, alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2128 add_buddies_from_vcard("prpl-oscar", group, icqs, alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2129 add_buddies_from_vcard("prpl-yahoo", group, yahoos, alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2130 add_buddies_from_vcard("prpl-msn", group, msns, alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2131 add_buddies_from_vcard("prpl-jabber", group, jabbers, alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2132 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2133 g_free(alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2134 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2135 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2136 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2137 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2138 #ifdef _WIN32 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
2139 static void pidgin_blist_drag_begin(GtkWidget *widget, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2140 GdkDragContext *drag_context, gpointer user_data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2141 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
2142 pidgin_blist_tooltip_destroy(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2143 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2144 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2145 /* Unhook the tooltip-timeout since we don't want a tooltip |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2146 * to appear and obscure the dragging operation. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2147 * This is a workaround for GTK+ bug 107320. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2148 if (gtkblist->timeout) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2149 g_source_remove(gtkblist->timeout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2150 gtkblist->timeout = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2151 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2152 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2153 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2154 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
2155 static void pidgin_blist_drag_data_get_cb(GtkWidget *widget, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2156 GdkDragContext *dc, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2157 GtkSelectionData *data, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2158 guint info, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2159 guint time, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2160 gpointer null) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2161 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2162 |
15823 | 2163 if (data->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2164 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2165 GtkTreeRowReference *ref = g_object_get_data(G_OBJECT(dc), "gtk-tree-view-source-row"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2166 GtkTreePath *sourcerow = gtk_tree_row_reference_get_path(ref); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2167 GtkTreeIter iter; |
15823 | 2168 PurpleBlistNode *node = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2169 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2170 if(!sourcerow) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2171 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2172 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, sourcerow); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2173 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2174 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2175 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2176 gtk_selection_data_set (data, |
15823 | 2177 gdk_atom_intern ("PURPLE_BLIST_NODE", FALSE), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2178 8, /* bits */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2179 (void*)&node, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2180 sizeof (node)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2181 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2182 gtk_tree_path_free(sourcerow); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2183 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2184 else if (data->target == gdk_atom_intern("application/x-im-contact", FALSE)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2185 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2186 GtkTreeRowReference *ref; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2187 GtkTreePath *sourcerow; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2188 GtkTreeIter iter; |
15823 | 2189 PurpleBlistNode *node = NULL; |
2190 PurpleBuddy *buddy; | |
2191 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2192 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2193 GString *str; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2194 const char *protocol; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2195 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2196 ref = g_object_get_data(G_OBJECT(dc), "gtk-tree-view-source-row"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2197 sourcerow = gtk_tree_row_reference_get_path(ref); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2198 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2199 if (!sourcerow) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2200 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2201 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2202 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2203 sourcerow); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2204 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2205 gtk_tree_model_get_value(GTK_TREE_MODEL(gtkblist->treemodel), &iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2206 NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2207 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2208 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2209 |
15823 | 2210 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2211 { |
15823 | 2212 buddy = purple_contact_get_priority_buddy((PurpleContact *)node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2213 } |
15823 | 2214 else if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2215 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2216 gtk_tree_path_free(sourcerow); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2217 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2218 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2219 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2220 { |
15823 | 2221 buddy = (PurpleBuddy *)node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2222 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2223 |
15823 | 2224 gc = purple_account_get_connection(buddy->account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2225 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2226 if (gc == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2227 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2228 gtk_tree_path_free(sourcerow); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2229 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2230 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2231 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2232 protocol = |
15823 | 2233 PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->list_icon(buddy->account, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2234 buddy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2235 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2236 str = g_string_new(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2237 g_string_printf(str, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2238 "MIME-Version: 1.0\r\n" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2239 "Content-Type: application/x-im-contact\r\n" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2240 "X-IM-Protocol: %s\r\n" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2241 "X-IM-Username: %s\r\n", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2242 protocol, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2243 buddy->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2244 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2245 if (buddy->alias != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2246 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2247 g_string_append_printf(str, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2248 "X-IM-Alias: %s\r\n", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2249 buddy->alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2250 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2251 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2252 g_string_append(str, "\r\n"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2253 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2254 gtk_selection_data_set(data, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2255 gdk_atom_intern("application/x-im-contact", FALSE), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2256 8, /* bits */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2257 (const guchar *)str->str, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2258 strlen(str->str) + 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2259 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2260 g_string_free(str, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2261 gtk_tree_path_free(sourcerow); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2262 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2263 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2264 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
2265 static void pidgin_blist_drag_data_rcv_cb(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2266 GtkSelectionData *sd, guint info, guint t) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2267 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2268 if (gtkblist->drag_timeout) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2269 g_source_remove(gtkblist->drag_timeout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2270 gtkblist->drag_timeout = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2271 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2272 |
15823 | 2273 if (sd->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE) && sd->data) { |
2274 PurpleBlistNode *n = NULL; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2275 GtkTreePath *path = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2276 GtkTreeViewDropPosition position; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2277 memcpy(&n, sd->data, sizeof(n)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2278 if(gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget), x, y, &path, &position)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2279 /* if we're here, I think it means the drop is ok */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2280 GtkTreeIter iter; |
15823 | 2281 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2282 GValue val; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
2283 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2284 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2285 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2286 &iter, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2287 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2288 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2289 &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2290 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2291 gtknode = node->ui_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2292 |
15823 | 2293 if (PURPLE_BLIST_NODE_IS_CONTACT(n)) { |
2294 PurpleContact *c = (PurpleContact*)n; | |
2295 if (PURPLE_BLIST_NODE_IS_CONTACT(node) && gtknode->contact_expanded) { | |
2296 purple_blist_merge_contact(c, node); | |
2297 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || | |
2298 PURPLE_BLIST_NODE_IS_CHAT(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2299 switch(position) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2300 case GTK_TREE_VIEW_DROP_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2301 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: |
15823 | 2302 purple_blist_add_contact(c, (PurpleGroup*)node->parent, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2303 node); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2304 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2305 case GTK_TREE_VIEW_DROP_BEFORE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2306 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: |
15823 | 2307 purple_blist_add_contact(c, (PurpleGroup*)node->parent, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2308 node->prev); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2309 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2310 } |
15823 | 2311 } else if(PURPLE_BLIST_NODE_IS_GROUP(node)) { |
2312 purple_blist_add_contact(c, (PurpleGroup*)node, NULL); | |
2313 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { | |
2314 purple_blist_merge_contact(c, node); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2315 } |
15823 | 2316 } else if (PURPLE_BLIST_NODE_IS_BUDDY(n)) { |
2317 PurpleBuddy *b = (PurpleBuddy*)n; | |
2318 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2319 switch(position) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2320 case GTK_TREE_VIEW_DROP_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2321 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: |
15823 | 2322 purple_blist_add_buddy(b, (PurpleContact*)node->parent, |
2323 (PurpleGroup*)node->parent->parent, node); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2324 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2325 case GTK_TREE_VIEW_DROP_BEFORE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2326 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: |
15823 | 2327 purple_blist_add_buddy(b, (PurpleContact*)node->parent, |
2328 (PurpleGroup*)node->parent->parent, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2329 node->prev); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2330 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2331 } |
15823 | 2332 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) { |
2333 purple_blist_add_buddy(b, NULL, (PurpleGroup*)node->parent, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2334 NULL); |
15823 | 2335 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
2336 purple_blist_add_buddy(b, NULL, (PurpleGroup*)node, NULL); | |
2337 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2338 if(gtknode->contact_expanded) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2339 switch(position) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2340 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2341 case GTK_TREE_VIEW_DROP_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2342 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: |
15823 | 2343 purple_blist_add_buddy(b, (PurpleContact*)node, |
2344 (PurpleGroup*)node->parent, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2345 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2346 case GTK_TREE_VIEW_DROP_BEFORE: |
15823 | 2347 purple_blist_add_buddy(b, NULL, |
2348 (PurpleGroup*)node->parent, node->prev); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2349 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2350 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2351 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2352 switch(position) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2353 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2354 case GTK_TREE_VIEW_DROP_AFTER: |
15823 | 2355 purple_blist_add_buddy(b, NULL, |
2356 (PurpleGroup*)node->parent, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2357 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2358 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2359 case GTK_TREE_VIEW_DROP_BEFORE: |
15823 | 2360 purple_blist_add_buddy(b, NULL, |
2361 (PurpleGroup*)node->parent, node->prev); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2362 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2363 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2364 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2365 } |
15823 | 2366 } else if (PURPLE_BLIST_NODE_IS_CHAT(n)) { |
2367 PurpleChat *chat = (PurpleChat *)n; | |
2368 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2369 switch(position) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2370 case GTK_TREE_VIEW_DROP_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2371 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2372 case GTK_TREE_VIEW_DROP_BEFORE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2373 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: |
15823 | 2374 purple_blist_add_chat(chat, |
2375 (PurpleGroup*)node->parent->parent, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2376 node->parent); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2377 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2378 } |
15823 | 2379 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node) || |
2380 PURPLE_BLIST_NODE_IS_CHAT(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2381 switch(position) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2382 case GTK_TREE_VIEW_DROP_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2383 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: |
15823 | 2384 purple_blist_add_chat(chat, (PurpleGroup*)node->parent, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2385 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2386 case GTK_TREE_VIEW_DROP_BEFORE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2387 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: |
15823 | 2388 purple_blist_add_chat(chat, (PurpleGroup*)node->parent, node->prev); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2389 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2390 } |
15823 | 2391 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
2392 purple_blist_add_chat(chat, (PurpleGroup*)node, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2393 } |
15823 | 2394 } else if (PURPLE_BLIST_NODE_IS_GROUP(n)) { |
2395 PurpleGroup *g = (PurpleGroup*)n; | |
2396 if (PURPLE_BLIST_NODE_IS_GROUP(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2397 switch (position) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2398 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2399 case GTK_TREE_VIEW_DROP_AFTER: |
15823 | 2400 purple_blist_add_group(g, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2401 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2402 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2403 case GTK_TREE_VIEW_DROP_BEFORE: |
15823 | 2404 purple_blist_add_group(g, node->prev); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2405 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2406 } |
15823 | 2407 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
2408 purple_blist_add_group(g, node->parent->parent); | |
2409 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node) || | |
2410 PURPLE_BLIST_NODE_IS_CHAT(node)) { | |
2411 purple_blist_add_group(g, node->parent); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2412 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2413 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2414 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2415 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2416 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2417 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2418 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2419 else if (sd->target == gdk_atom_intern("application/x-im-contact", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2420 FALSE) && sd->data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2421 { |
15823 | 2422 PurpleGroup *group = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2423 GtkTreePath *path = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2424 GtkTreeViewDropPosition position; |
15823 | 2425 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2426 char *protocol = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2427 char *username = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2428 char *alias = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2429 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2430 if (gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2431 x, y, &path, &position)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2432 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2433 GtkTreeIter iter; |
15823 | 2434 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2435 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2436 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2437 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2438 &iter, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2439 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2440 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2441 &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2442 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2443 |
15823 | 2444 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2445 { |
15823 | 2446 group = (PurpleGroup *)node->parent->parent; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2447 } |
15823 | 2448 else if (PURPLE_BLIST_NODE_IS_CHAT(node) || |
2449 PURPLE_BLIST_NODE_IS_CONTACT(node)) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2450 { |
15823 | 2451 group = (PurpleGroup *)node->parent; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2452 } |
15823 | 2453 else if (PURPLE_BLIST_NODE_IS_GROUP(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2454 { |
15823 | 2455 group = (PurpleGroup *)node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2456 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2457 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2458 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
2459 if (pidgin_parse_x_im_contact((const char *)sd->data, FALSE, &account, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2460 &protocol, &username, &alias)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2461 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2462 if (account == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2463 { |
15823 | 2464 purple_notify_error(NULL, NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2465 _("You are not currently signed on with an account that " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2466 "can add that buddy."), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2467 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2468 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2469 { |
15823 | 2470 purple_blist_request_add_buddy(account, username, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2471 (group ? group->name : NULL), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2472 alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2473 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2474 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2475 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2476 g_free(username); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2477 g_free(protocol); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2478 g_free(alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2479 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2480 if (path != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2481 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2482 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2483 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2484 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2485 else if (sd->target == gdk_atom_intern("text/x-vcard", FALSE) && sd->data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2486 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2487 gboolean result; |
15823 | 2488 PurpleGroup *group = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2489 GtkTreePath *path = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2490 GtkTreeViewDropPosition position; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2491 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2492 if (gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2493 x, y, &path, &position)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2494 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2495 GtkTreeIter iter; |
15823 | 2496 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2497 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2498 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2499 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2500 &iter, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2501 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2502 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2503 &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2504 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2505 |
15823 | 2506 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2507 { |
15823 | 2508 group = (PurpleGroup *)node->parent->parent; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2509 } |
15823 | 2510 else if (PURPLE_BLIST_NODE_IS_CHAT(node) || |
2511 PURPLE_BLIST_NODE_IS_CONTACT(node)) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2512 { |
15823 | 2513 group = (PurpleGroup *)node->parent; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2514 } |
15823 | 2515 else if (PURPLE_BLIST_NODE_IS_GROUP(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2516 { |
15823 | 2517 group = (PurpleGroup *)node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2518 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2519 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2520 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2521 result = parse_vcard((const gchar *)sd->data, group); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2522 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2523 gtk_drag_finish(dc, result, (dc->action == GDK_ACTION_MOVE), t); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2524 } else if (sd->target == gdk_atom_intern("text/uri-list", FALSE) && sd->data) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2525 GtkTreePath *path = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2526 GtkTreeViewDropPosition position; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2527 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2528 if (gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2529 x, y, &path, &position)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2530 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2531 GtkTreeIter iter; |
15823 | 2532 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2533 GValue val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2534 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2535 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2536 &iter, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2537 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2538 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2539 &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2540 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2541 |
15823 | 2542 if (PURPLE_BLIST_NODE_IS_BUDDY(node) || PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
25318
0e08c847517d
Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@wiktel.com>
parents:
25313
diff
changeset
|
2543 PurpleBuddy *b = PURPLE_BLIST_NODE_IS_BUDDY(node) ? PURPLE_BUDDY(node) : purple_contact_get_priority_buddy(PURPLE_CONTACT(node)); |
15507 | 2544 pidgin_dnd_file_manage(sd, b->account, b->name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2545 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2546 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2547 gtk_drag_finish(dc, FALSE, FALSE, t); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2548 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2549 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2550 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2551 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2552 |
15491
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2553 /* Altered from do_colorshift in gnome-panel */ |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2554 static void |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2555 do_alphashift (GdkPixbuf *dest, GdkPixbuf *src, int shift) |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2556 { |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2557 gint i, j; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2558 gint width, height, has_alpha, srcrowstride, destrowstride; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2559 guchar *target_pixels; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2560 guchar *original_pixels; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2561 guchar *pixsrc; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2562 guchar *pixdest; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2563 int val; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2564 guchar a; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2565 |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2566 has_alpha = gdk_pixbuf_get_has_alpha (src); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2567 if (!has_alpha) |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2568 return; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2569 |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2570 width = gdk_pixbuf_get_width (src); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2571 height = gdk_pixbuf_get_height (src); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2572 srcrowstride = gdk_pixbuf_get_rowstride (src); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2573 destrowstride = gdk_pixbuf_get_rowstride (dest); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2574 target_pixels = gdk_pixbuf_get_pixels (dest); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2575 original_pixels = gdk_pixbuf_get_pixels (src); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2576 |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2577 for (i = 0; i < height; i++) { |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2578 pixdest = target_pixels + i*destrowstride; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2579 pixsrc = original_pixels + i*srcrowstride; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2580 for (j = 0; j < width; j++) { |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2581 *(pixdest++) = *(pixsrc++); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2582 *(pixdest++) = *(pixsrc++); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2583 *(pixdest++) = *(pixsrc++); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2584 a = *(pixsrc++); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2585 val = a - shift; |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2586 *(pixdest++) = CLAMP(val, 0, 255); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2587 } |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2588 } |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2589 } |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2590 |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
2591 |
15823 | 2592 static GdkPixbuf *pidgin_blist_get_buddy_icon(PurpleBlistNode *node, |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2593 gboolean scaled, gboolean greyed) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2594 { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2595 gsize len; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2596 GdkPixbufLoader *loader; |
15823 | 2597 PurpleBuddy *buddy = NULL; |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2598 PurpleGroup *group = NULL; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2599 const guchar *data = NULL; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2600 GdkPixbuf *buf, *ret = NULL; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2601 PurpleBuddyIcon *icon = NULL; |
15823 | 2602 PurpleAccount *account = NULL; |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2603 PurpleContact *contact = NULL; |
16375
391a79778f89
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@wiktel.com>
parents:
16275
diff
changeset
|
2604 PurpleStoredImage *custom_img; |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2605 PurplePluginProtocolInfo *prpl_info = NULL; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2606 gint orig_width, orig_height, scale_width, scale_height; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2607 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2608 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
15823 | 2609 buddy = purple_contact_get_priority_buddy((PurpleContact*)node); |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2610 contact = (PurpleContact*)node; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2611 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
15823 | 2612 buddy = (PurpleBuddy*)node; |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2613 contact = purple_buddy_get_contact(buddy); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2614 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2615 group = (PurpleGroup*)node; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2616 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2617 /* We don't need to do anything here. We just need to not fall |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2618 * into the else block and return. */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2619 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2620 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2621 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2622 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2623 if (buddy) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2624 account = purple_buddy_get_account(buddy); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2625 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2626 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2627 if(account && account->gc) { |
15823 | 2628 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(account->gc->prpl); |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2629 } |
15423
051a5c4f0917
this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents:
15418
diff
changeset
|
2630 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2631 #if 0 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
2632 if (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons")) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2633 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2634 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2635 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2636 /* If we have a contact then this is either a contact or a buddy and |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2637 * we want to fetch the custom icon for the contact. If we don't have |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2638 * a contact then this is a group or some other type of node and we |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2639 * want to use that directly. */ |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2640 if (contact) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2641 custom_img = purple_buddy_icons_node_find_custom_icon((PurpleBlistNode*)contact); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2642 } else { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2643 custom_img = purple_buddy_icons_node_find_custom_icon(node); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2644 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2645 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2646 if (custom_img) { |
16375
391a79778f89
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@wiktel.com>
parents:
16275
diff
changeset
|
2647 data = purple_imgstore_get_data(custom_img); |
391a79778f89
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@wiktel.com>
parents:
16275
diff
changeset
|
2648 len = purple_imgstore_get_size(custom_img); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2649 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2650 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2651 if (data == NULL) { |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2652 if (buddy) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2653 /* Not sure I like this...*/ |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2654 if (!(icon = purple_buddy_icons_find(buddy->account, buddy->name))) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2655 return NULL; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2656 data = purple_buddy_icon_get_data(icon, &len); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2657 } |
16564
26fb9b308cc1
This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@wiktel.com>
parents:
16483
diff
changeset
|
2658 |
26fb9b308cc1
This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@wiktel.com>
parents:
16483
diff
changeset
|
2659 if(data == NULL) |
26fb9b308cc1
This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@wiktel.com>
parents:
16483
diff
changeset
|
2660 return NULL; |
26fb9b308cc1
This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@wiktel.com>
parents:
16483
diff
changeset
|
2661 } |
15423
051a5c4f0917
this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents:
15418
diff
changeset
|
2662 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2663 loader = gdk_pixbuf_loader_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2664 gdk_pixbuf_loader_write(loader, data, len, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2665 gdk_pixbuf_loader_close(loader, NULL); |
16383
05033ae856b2
Fix the memory leaking and improper calls to ref_filename(). Also, remove some debugging code.
Richard Laager <rlaager@wiktel.com>
parents:
16381
diff
changeset
|
2666 |
05033ae856b2
Fix the memory leaking and improper calls to ref_filename(). Also, remove some debugging code.
Richard Laager <rlaager@wiktel.com>
parents:
16381
diff
changeset
|
2667 purple_imgstore_unref(custom_img); |
16828
56823a55581a
Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@wiktel.com>
parents:
16777
diff
changeset
|
2668 purple_buddy_icon_unref(icon); |
16383
05033ae856b2
Fix the memory leaking and improper calls to ref_filename(). Also, remove some debugging code.
Richard Laager <rlaager@wiktel.com>
parents:
16381
diff
changeset
|
2669 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2670 buf = gdk_pixbuf_loader_get_pixbuf(loader); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2671 if (buf) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2672 g_object_ref(G_OBJECT(buf)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2673 g_object_unref(G_OBJECT(loader)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2674 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2675 if (!buf) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2676 return NULL; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2677 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2678 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2679 if (greyed) { |
23160
85f567c95af1
Buddy icons in the buddy list should not default to being marked idle. Thanks
Etan Reisner <pidgin@unreliablesource.net>
parents:
23158
diff
changeset
|
2680 gboolean offline = FALSE, idle = FALSE; |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2681 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2682 if (buddy) { |
15823 | 2683 PurplePresence *presence = purple_buddy_get_presence(buddy); |
2684 if (!PURPLE_BUDDY_IS_ONLINE(buddy)) | |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2685 offline = TRUE; |
15823 | 2686 if (purple_presence_is_idle(presence)) |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2687 idle = TRUE; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2688 } else if (group) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2689 if (purple_blist_get_group_online_count(group) == 0) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2690 offline = TRUE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2691 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2692 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2693 if (offline) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2694 gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.0, FALSE); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2695 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2696 if (idle) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2697 gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.25, FALSE); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2698 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2699 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2700 /* I'd use the pidgin_buddy_icon_get_scale_size() thing, but it won't |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2701 * tell me the original size, which I need for scaling purposes. */ |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2702 scale_width = orig_width = gdk_pixbuf_get_width(buf); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2703 scale_height = orig_height = gdk_pixbuf_get_height(buf); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2704 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2705 if (prpl_info && prpl_info->icon_spec.scale_rules & PURPLE_ICON_SCALE_DISPLAY) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2706 purple_buddy_icon_get_scale_size(&prpl_info->icon_spec, &scale_width, &scale_height); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2707 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2708 if (scaled || scale_height > 200 || scale_width > 200) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2709 GdkPixbuf *tmpbuf; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2710 float scale_size = scaled ? 32.0 : 200.0; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2711 if(scale_height > scale_width) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2712 scale_width = scale_size * (double)scale_width / (double)scale_height; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2713 scale_height = scale_size; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2714 } else { |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2715 scale_height = scale_size * (double)scale_height / (double)scale_width; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2716 scale_width = scale_size; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2717 } |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2718 /* Scale & round before making square, so rectangular (but |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2719 * non-square) images get rounded corners too. */ |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2720 tmpbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, scale_width, scale_height); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2721 gdk_pixbuf_fill(tmpbuf, 0x00000000); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2722 gdk_pixbuf_scale(buf, tmpbuf, 0, 0, scale_width, scale_height, 0, 0, (double)scale_width/(double)orig_width, (double)scale_height/(double)orig_height, GDK_INTERP_BILINEAR); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2723 if (pidgin_gdk_pixbuf_is_opaque(tmpbuf)) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2724 pidgin_gdk_pixbuf_make_round(tmpbuf); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2725 ret = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, scale_size, scale_size); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2726 gdk_pixbuf_fill(ret, 0x00000000); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2727 gdk_pixbuf_copy_area(tmpbuf, 0, 0, scale_width, scale_height, ret, (scale_size-scale_width)/2, (scale_size-scale_height)/2); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2728 g_object_unref(G_OBJECT(tmpbuf)); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2729 } else { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2730 ret = gdk_pixbuf_scale_simple(buf,scale_width,scale_height, GDK_INTERP_BILINEAR); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2731 } |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2732 g_object_unref(G_OBJECT(buf)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2733 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2734 return ret; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2735 } |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
2736 |
15442 | 2737 /* # - Status Icon |
2738 * P - Protocol Icon | |
2739 * A - Buddy Icon | |
2740 * [ - SMALL_SPACE | |
2741 * = - LARGE_SPACE | |
2742 * +--- STATUS_SIZE +--- td->avatar_width | |
2743 * | +-- td->name_width | | |
2744 * +----+ +-------+ +---------+ | |
2745 * | | | | | | | |
2746 * +-------------------------------------------+ | |
2747 * | [ = [ |--- TOOLTIP_BORDER | |
2748 *name_height --+-| ######[BuddyName = PP [ AAAAAAAAAAA |--+ | |
2749 * | | ######[ = PP [ AAAAAAAAAAA | | | |
2750 * STATUS SIZE -| | ######[[[[[[[[[[[[[[[[[[[[[ AAAAAAAAAAA | | | |
2751 * +--+-| ######[Account: So-and-so [ AAAAAAAAAAA | |-- td->avatar_height | |
2752 * | | [Idle: 4h 15m [ AAAAAAAAAAA | | | |
2753 * height --+ | [Foo: Bar, Baz [ AAAAAAAAAAA | | | |
2754 * | | [Status: Awesome [ AAAAAAAAAAA |--+ | |
2755 * +----| [Stop: Hammer Time [ | | |
2756 * | [ [ |--- TOOLTIP_BORDER | |
2757 * +-------------------------------------------+ | |
2758 * | | | | | |
2759 * | +----------------+ | | |
2760 * | | | | |
2761 * | +-- td->width | | |
2762 * | | | |
2763 * +---- TOOLTIP_BORDER +---- TOOLTIP_BORDER | |
2764 * | |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
2765 * |
15442 | 2766 */ |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
2767 #define STATUS_SIZE 16 |
15442 | 2768 #define TOOLTIP_BORDER 12 |
2769 #define SMALL_SPACE 6 | |
2770 #define LARGE_SPACE 12 | |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
2771 #define PRPL_SIZE 16 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2772 struct tooltip_data { |
15448 | 2773 PangoLayout *layout; |
15442 | 2774 PangoLayout *name_layout; |
2775 GdkPixbuf *prpl_icon; | |
15448 | 2776 GdkPixbuf *status_icon; |
2777 GdkPixbuf *avatar; | |
2778 gboolean avatar_is_prpl_icon; | |
15442 | 2779 int avatar_width; |
15448 | 2780 int avatar_height; |
15442 | 2781 int name_height; |
2782 int name_width; | |
15448 | 2783 int width; |
2784 int height; | |
23000
d678dbea81a4
Reduce the enormous padding in the group tooltip. People will hopefully dislike it less now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22976
diff
changeset
|
2785 int padding; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2786 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2787 |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2788 static PangoLayout * create_pango_layout(const char *markup, int *width, int *height) |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2789 { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2790 PangoLayout *layout; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2791 int w, h; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2792 |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2793 layout = gtk_widget_create_pango_layout(gtkblist->tipwindow, NULL); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2794 pango_layout_set_markup(layout, markup, -1); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2795 pango_layout_set_wrap(layout, PANGO_WRAP_WORD); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2796 pango_layout_set_width(layout, 300000); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2797 |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2798 pango_layout_get_size (layout, &w, &h); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2799 if (width) |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2800 *width = PANGO_PIXELS(w); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2801 if (height) |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2802 *height = PANGO_PIXELS(h); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2803 return layout; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2804 } |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2805 |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2806 static struct tooltip_data * create_tip_for_account(PurpleAccount *account) |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2807 { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2808 struct tooltip_data *td = g_new0(struct tooltip_data, 1); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2809 td->status_icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2810 /* Yes, status_icon, not prpl_icon */ |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2811 if (purple_account_is_disconnected(account)) |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2812 gdk_pixbuf_saturate_and_pixelate(td->status_icon, td->status_icon, 0.0, FALSE); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2813 td->layout = create_pango_layout(purple_account_get_username(account), &td->width, &td->height); |
23000
d678dbea81a4
Reduce the enormous padding in the group tooltip. People will hopefully dislike it less now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22976
diff
changeset
|
2814 td->padding = SMALL_SPACE; |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2815 return td; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2816 } |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2817 |
15823 | 2818 static struct tooltip_data * create_tip_for_node(PurpleBlistNode *node, gboolean full) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2819 { |
15448 | 2820 struct tooltip_data *td = g_new0(struct tooltip_data, 1); |
15823 | 2821 PurpleAccount *account = NULL; |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2822 char *tmp = NULL, *node_name = NULL, *tooltip_text = NULL; |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2823 |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2824 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
15823 | 2825 account = ((PurpleBuddy*)(node))->account; |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2826 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { |
15823 | 2827 account = ((PurpleChat*)(node))->account; |
15448 | 2828 } |
2829 | |
23000
d678dbea81a4
Reduce the enormous padding in the group tooltip. People will hopefully dislike it less now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22976
diff
changeset
|
2830 td->padding = TOOLTIP_BORDER; |
15508
94031a2b0aaa
gtkblist changes to pidgin
Sean Egan <seanegan@gmail.com>
parents:
15507
diff
changeset
|
2831 td->status_icon = pidgin_blist_get_status_icon(node, PIDGIN_STATUS_ICON_LARGE); |
16375
391a79778f89
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@wiktel.com>
parents:
16275
diff
changeset
|
2832 td->avatar = pidgin_blist_get_buddy_icon(node, !full, FALSE); |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2833 if (account != NULL) { |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2834 td->prpl_icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2835 } |
15821 | 2836 tooltip_text = pidgin_get_tooltip_text(node, full); |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2837 if (tooltip_text && *tooltip_text) { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2838 td->layout = create_pango_layout(tooltip_text, &td->width, &td->height); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2839 } |
15442 | 2840 |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2841 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
15823 | 2842 tmp = g_markup_escape_text(purple_buddy_get_name((PurpleBuddy*)node), -1); |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2843 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { |
15823 | 2844 tmp = g_markup_escape_text(purple_chat_get_name((PurpleChat*)node), -1); |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2845 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2846 tmp = g_markup_escape_text(purple_group_get_name((PurpleGroup*)node), -1); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2847 } else { |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2848 /* I don't believe this can happen currently, I think |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2849 * everything that calls this function checks for one of the |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2850 * above node types first. */ |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2851 tmp = g_strdup(_("Unknown node type")); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2852 } |
22936
5a359f6666c2
Fix a NULL printf. Fixes #5387.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22789
diff
changeset
|
2853 node_name = g_strdup_printf("<span size='x-large' weight='bold'>%s</span>", |
5a359f6666c2
Fix a NULL printf. Fixes #5387.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22789
diff
changeset
|
2854 tmp ? tmp : ""); |
15921
6a5089fafd19
Fix a small tooltip-related memleak
Mark Doliner <mark@kingant.net>
parents:
15871
diff
changeset
|
2855 g_free(tmp); |
15442 | 2856 |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2857 td->name_layout = create_pango_layout(node_name, &td->name_width, &td->name_height); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2858 td->name_width += SMALL_SPACE + PRPL_SIZE; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2859 td->name_height = MAX(td->name_height, PRPL_SIZE + SMALL_SPACE); |
15475 | 2860 #if 0 /* PRPL Icon as avatar */ |
15448 | 2861 if(!td->avatar && full) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
2862 td->avatar = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_LARGE); |
15442 | 2863 td->avatar_is_prpl_icon = TRUE; |
2864 } | |
15475 | 2865 #endif |
15708
c50358666110
Fix asserts when there is no buddy icon
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15632
diff
changeset
|
2866 |
c50358666110
Fix asserts when there is no buddy icon
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15632
diff
changeset
|
2867 if (td->avatar) { |
c50358666110
Fix asserts when there is no buddy icon
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15632
diff
changeset
|
2868 td->avatar_width = gdk_pixbuf_get_width(td->avatar); |
c50358666110
Fix asserts when there is no buddy icon
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15632
diff
changeset
|
2869 td->avatar_height = gdk_pixbuf_get_height(td->avatar); |
c50358666110
Fix asserts when there is no buddy icon
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15632
diff
changeset
|
2870 } |
15448 | 2871 |
15489
29e8e230d1b6
A small memory leak in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15487
diff
changeset
|
2872 g_free(node_name); |
15448 | 2873 g_free(tooltip_text); |
2874 return td; | |
15397
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
2875 } |
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
2876 |
21885
f5d961556972
Refactor some of the tooltip drawing functions. And add some pretend docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21877
diff
changeset
|
2877 static gboolean |
f5d961556972
Refactor some of the tooltip drawing functions. And add some pretend docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21877
diff
changeset
|
2878 pidgin_blist_paint_tip(GtkWidget *widget, gpointer null) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2879 { |
15448 | 2880 GtkStyle *style; |
2881 int current_height, max_width; | |
15481
62a1ebd08b74
fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents:
15480
diff
changeset
|
2882 int max_text_width; |
15487
5369a4999f1c
fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents:
15486
diff
changeset
|
2883 int max_avatar_width; |
15448 | 2884 GList *l; |
15475 | 2885 int prpl_col = 0; |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
2886 GtkTextDirection dir = gtk_widget_get_direction(widget); |
21985
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2887 int status_size = 0; |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
2888 |
15448 | 2889 if(gtkblist->tooltipdata == NULL) |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
2890 return FALSE; |
15448 | 2891 |
2892 style = gtkblist->tipwindow->style; | |
2893 | |
15481
62a1ebd08b74
fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents:
15480
diff
changeset
|
2894 max_text_width = 0; |
15487
5369a4999f1c
fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents:
15486
diff
changeset
|
2895 max_avatar_width = 0; |
15486
e9a869472b40
really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents:
15485
diff
changeset
|
2896 |
15448 | 2897 for(l = gtkblist->tooltipdata; l; l = l->next) |
2898 { | |
2899 struct tooltip_data *td = l->data; | |
15487
5369a4999f1c
fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents:
15486
diff
changeset
|
2900 |
15481
62a1ebd08b74
fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents:
15480
diff
changeset
|
2901 max_text_width = MAX(max_text_width, |
62a1ebd08b74
fix a weird tooltip rendering bug when the second buddy in a contact tooltip
Nathan Walp <nwalp@pidgin.im>
parents:
15480
diff
changeset
|
2902 MAX(td->width, td->name_width)); |
15487
5369a4999f1c
fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents:
15486
diff
changeset
|
2903 max_avatar_width = MAX(max_avatar_width, td->avatar_width); |
21985
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2904 if (td->status_icon) |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2905 status_size = STATUS_SIZE; |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2906 } |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2907 |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2908 max_width = TOOLTIP_BORDER + status_size + SMALL_SPACE + max_text_width + SMALL_SPACE + max_avatar_width + TOOLTIP_BORDER; |
15583 | 2909 if (dir == GTK_TEXT_DIR_RTL) |
2910 prpl_col = TOOLTIP_BORDER + max_avatar_width + SMALL_SPACE; | |
2911 else | |
21985
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2912 prpl_col = TOOLTIP_BORDER + status_size + SMALL_SPACE + max_text_width - PRPL_SIZE; |
15448 | 2913 |
2914 current_height = 12; | |
2915 for(l = gtkblist->tooltipdata; l; l = l->next) | |
2916 { | |
2917 struct tooltip_data *td = l->data; | |
2918 | |
15507 | 2919 if (td->avatar && pidgin_gdk_pixbuf_is_opaque(td->avatar)) |
15586
1dfa6945e13f
Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@wiktel.com>
parents:
15583
diff
changeset
|
2920 { |
15583 | 2921 if (dir == GTK_TEXT_DIR_RTL) |
2922 gtk_paint_flat_box(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, | |
2923 NULL, gtkblist->tipwindow, "tooltip", | |
2924 TOOLTIP_BORDER -1, current_height -1, td->avatar_width +2, td->avatar_height + 2); | |
2925 else | |
2926 gtk_paint_flat_box(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, | |
2927 NULL, gtkblist->tipwindow, "tooltip", | |
2928 max_width - (td->avatar_width+ TOOLTIP_BORDER)-1, | |
2929 current_height-1,td->avatar_width+2, td->avatar_height+2); | |
15586
1dfa6945e13f
Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@wiktel.com>
parents:
15583
diff
changeset
|
2930 } |
15397
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
2931 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2932 #if GTK_CHECK_VERSION(2,2,0) |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2933 if (td->status_icon) { |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2934 if (dir == GTK_TEXT_DIR_RTL) |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2935 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->status_icon, |
21985
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2936 0, 0, max_width - TOOLTIP_BORDER - status_size, current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2937 else |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2938 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->status_icon, |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2939 0, 0, TOOLTIP_BORDER, current_height, -1 , -1, GDK_RGB_DITHER_NONE, 0, 0); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2940 } |
21945
3fc5862b834a
Use the new tooltip functions to draw the tooltips in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21933
diff
changeset
|
2941 |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2942 if(td->avatar) { |
15583 | 2943 if (dir == GTK_TEXT_DIR_RTL) |
2944 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, | |
2945 td->avatar, 0, 0, TOOLTIP_BORDER, current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); | |
2946 else | |
2947 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, | |
2948 td->avatar, 0, 0, max_width - (td->avatar_width + TOOLTIP_BORDER), | |
2949 current_height, -1 , -1, GDK_RGB_DITHER_NONE, 0, 0); | |
15586
1dfa6945e13f
Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@wiktel.com>
parents:
15583
diff
changeset
|
2950 } |
1dfa6945e13f
Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@wiktel.com>
parents:
15583
diff
changeset
|
2951 |
21945
3fc5862b834a
Use the new tooltip functions to draw the tooltips in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21933
diff
changeset
|
2952 if (!td->avatar_is_prpl_icon && td->prpl_icon) |
15442 | 2953 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->prpl_icon, |
15448 | 2954 0, 0, |
15475 | 2955 prpl_col, |
15442 | 2956 current_height + ((td->name_height / 2) - (PRPL_SIZE / 2)), |
15448 | 2957 -1 , -1, GDK_RGB_DITHER_NONE, 0, 0); |
2958 | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2959 #else |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2960 if (td->status_icon) { |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2961 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); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
2962 } |
15448 | 2963 if(td->avatar) |
2964 gdk_pixbuf_render_to_drawable(td->avatar, | |
2965 GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, 0, 0, | |
15486
e9a869472b40
really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents:
15485
diff
changeset
|
2966 max_width - (td->avatar_width + TOOLTIP_BORDER), |
15448 | 2967 current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2968 #endif |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2969 if (td->name_layout) { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2970 if (dir == GTK_TEXT_DIR_RTL) { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2971 gtk_paint_layout(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE, |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2972 NULL, gtkblist->tipwindow, "tooltip", |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2973 max_width -(TOOLTIP_BORDER + status_size + SMALL_SPACE) - PANGO_PIXELS(300000), |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2974 current_height, td->name_layout); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2975 } else { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2976 gtk_paint_layout (style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE, |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2977 NULL, gtkblist->tipwindow, "tooltip", |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2978 TOOLTIP_BORDER + status_size + SMALL_SPACE, current_height, td->name_layout); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
2979 } |
15583 | 2980 } |
21985
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2981 |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2982 if (td->layout) { |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2983 if (dir != GTK_TEXT_DIR_RTL) { |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2984 gtk_paint_layout (style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE, |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2985 NULL, gtkblist->tipwindow, "tooltip", |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2986 TOOLTIP_BORDER + status_size + SMALL_SPACE, current_height + td->name_height, td->layout); |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2987 } else { |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2988 gtk_paint_layout(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE, |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2989 NULL, gtkblist->tipwindow, "tooltip", |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2990 max_width - (TOOLTIP_BORDER + status_size + SMALL_SPACE) - PANGO_PIXELS(300000), |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2991 current_height + td->name_height, |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2992 td->layout); |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
2993 } |
15583 | 2994 } |
15480
5551adcf8f97
fix overlapping in tooltips w/ large avatars
Nathan Walp <nwalp@pidgin.im>
parents:
15475
diff
changeset
|
2995 |
23000
d678dbea81a4
Reduce the enormous padding in the group tooltip. People will hopefully dislike it less now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22976
diff
changeset
|
2996 current_height += MAX(td->name_height + td->height, td->avatar_height) + td->padding; |
15448 | 2997 } |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
2998 return FALSE; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
2999 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3000 |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3001 static void |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21960
diff
changeset
|
3002 pidgin_blist_destroy_tooltip_data(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3003 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3004 while(gtkblist->tooltipdata) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3005 struct tooltip_data *td = gtkblist->tooltipdata->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3006 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3007 if(td->avatar) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3008 g_object_unref(td->avatar); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3009 if(td->status_icon) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3010 g_object_unref(td->status_icon); |
15442 | 3011 if(td->prpl_icon) |
3012 g_object_unref(td->prpl_icon); | |
21985
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
3013 if (td->layout) |
035cfd9080a6
Get rid of some wasted empty space in the tooltips for chats and groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21960
diff
changeset
|
3014 g_object_unref(td->layout); |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3015 if (td->name_layout) |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3016 g_object_unref(td->name_layout); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3017 g_free(td); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3018 gtkblist->tooltipdata = g_list_delete_link(gtkblist->tooltipdata, gtkblist->tooltipdata); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3019 } |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3020 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3021 |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3022 void pidgin_blist_tooltip_destroy() |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3023 { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3024 pidgin_blist_destroy_tooltip_data(); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3025 pidgin_tooltip_destroy(); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3026 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3027 |
24412
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3028 static void |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3029 pidgin_blist_align_tooltip(struct tooltip_data *td, GtkWidget *widget) |
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3030 { |
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3031 GtkTextDirection dir = gtk_widget_get_direction(widget); |
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3032 |
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3033 if (dir == GTK_TEXT_DIR_RTL) |
24412
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3034 { |
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3035 char* layout_name = purple_markup_strip_html(pango_layout_get_text(td->name_layout)); |
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3036 PangoDirection dir = pango_find_base_dir(layout_name, -1); |
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3037 if (dir == PANGO_DIRECTION_RTL || dir == PANGO_DIRECTION_NEUTRAL) |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3038 pango_layout_set_alignment(td->name_layout, PANGO_ALIGN_RIGHT); |
24412
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3039 g_free(layout_name); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3040 pango_layout_set_alignment(td->layout, PANGO_ALIGN_RIGHT); |
24412
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3041 } |
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3042 } |
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3043 |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3044 static gboolean |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3045 pidgin_blist_create_tooltip_for_node(GtkWidget *widget, gpointer data, int *w, int *h) |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3046 { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3047 PurpleBlistNode *node = data; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3048 int width, height; |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3049 GList *list; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3050 int max_text_width = 0; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3051 int max_avatar_width = 0; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3052 int status_size = 0; |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3053 |
21945
3fc5862b834a
Use the new tooltip functions to draw the tooltips in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21933
diff
changeset
|
3054 if (gtkblist->tooltipdata) { |
3fc5862b834a
Use the new tooltip functions to draw the tooltips in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21933
diff
changeset
|
3055 gtkblist->tipwindow = NULL; |
3fc5862b834a
Use the new tooltip functions to draw the tooltips in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21933
diff
changeset
|
3056 pidgin_blist_destroy_tooltip_data(); |
3fc5862b834a
Use the new tooltip functions to draw the tooltips in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21933
diff
changeset
|
3057 } |
3fc5862b834a
Use the new tooltip functions to draw the tooltips in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21933
diff
changeset
|
3058 |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3059 gtkblist->tipwindow = widget; |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3060 if (PURPLE_BLIST_NODE_IS_CHAT(node) || |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3061 PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3062 struct tooltip_data *td = create_tip_for_node(node, TRUE); |
24412
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3063 pidgin_blist_align_tooltip(td, gtkblist->tipwindow); |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3064 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3065 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3066 PurpleGroup *group = (PurpleGroup*)node; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3067 GSList *accounts; |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3068 struct tooltip_data *td = create_tip_for_node(node, TRUE); |
24412
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3069 pidgin_blist_align_tooltip(td, gtkblist->tipwindow); |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3070 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td); |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3071 |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3072 /* Accounts with buddies in group */ |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3073 accounts = purple_group_get_accounts(group); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3074 for (; accounts != NULL; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3075 accounts = g_slist_delete_link(accounts, accounts)) { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3076 PurpleAccount *account = accounts->data; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3077 td = create_tip_for_account(account); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3078 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3079 } |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3080 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3081 PurpleBlistNode *child; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3082 PurpleBuddy *b = purple_contact_get_priority_buddy((PurpleContact *)node); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3083 width = height = 0; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3084 |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3085 for(child = node->child; child; child = child->next) |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3086 { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3087 if(PURPLE_BLIST_NODE_IS_BUDDY(child) && buddy_is_displayable((PurpleBuddy*)child)) { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3088 struct tooltip_data *td = create_tip_for_node(child, (b == (PurpleBuddy*)child)); |
24412
558523cebd10
A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents:
24357
diff
changeset
|
3089 pidgin_blist_align_tooltip(td, gtkblist->tipwindow); |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3090 if (b == (PurpleBuddy *)child) { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3091 gtkblist->tooltipdata = g_list_prepend(gtkblist->tooltipdata, td); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3092 } else { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3093 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3094 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3095 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3096 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3097 } else { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3098 return FALSE; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3099 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3100 |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3101 height = width = 0; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3102 for (list = gtkblist->tooltipdata; list; list = list->next) { |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3103 struct tooltip_data *td = list->data; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3104 max_text_width = MAX(max_text_width, MAX(td->width, td->name_width)); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3105 max_avatar_width = MAX(max_avatar_width, td->avatar_width); |
23000
d678dbea81a4
Reduce the enormous padding in the group tooltip. People will hopefully dislike it less now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22976
diff
changeset
|
3106 height += MAX(MAX(STATUS_SIZE, td->avatar_height), td->height + td->name_height) + td->padding; |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3107 if (td->status_icon) |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3108 status_size = MAX(status_size, STATUS_SIZE); |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3109 } |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3110 height += TOOLTIP_BORDER; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3111 width = TOOLTIP_BORDER + status_size + SMALL_SPACE + max_text_width + SMALL_SPACE + max_avatar_width + TOOLTIP_BORDER; |
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3112 |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3113 if (w) |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3114 *w = width; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3115 if (h) |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3116 *h = height; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3117 |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3118 return TRUE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3119 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3120 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3121 static gboolean pidgin_blist_expand_timeout(GtkWidget *tv) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3122 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3123 GtkTreePath *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3124 GtkTreeIter iter; |
15823 | 3125 PurpleBlistNode *node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3126 GValue val; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3127 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3128 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3129 if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), gtkblist->tip_rect.x, gtkblist->tip_rect.y + (gtkblist->tip_rect.height/2), |
19363
0d31b54d885a
Calculate what buddy we're pointing at from the middle of the cell rather than the age. Fixes #1422
Sean Egan <seanegan@gmail.com>
parents:
19234
diff
changeset
|
3130 &path, NULL, NULL, NULL)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3131 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3132 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3133 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3134 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3135 node = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3136 |
15823 | 3137 if(!PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3138 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3139 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3140 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3141 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3142 gtknode = node->ui_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3143 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3144 if (!gtknode->contact_expanded) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3145 GtkTreeIter i; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3146 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3147 pidgin_blist_expand_contact_cb(NULL, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3148 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3149 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, >kblist->contact_rect); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3150 gdk_drawable_get_size(GDK_DRAWABLE(tv->window), &(gtkblist->contact_rect.width), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3151 gtkblist->mouseover_contact = node; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3152 gtk_tree_path_down (path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3153 while (gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &i, path)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3154 GdkRectangle rect; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3155 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &rect); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3156 gtkblist->contact_rect.height += rect.height; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3157 gtk_tree_path_next(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3158 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3159 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3160 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3161 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3162 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3163 |
15823 | 3164 static gboolean buddy_is_displayable(PurpleBuddy *buddy) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3165 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3166 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3167 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3168 if(!buddy) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3169 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3170 |
15823 | 3171 gtknode = ((PurpleBlistNode*)buddy)->ui_data; |
3172 | |
3173 return (purple_account_is_connected(buddy->account) && | |
3174 (purple_presence_is_online(buddy->presence) || | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3175 (gtknode && gtknode->recent_signonoff) || |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
3176 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies") || |
15823 | 3177 purple_blist_node_get_bool((PurpleBlistNode*)buddy, "show_offline"))); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3178 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3179 |
18671 | 3180 void pidgin_blist_draw_tooltip(PurpleBlistNode *node, GtkWidget *widget) |
3181 { | |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3182 pidgin_tooltip_show(widget, node, pidgin_blist_create_tooltip_for_node, pidgin_blist_paint_tip); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3183 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3184 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3185 static gboolean pidgin_blist_drag_motion_cb(GtkWidget *tv, GdkDragContext *drag_context, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3186 gint x, gint y, guint time, gpointer user_data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3187 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3188 GtkTreePath *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3189 int delay; |
17487
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3190 GdkRectangle rect; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3191 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3192 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3193 * When dragging a buddy into a contact, this is the delay before |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3194 * the contact auto-expands. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3195 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3196 delay = 900; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3197 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3198 if (gtkblist->drag_timeout) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3199 if ((y > gtkblist->tip_rect.y) && ((y - gtkblist->tip_rect.height) < gtkblist->tip_rect.y)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3200 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3201 /* We've left the cell. Remove the timeout and create a new one below */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3202 g_source_remove(gtkblist->drag_timeout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3203 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3204 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3205 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), x, y, &path, NULL, NULL, NULL); |
17487
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3206 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &rect); |
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3207 |
22313
42724bd41274
Plug some leaks caused by GtkTreePaths not being freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22299
diff
changeset
|
3208 if (path) |
42724bd41274
Plug some leaks caused by GtkTreePaths not being freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22299
diff
changeset
|
3209 gtk_tree_path_free(path); |
42724bd41274
Plug some leaks caused by GtkTreePaths not being freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22299
diff
changeset
|
3210 |
17487
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3211 /* Only autoexpand when in the middle of the cell to avoid annoying un-intended expands */ |
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3212 if (y < rect.y + (rect.height / 3) || |
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3213 y > rect.y + (2 * (rect.height /3))) |
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3214 return FALSE; |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3215 |
17487
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3216 rect.height = rect.height / 3; |
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3217 rect.y += rect.height; |
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3218 |
4b711c5c2db8
Only auto-expand buddies when the mouse is hovering over the middle third of the buddy. This prevents un-intended expanding of buddies when you're only trying to re-order. Fixes #608
Sean Egan <seanegan@gmail.com>
parents:
17433
diff
changeset
|
3219 gtkblist->tip_rect = rect; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3220 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3221 gtkblist->drag_timeout = g_timeout_add(delay, (GSourceFunc)pidgin_blist_expand_timeout, tv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3222 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3223 if (gtkblist->mouseover_contact) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3224 if ((y < gtkblist->contact_rect.y) || ((y - gtkblist->contact_rect.height) > gtkblist->contact_rect.y)) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3225 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3226 gtkblist->mouseover_contact = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3227 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3228 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3229 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3230 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3231 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3232 |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3233 static gboolean |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3234 pidgin_blist_create_tooltip(GtkWidget *widget, GtkTreePath *path, |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3235 gpointer null, int *w, int *h) |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3236 { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3237 GtkTreeIter iter; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3238 PurpleBlistNode *node; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3239 GValue val; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3240 gboolean editable = FALSE; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3241 |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3242 /* If we're editing a cell (e.g. alias editing), don't show the tooltip */ |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3243 g_object_get(G_OBJECT(gtkblist->text_rend), "editable", &editable, NULL); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3244 if (editable) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3245 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3246 |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3247 if (gtkblist->tooltipdata) { |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3248 gtkblist->tipwindow = NULL; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3249 pidgin_blist_destroy_tooltip_data(); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3250 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3251 |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3252 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3253 val.g_type = 0; |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3254 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3255 node = g_value_get_pointer(&val); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3256 return pidgin_blist_create_tooltip_for_node(widget, node, w, h); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3257 } |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3258 |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3259 static gboolean pidgin_blist_motion_cb (GtkWidget *tv, GdkEventMotion *event, gpointer null) |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
3260 { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3261 if (gtkblist->mouseover_contact) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3262 if ((event->y < gtkblist->contact_rect.y) || ((event->y - gtkblist->contact_rect.height) > gtkblist->contact_rect.y)) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3263 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3264 gtkblist->mouseover_contact = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3265 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3266 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3267 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3268 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3269 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3270 |
21912
6765b2b65d30
The event handlers need to return a gboolean. Using void callbacks can lead to unpredictable behaviour.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21890
diff
changeset
|
3271 static gboolean pidgin_blist_leave_cb (GtkWidget *w, GdkEventCrossing *e, gpointer n) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3272 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3273 if (gtkblist->timeout) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3274 g_source_remove(gtkblist->timeout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3275 gtkblist->timeout = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3276 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3277 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3278 if (gtkblist->drag_timeout) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3279 g_source_remove(gtkblist->drag_timeout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3280 gtkblist->drag_timeout = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3281 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3282 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3283 if (gtkblist->mouseover_contact && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3284 !((e->x > gtkblist->contact_rect.x) && (e->x < (gtkblist->contact_rect.x + gtkblist->contact_rect.width)) && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3285 (e->y > gtkblist->contact_rect.y) && (e->y < (gtkblist->contact_rect.y + gtkblist->contact_rect.height)))) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3286 pidgin_blist_collapse_contact_cb(NULL, gtkblist->mouseover_contact); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3287 gtkblist->mouseover_contact = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3288 } |
21912
6765b2b65d30
The event handlers need to return a gboolean. Using void callbacks can lead to unpredictable behaviour.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21890
diff
changeset
|
3289 return FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3290 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3291 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3292 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3293 toggle_debug(void) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3294 { |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
3295 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/debug/enabled", |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
3296 !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/enabled")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3297 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3298 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3299 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3300 /*************************************************** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3301 * Crap * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3302 ***************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3303 static GtkItemFactoryEntry blist_menu[] = |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3304 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3305 /* Buddies menu */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3306 { N_("/_Buddies"), NULL, NULL, 0, "<Branch>", NULL }, |
16202
0973688f4b74
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents:
16198
diff
changeset
|
3307 { N_("/Buddies/New Instant _Message..."), "<CTL>M", pidgin_dialogs_im, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW }, |
23183
373616d2e552
A simple patch from "bsd" to get the icon back for Buddies->Join a Chat.
Richard Laager <rlaager@wiktel.com>
parents:
23177
diff
changeset
|
3308 { N_("/Buddies/Join a _Chat..."), "<CTL>C", pidgin_blist_joinchat_show, 0, "<StockItem>", PIDGIN_STOCK_CHAT }, |
16202
0973688f4b74
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents:
16198
diff
changeset
|
3309 { N_("/Buddies/Get User _Info..."), "<CTL>I", pidgin_dialogs_info, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, |
0973688f4b74
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents:
16198
diff
changeset
|
3310 { N_("/Buddies/View User _Log..."), "<CTL>L", pidgin_dialogs_log, 0, "<Item>", NULL }, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3311 { "/Buddies/sep1", NULL, NULL, 0, "<Separator>", NULL }, |
20795
93674777d32f
Add an accelerator for 'Buddies -> Show'. Fixes #3298.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20793
diff
changeset
|
3312 { N_("/Buddies/Sh_ow"), NULL, NULL, 0, "<Branch>", NULL}, |
19608
0bf089a22f61
(2007-09-03 07:57:30) rlaager: In the buddy list, we now have a Show submenu with a bunch of Show X items under it. It seems to me that the Show on each item is redundant and should be removed. This would be consistent with the Sort Buddies menu, where the items finish the sentence fragment started by the submenu name.
Richard Laager <rlaager@wiktel.com>
parents:
19569
diff
changeset
|
3313 { N_("/Buddies/Show/_Offline Buddies"), NULL, pidgin_blist_edit_mode_cb, 1, "<CheckItem>", NULL }, |
0bf089a22f61
(2007-09-03 07:57:30) rlaager: In the buddy list, we now have a Show submenu with a bunch of Show X items under it. It seems to me that the Show on each item is redundant and should be removed. This would be consistent with the Sort Buddies menu, where the items finish the sentence fragment started by the submenu name.
Richard Laager <rlaager@wiktel.com>
parents:
19569
diff
changeset
|
3314 { N_("/Buddies/Show/_Empty Groups"), NULL, pidgin_blist_show_empty_groups_cb, 1, "<CheckItem>", NULL }, |
0bf089a22f61
(2007-09-03 07:57:30) rlaager: In the buddy list, we now have a Show submenu with a bunch of Show X items under it. It seems to me that the Show on each item is redundant and should be removed. This would be consistent with the Sort Buddies menu, where the items finish the sentence fragment started by the submenu name.
Richard Laager <rlaager@wiktel.com>
parents:
19569
diff
changeset
|
3315 { N_("/Buddies/Show/Buddy _Details"), NULL, pidgin_blist_buddy_details_cb, 1, "<CheckItem>", NULL }, |
0bf089a22f61
(2007-09-03 07:57:30) rlaager: In the buddy list, we now have a Show submenu with a bunch of Show X items under it. It seems to me that the Show on each item is redundant and should be removed. This would be consistent with the Sort Buddies menu, where the items finish the sentence fragment started by the submenu name.
Richard Laager <rlaager@wiktel.com>
parents:
19569
diff
changeset
|
3316 { N_("/Buddies/Show/Idle _Times"), NULL, pidgin_blist_show_idle_time_cb, 1, "<CheckItem>", NULL }, |
0bf089a22f61
(2007-09-03 07:57:30) rlaager: In the buddy list, we now have a Show submenu with a bunch of Show X items under it. It seems to me that the Show on each item is redundant and should be removed. This would be consistent with the Sort Buddies menu, where the items finish the sentence fragment started by the submenu name.
Richard Laager <rlaager@wiktel.com>
parents:
19569
diff
changeset
|
3317 { N_("/Buddies/Show/_Protocol Icons"), NULL, pidgin_blist_show_protocol_icons_cb, 1, "<CheckItem>", NULL }, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3318 { N_("/Buddies/_Sort Buddies"), NULL, NULL, 0, "<Branch>", NULL }, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3319 { "/Buddies/sep2", NULL, NULL, 0, "<Separator>", NULL }, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3320 { N_("/Buddies/_Add Buddy..."), "<CTL>B", pidgin_blist_add_buddy_cb, 0, "<StockItem>", GTK_STOCK_ADD }, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3321 { N_("/Buddies/Add C_hat..."), NULL, pidgin_blist_add_chat_cb, 0, "<StockItem>", GTK_STOCK_ADD }, |
15823 | 3322 { N_("/Buddies/Add _Group..."), NULL, purple_blist_request_add_group, 0, "<StockItem>", GTK_STOCK_ADD }, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3323 { "/Buddies/sep3", NULL, NULL, 0, "<Separator>", NULL }, |
15823 | 3324 { N_("/Buddies/_Quit"), "<CTL>Q", purple_core_quit, 0, "<StockItem>", GTK_STOCK_QUIT }, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3325 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3326 /* Accounts menu */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3327 { N_("/_Accounts"), NULL, NULL, 0, "<Branch>", NULL }, |
23309
99b4470a763e
Change "Manage" to "Manage Accounts" in the Accounts menu.
Richard Laager <rlaager@wiktel.com>
parents:
23282
diff
changeset
|
3328 { N_("/Accounts/Manage Accounts"), "<CTL>A", pidgin_accounts_window_show, 0, "<Item>", NULL }, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3329 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3330 /* Tools */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3331 { N_("/_Tools"), NULL, NULL, 0, "<Branch>", NULL }, |
21560
665e04562de0
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
3332 { N_("/Tools/Buddy _Pounces"), NULL, pidgin_pounces_manager_show, 1, "<Item>", NULL }, |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
18435
diff
changeset
|
3333 { N_("/Tools/_Certificates"), NULL, pidgin_certmgr_show, 0, "<Item>", NULL }, |
25403
f62c5b302b91
Try to improve the wording in our custom smiley manager
Mark Doliner <mark@kingant.net>
parents:
25401
diff
changeset
|
3334 { N_("/Tools/Custom Smile_ys"), "<CTL>Y", pidgin_smiley_manager_show, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SMILEY }, |
21560
665e04562de0
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
3335 { N_("/Tools/Plu_gins"), "<CTL>U", pidgin_plugin_dialog_show, 2, "<StockItem>", PIDGIN_STOCK_TOOLBAR_PLUGINS }, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3336 { N_("/Tools/Pr_eferences"), "<CTL>P", pidgin_prefs_show, 0, "<StockItem>", GTK_STOCK_PREFERENCES }, |
15553
29a03d2d2395
Remove excess menu item icon clutter, especialy where our icons made no sense. The Redo icon for Buddy Pounces?! Come on.
Sean Egan <seanegan@gmail.com>
parents:
15545
diff
changeset
|
3337 { N_("/Tools/Pr_ivacy"), NULL, pidgin_privacy_dialog_show, 0, "<Item>", NULL }, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3338 { "/Tools/sep2", NULL, NULL, 0, "<Separator>", NULL }, |
23282
62b5d52c3d66
Update File Transfer icon and use new send fie icon. Fixes #2744.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23183
diff
changeset
|
3339 { N_("/Tools/_File Transfers"), "<CTL>T", pidgin_xfer_dialog_show, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_TRANSFER }, |
15553
29a03d2d2395
Remove excess menu item icon clutter, especialy where our icons made no sense. The Redo icon for Buddy Pounces?! Come on.
Sean Egan <seanegan@gmail.com>
parents:
15545
diff
changeset
|
3340 { N_("/Tools/R_oom List"), NULL, pidgin_roomlist_dialog_show, 0, "<Item>", NULL }, |
21560
665e04562de0
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
3341 { N_("/Tools/System _Log"), NULL, gtk_blist_show_systemlog_cb, 3, "<Item>", NULL }, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3342 { "/Tools/sep3", NULL, NULL, 0, "<Separator>", NULL }, |
23965
0b41ff5ebd96
take out default mute key binding
Ka-Hing Cheung <khc@hxbc.us>
parents:
23925
diff
changeset
|
3343 { N_("/Tools/Mute _Sounds"), NULL, pidgin_blist_mute_sounds_cb, 0, "<CheckItem>", NULL }, |
27876
5c76f76ee9db
propagate from branch 'im.pidgin.pidgin' (head 4e2880e0b1b33a1395280db14803f92cc93843de)
Yoshiki Yazawa <yaz@honeyplanet.jp>
diff
changeset
|
3344 |
17432
0bbc08d41234
disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents:
17431
diff
changeset
|
3345 /* Help */ |
0bbc08d41234
disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents:
17431
diff
changeset
|
3346 { N_("/_Help"), NULL, NULL, 0, "<Branch>", NULL }, |
0bbc08d41234
disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents:
17431
diff
changeset
|
3347 { N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP }, |
0bbc08d41234
disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents:
17431
diff
changeset
|
3348 { N_("/Help/_Debug Window"), NULL, toggle_debug, 0, "<Item>", NULL }, |
20586
04590d9db8b7
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20546
diff
changeset
|
3349 #if GTK_CHECK_VERSION(2,6,0) |
21560
665e04562de0
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
3350 { N_("/Help/_About"), NULL, pidgin_dialogs_about, 4, "<StockItem>", GTK_STOCK_ABOUT }, |
18402
238086459dc4
propagate from branch 'im.pidgin.pidgin' (head 98416e917a1165a4df7eb5839840348ff4c17bf2)
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
3351 #else |
21560
665e04562de0
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
3352 { N_("/Help/_About"), NULL, pidgin_dialogs_about, 4, "<Item>", NULL }, |
18402
238086459dc4
propagate from branch 'im.pidgin.pidgin' (head 98416e917a1165a4df7eb5839840348ff4c17bf2)
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
3353 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3354 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3355 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3356 /********************************************************* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3357 * Private Utility functions * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3358 *********************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3359 |
15823 | 3360 static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3361 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3362 GString *str = g_string_new(""); |
15823 | 3363 PurplePlugin *prpl; |
3364 PurplePluginProtocolInfo *prpl_info = NULL; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3365 char *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3366 |
15823 | 3367 if (PURPLE_BLIST_NODE_IS_CHAT(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3368 { |
15823 | 3369 PurpleChat *chat; |
24497
f10aba5592c6
The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents:
24412
diff
changeset
|
3370 GList *connections; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3371 GList *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3372 struct proto_chat_entry *pce; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3373 char *name, *value; |
22437
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3374 PurpleConversation *conv; |
21771
3303c02a46f5
Show the topic of a chat, when available, in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21757
diff
changeset
|
3375 PidginBlistNode *bnode = node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3376 |
15823 | 3377 chat = (PurpleChat *)node; |
3378 prpl = purple_find_prpl(purple_account_get_protocol_id(chat->account)); | |
3379 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); | |
3380 | |
24497
f10aba5592c6
The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents:
24412
diff
changeset
|
3381 connections = purple_connections_get_all(); |
f10aba5592c6
The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents:
24412
diff
changeset
|
3382 if (connections && connections->next) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3383 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3384 tmp = g_markup_escape_text(chat->account->username, -1); |
21986
0eb3ea7e5784
Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21985
diff
changeset
|
3385 g_string_append_printf(str, _("<b>Account:</b> %s"), tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3386 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3387 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3388 |
22437
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3389 if (bnode && bnode->conv.conv) { |
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3390 conv = bnode->conv.conv; |
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3391 } else { |
22450 | 3392 char *chat_name; |
22437
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3393 if (prpl_info && prpl_info->get_chat_name) |
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3394 chat_name = prpl_info->get_chat_name(chat->components); |
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3395 else |
22450 | 3396 chat_name = g_strdup(purple_chat_get_name(chat)); |
22437
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3397 |
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3398 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, chat_name, |
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3399 chat->account); |
22450 | 3400 g_free(chat_name); |
22437
8802eddbfedc
Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents:
22436
diff
changeset
|
3401 } |
22594
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3402 |
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3403 if (conv && !purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv))) { |
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3404 g_string_append_printf(str, _("\n<b>Occupants:</b> %d"), |
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3405 g_list_length(purple_conv_chat_get_users(PURPLE_CONV_CHAT(conv)))); |
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3406 |
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3407 if (prpl_info && (prpl_info->options & OPT_PROTO_CHAT_TOPIC)) { |
23177
4d8dced30fa2
Don't try to escape a NULL text. This gets rid of a runtime warning.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23166
diff
changeset
|
3408 const char *chattopic = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv)); |
4d8dced30fa2
Don't try to escape a NULL text. This gets rid of a runtime warning.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23166
diff
changeset
|
3409 char *topic = chattopic ? g_markup_escape_text(chattopic, -1) : NULL; |
22594
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3410 g_string_append_printf(str, _("\n<b>Topic:</b> %s"), topic ? topic : _("(no topic set)")); |
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3411 g_free(topic); |
3bf963b9c715
Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents:
22510
diff
changeset
|
3412 } |
21771
3303c02a46f5
Show the topic of a chat, when available, in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21757
diff
changeset
|
3413 } |
3303c02a46f5
Show the topic of a chat, when available, in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21757
diff
changeset
|
3414 |
24357 | 3415 if (prpl_info && prpl_info->chat_info != NULL) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3416 cur = prpl_info->chat_info(chat->account->gc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3417 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3418 cur = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3419 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3420 while (cur != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3421 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3422 pce = cur->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3423 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3424 if (!pce->secret && (!pce->required && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3425 g_hash_table_lookup(chat->components, pce->identifier) == NULL)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3426 { |
15823 | 3427 tmp = purple_text_strip_mnemonic(pce->label); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3428 name = g_markup_escape_text(tmp, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3429 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3430 value = g_markup_escape_text(g_hash_table_lookup( |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3431 chat->components, pce->identifier), -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3432 g_string_append_printf(str, "\n<b>%s</b> %s", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3433 name ? name : "", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3434 value ? value : ""); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3435 g_free(name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3436 g_free(value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3437 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3438 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3439 g_free(pce); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3440 cur = g_list_remove(cur, pce); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3441 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3442 } |
15823 | 3443 else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3444 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3445 /* NOTE: THIS FUNCTION IS NO LONGER CALLED FOR CONTACTS. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3446 * It is only called by create_tip_for_node(), and create_tip_for_node() is never called for a contact. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3447 */ |
15823 | 3448 PurpleContact *c; |
3449 PurpleBuddy *b; | |
3450 PurplePresence *presence; | |
3451 PurpleNotifyUserInfo *user_info; | |
24497
f10aba5592c6
The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents:
24412
diff
changeset
|
3452 GList *connections; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3453 char *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3454 time_t idle_secs, signon; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3455 |
15823 | 3456 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3457 { |
15823 | 3458 c = (PurpleContact *)node; |
3459 b = purple_contact_get_priority_buddy(c); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3460 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3461 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3462 { |
15823 | 3463 b = (PurpleBuddy *)node; |
3464 c = purple_buddy_get_contact(b); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3465 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3466 |
15823 | 3467 prpl = purple_find_prpl(purple_account_get_protocol_id(b->account)); |
3468 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); | |
3469 | |
3470 presence = purple_buddy_get_presence(b); | |
3471 user_info = purple_notify_user_info_new(); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3472 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3473 /* Account */ |
24497
f10aba5592c6
The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents:
24412
diff
changeset
|
3474 connections = purple_connections_get_all(); |
f10aba5592c6
The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents:
24412
diff
changeset
|
3475 if (full && connections && connections->next) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3476 { |
15823 | 3477 tmp = g_markup_escape_text(purple_account_get_username( |
3478 purple_buddy_get_account(b)), -1); | |
3479 purple_notify_user_info_add_pair(user_info, _("Account"), tmp); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3480 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3481 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3482 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3483 /* Alias */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3484 /* If there's not a contact alias, the node is being displayed with |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3485 * this alias, so there's no point in showing it in the tooltip. */ |
21781
6a287408bc54
Make sure we are still in the chat, and the chat can have a topic, when showing the topic in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21772
diff
changeset
|
3486 if (full && c && b->alias != NULL && b->alias[0] != '\0' && |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3487 (c->alias != NULL && c->alias[0] != '\0') && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3488 strcmp(c->alias, b->alias) != 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3489 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3490 tmp = g_markup_escape_text(b->alias, -1); |
15823 | 3491 purple_notify_user_info_add_pair(user_info, _("Buddy Alias"), tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3492 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3493 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3494 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3495 /* Nickname/Server Alias */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3496 /* I'd like to only show this if there's a contact or buddy |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3497 * alias, but many people on MSN set long nicknames, which |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3498 * get ellipsized, so the only way to see the whole thing is |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3499 * to look at the tooltip. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3500 if (full && b->server_alias != NULL && b->server_alias[0] != '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3501 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3502 tmp = g_markup_escape_text(b->server_alias, -1); |
15823 | 3503 purple_notify_user_info_add_pair(user_info, _("Nickname"), tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3504 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3505 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3506 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3507 /* Logged In */ |
15823 | 3508 signon = purple_presence_get_login_time(presence); |
3509 if (full && PURPLE_BUDDY_IS_ONLINE(b) && signon > 0) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3510 { |
18241
83ea1733979b
This is a less dumb way to make sure we don't wrap
Mark Doliner <mark@kingant.net>
parents:
18217
diff
changeset
|
3511 if (signon > time(NULL)) { |
17834
18b62b0fc253
Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <mark@kingant.net>
parents:
17789
diff
changeset
|
3512 /* |
18241
83ea1733979b
This is a less dumb way to make sure we don't wrap
Mark Doliner <mark@kingant.net>
parents:
18217
diff
changeset
|
3513 * They signed on in the future?! Our local clock |
83ea1733979b
This is a less dumb way to make sure we don't wrap
Mark Doliner <mark@kingant.net>
parents:
18217
diff
changeset
|
3514 * must be wrong, show the actual date instead of |
83ea1733979b
This is a less dumb way to make sure we don't wrap
Mark Doliner <mark@kingant.net>
parents:
18217
diff
changeset
|
3515 * "4 days", etc. |
17834
18b62b0fc253
Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <mark@kingant.net>
parents:
17789
diff
changeset
|
3516 */ |
18b62b0fc253
Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <mark@kingant.net>
parents:
17789
diff
changeset
|
3517 tmp = g_strdup(purple_date_format_long(localtime(&signon))); |
18b62b0fc253
Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <mark@kingant.net>
parents:
17789
diff
changeset
|
3518 } else |
18b62b0fc253
Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <mark@kingant.net>
parents:
17789
diff
changeset
|
3519 tmp = purple_str_seconds_to_string(time(NULL) - signon); |
15823 | 3520 purple_notify_user_info_add_pair(user_info, _("Logged In"), tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3521 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3522 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3523 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3524 /* Idle */ |
15823 | 3525 if (purple_presence_is_idle(presence)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3526 { |
15823 | 3527 idle_secs = purple_presence_get_idle_time(presence); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3528 if (idle_secs > 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3529 { |
15823 | 3530 tmp = purple_str_seconds_to_string(time(NULL) - idle_secs); |
3531 purple_notify_user_info_add_pair(user_info, _("Idle"), tmp); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3532 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3533 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3534 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3535 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3536 /* Last Seen */ |
21781
6a287408bc54
Make sure we are still in the chat, and the chat can have a topic, when showing the topic in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21772
diff
changeset
|
3537 if (full && c && !PURPLE_BUDDY_IS_ONLINE(b)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3538 { |
15823 | 3539 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode *)c)->ui_data; |
3540 PurpleBlistNode *bnode; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3541 int lastseen = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3542 |
21781
6a287408bc54
Make sure we are still in the chat, and the chat can have a topic, when showing the topic in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21772
diff
changeset
|
3543 if (gtknode && (!gtknode->contact_expanded || PURPLE_BLIST_NODE_IS_CONTACT(node))) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3544 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3545 /* We're either looking at a buddy for a collapsed contact or |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3546 * an expanded contact itself so we show the most recent |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3547 * (largest) last_seen time for any of the buddies under |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3548 * the contact. */ |
15823 | 3549 for (bnode = ((PurpleBlistNode *)c)->child ; bnode != NULL ; bnode = bnode->next) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3550 { |
15823 | 3551 int value = purple_blist_node_get_int(bnode, "last_seen"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3552 if (value > lastseen) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3553 lastseen = value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3554 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3555 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3556 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3557 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3558 /* We're dealing with a buddy under an expanded contact, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3559 * so we show the last_seen time for the buddy. */ |
15823 | 3560 lastseen = purple_blist_node_get_int(&b->node, "last_seen"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3561 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3562 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3563 if (lastseen > 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3564 { |
15823 | 3565 tmp = purple_str_seconds_to_string(time(NULL) - lastseen); |
3566 purple_notify_user_info_add_pair(user_info, _("Last Seen"), tmp); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3567 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3568 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3569 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3570 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3571 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3572 /* Offline? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3573 /* FIXME: Why is this status special-cased by the core? -- rlaager */ |
15823 | 3574 if (!PURPLE_BUDDY_IS_ONLINE(b)) { |
3575 purple_notify_user_info_add_pair(user_info, _("Status"), _("Offline")); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3576 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3577 |
19635
1481ea6bb805
Do not bother the prpl about a tooltip for a disconnected account.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3578 if (purple_account_is_connected(b->account) && |
1481ea6bb805
Do not bother the prpl about a tooltip for a disconnected account.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3579 prpl_info && prpl_info->tooltip_text) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3580 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3581 /* Additional text from the PRPL */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3582 prpl_info->tooltip_text(b, user_info, full); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3583 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3584 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3585 /* These are Easter Eggs. Patches to remove them will be rejected. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3586 if (!g_ascii_strcasecmp(b->name, "robflynn")) |
15823 | 3587 purple_notify_user_info_add_pair(user_info, _("Description"), _("Spooky")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3588 if (!g_ascii_strcasecmp(b->name, "seanegn")) |
15823 | 3589 purple_notify_user_info_add_pair(user_info, _("Status"), _("Awesome")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3590 if (!g_ascii_strcasecmp(b->name, "chipx86")) |
15823 | 3591 purple_notify_user_info_add_pair(user_info, _("Status"), _("Rockin'")); |
3592 | |
3593 tmp = purple_notify_user_info_get_text_with_newline(user_info, "\n"); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3594 g_string_append(str, tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3595 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3596 |
15823 | 3597 purple_notify_user_info_destroy(user_info); |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3598 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
22507
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3599 gint count; |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3600 PurpleGroup *group = (PurpleGroup*)node; |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3601 PurpleNotifyUserInfo *user_info; |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3602 |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3603 user_info = purple_notify_user_info_new(); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3604 |
22507
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3605 count = purple_blist_get_group_online_count(group); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3606 |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3607 if (count != 0) { |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3608 /* Online buddies in group */ |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3609 tmp = g_strdup_printf("%d", count); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3610 purple_notify_user_info_add_pair(user_info, |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3611 _("Online Buddies"), |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3612 tmp); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3613 g_free(tmp); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3614 } |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3615 count = 0; |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3616 |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3617 count = purple_blist_get_group_size(group, FALSE); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3618 if (count != 0) { |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3619 /* Total buddies (from online accounts) in group */ |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3620 tmp = g_strdup_printf("%d", count); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3621 purple_notify_user_info_add_pair(user_info, |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3622 _("Total Buddies"), |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3623 tmp); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3624 g_free(tmp); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3625 } |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
3626 count = 0; |
21925
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3627 |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3628 tmp = purple_notify_user_info_get_text_with_newline(user_info, "\n"); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3629 g_string_append(str, tmp); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3630 g_free(tmp); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3631 |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3632 purple_notify_user_info_destroy(user_info); |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3633 } |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3634 |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3635 purple_signal_emit(pidgin_blist_get_handle(), "drawing-tooltip", |
2b6e6dd24a37
Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents:
21912
diff
changeset
|
3636 node, str, full); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3637 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3638 return g_string_free(str, FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3639 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3640 |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3641 static GHashTable *cached_emblems; |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3642 |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3643 static void _cleanup_cached_emblem(gpointer data, GObject *obj) { |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3644 g_hash_table_remove(cached_emblems, data); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3645 } |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3646 |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3647 static GdkPixbuf * _pidgin_blist_get_cached_emblem(gchar *path) { |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3648 GdkPixbuf *pb = g_hash_table_lookup(cached_emblems, path); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3649 |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3650 if (pb != NULL) { |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3651 /* The caller gets a reference */ |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3652 g_object_ref(pb); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3653 g_free(path); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3654 } else { |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3655 pb = gdk_pixbuf_new_from_file(path, NULL); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3656 if (pb != NULL) { |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3657 /* We don't want to own a ref to the pixbuf, but we need to keep clean up. */ |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3658 /* I'm not sure if it would be better to just keep our ref and not let the emblem ever be destroyed */ |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3659 g_object_weak_ref(G_OBJECT(pb), _cleanup_cached_emblem, path); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3660 g_hash_table_insert(cached_emblems, path, pb); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3661 } else |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3662 g_free(path); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3663 } |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3664 |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3665 return pb; |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3666 } |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3667 |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3668 |
15463 | 3669 GdkPixbuf * |
15823 | 3670 pidgin_blist_get_emblem(PurpleBlistNode *node) |
3671 { | |
3672 PurpleBuddy *buddy = NULL; | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3673 struct _pidgin_blist_node *gtknode = node->ui_data; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3674 struct _pidgin_blist_node *gtkbuddynode = NULL; |
15823 | 3675 PurplePlugin *prpl; |
3676 PurplePluginProtocolInfo *prpl_info; | |
15463 | 3677 const char *name = NULL; |
3678 char *filename, *path; | |
15823 | 3679 PurplePresence *p; |
24455
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3680 PurpleStatus *tune; |
15823 | 3681 |
3682 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { | |
15463 | 3683 if(!gtknode->contact_expanded) { |
15823 | 3684 buddy = purple_contact_get_priority_buddy((PurpleContact*)node); |
3685 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data; | |
15463 | 3686 } |
15823 | 3687 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
3688 buddy = (PurpleBuddy*)node; | |
15463 | 3689 gtkbuddynode = node->ui_data; |
18310
9b3c2ba1a5c3
Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@gmail.com>
parents:
18309
diff
changeset
|
3690 p = purple_buddy_get_presence(buddy); |
9b3c2ba1a5c3
Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@gmail.com>
parents:
18309
diff
changeset
|
3691 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) { |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3692 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", |
18310
9b3c2ba1a5c3
Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@gmail.com>
parents:
18309
diff
changeset
|
3693 "16", "mobile.png", NULL); |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3694 return _pidgin_blist_get_cached_emblem(path); |
18310
9b3c2ba1a5c3
Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@gmail.com>
parents:
18309
diff
changeset
|
3695 } |
9b3c2ba1a5c3
Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@gmail.com>
parents:
18309
diff
changeset
|
3696 |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
3697 if (((struct _pidgin_blist_node*)(node->parent->ui_data))->contact_expanded) { |
24932
1e56413147dd
no reason not to show other emblems when contact is expanded
Ka-Hing Cheung <khc@hxbc.us>
parents:
24850
diff
changeset
|
3698 if (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_protocol_icons")) |
1e56413147dd
no reason not to show other emblems when contact is expanded
Ka-Hing Cheung <khc@hxbc.us>
parents:
24850
diff
changeset
|
3699 return pidgin_create_prpl_icon(((PurpleBuddy*)node)->account, PIDGIN_PRPL_ICON_SMALL); |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
3700 } |
15463 | 3701 } else { |
3702 return NULL; | |
3703 } | |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
3704 |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3705 g_return_val_if_fail(buddy != NULL, NULL); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3706 |
15823 | 3707 if (!purple_privacy_check(buddy->account, purple_buddy_get_name(buddy))) { |
15500 | 3708 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "blocked.png", NULL); |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3709 return _pidgin_blist_get_cached_emblem(path); |
15524
84b3ab83df35
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@gmail.com>
parents:
15514
diff
changeset
|
3710 } |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
3711 |
15823 | 3712 p = purple_buddy_get_presence(buddy); |
3713 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) { | |
15524
84b3ab83df35
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@gmail.com>
parents:
15514
diff
changeset
|
3714 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "mobile.png", NULL); |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3715 return _pidgin_blist_get_cached_emblem(path); |
15500 | 3716 } |
15463 | 3717 |
24455
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3718 tune = purple_presence_get_status(p, "tune"); |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3719 if (tune && purple_status_is_active(tune)) { |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3720 /* Only in MSN. |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3721 * TODO: Replace "Tune" with generalized "Media" in 3.0. */ |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3722 if (purple_status_get_attr_string(tune, "game") != NULL) { |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3723 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "game.png", NULL); |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3724 return _pidgin_blist_get_cached_emblem(path); |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3725 } |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3726 /* Only in MSN. |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3727 * TODO: Replace "Tune" with generalized "Media" in 3.0. */ |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3728 if (purple_status_get_attr_string(tune, "office") != NULL) { |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3729 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "office.png", NULL); |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3730 return _pidgin_blist_get_cached_emblem(path); |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3731 } |
e344426d7c28
Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24412
diff
changeset
|
3732 /* Regular old "tune" is the only one in all protocols. */ |
20055
d97c43dbc1ca
Display a music emblem in the buddylist when appropriate.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20050
diff
changeset
|
3733 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "music.png", NULL); |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3734 return _pidgin_blist_get_cached_emblem(path); |
20055
d97c43dbc1ca
Display a music emblem in the buddylist when appropriate.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20050
diff
changeset
|
3735 } |
d97c43dbc1ca
Display a music emblem in the buddylist when appropriate.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20050
diff
changeset
|
3736 |
15823 | 3737 prpl = purple_find_prpl(purple_account_get_protocol_id(buddy->account)); |
15463 | 3738 if (!prpl) |
3739 return NULL; | |
3740 | |
15823 | 3741 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15463 | 3742 if (prpl_info && prpl_info->list_emblem) |
3743 name = prpl_info->list_emblem(buddy); | |
3744 | |
3745 if (name == NULL) | |
3746 return NULL; | |
3747 | |
3748 filename = g_strdup_printf("%s.png", name); | |
3749 | |
3750 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", filename, NULL); | |
3751 g_free(filename); | |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3752 |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3753 /* _pidgin_blist_get_cached_emblem() assumes ownership of path */ |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
3754 return _pidgin_blist_get_cached_emblem(path); |
15463 | 3755 } |
3756 | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3757 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3758 GdkPixbuf * |
15823 | 3759 pidgin_blist_get_status_icon(PurpleBlistNode *node, PidginStatusIconSize size) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3760 { |
15397
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
3761 GdkPixbuf *ret; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3762 const char *protoname = NULL; |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3763 const char *icon = NULL; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3764 struct _pidgin_blist_node *gtknode = node->ui_data; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3765 struct _pidgin_blist_node *gtkbuddynode = NULL; |
15823 | 3766 PurpleBuddy *buddy = NULL; |
3767 PurpleChat *chat = NULL; | |
21660
c29f2e3a3b99
Had this laying around. Weeks (months?) ago all the small listers and Hylke agreed that Small list looks better with conversation tab sized icons
Sean Egan <seanegan@gmail.com>
parents:
21659
diff
changeset
|
3768 GtkIconSize icon_size = gtk_icon_size_from_name((size == PIDGIN_STATUS_ICON_LARGE) ? PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL : |
c29f2e3a3b99
Had this laying around. Weeks (months?) ago all the small listers and Hylke agreed that Small list looks better with conversation tab sized icons
Sean Egan <seanegan@gmail.com>
parents:
21659
diff
changeset
|
3769 PIDGIN_ICON_SIZE_TANGO_MICROSCOPIC); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3770 |
15823 | 3771 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3772 if(!gtknode->contact_expanded) { |
15823 | 3773 buddy = purple_contact_get_priority_buddy((PurpleContact*)node); |
17042
777cdaa3b904
This is what I actually intended to commit in 105009e066f1bcaefb0af3bd1e17b7860bf12a57. The rest of the mess being pushed is me trying to clean up my mess.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
17038
diff
changeset
|
3774 if (buddy != NULL) |
777cdaa3b904
This is what I actually intended to commit in 105009e066f1bcaefb0af3bd1e17b7860bf12a57. The rest of the mess being pushed is me trying to clean up my mess.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
17038
diff
changeset
|
3775 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3776 } |
15823 | 3777 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
3778 buddy = (PurpleBuddy*)node; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3779 gtkbuddynode = node->ui_data; |
15823 | 3780 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) { |
3781 chat = (PurpleChat*)node; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3782 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3783 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3784 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3785 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3786 if(buddy || chat) { |
15823 | 3787 PurpleAccount *account; |
3788 PurplePlugin *prpl; | |
3789 PurplePluginProtocolInfo *prpl_info; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3790 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3791 if(buddy) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3792 account = buddy->account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3793 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3794 account = chat->account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3795 |
15823 | 3796 prpl = purple_find_prpl(purple_account_get_protocol_id(account)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3797 if(!prpl) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3798 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3799 |
15823 | 3800 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3801 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3802 if(prpl_info && prpl_info->list_icon) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3803 protoname = prpl_info->list_icon(account, buddy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3804 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3805 } |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
3806 |
15397
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
3807 if(buddy) { |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3808 PurpleConversation *conv = find_conversation_with_buddy(buddy); |
15823 | 3809 PurplePresence *p; |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3810 gboolean trans; |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3811 |
15497
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3812 if(conv != NULL) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3813 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
19895
1fe1ac03e1fe
Show the 'new message' icon correctly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19894
diff
changeset
|
3814 if (gtkconv == NULL && size == PIDGIN_STATUS_ICON_SMALL) { |
1fe1ac03e1fe
Show the 'new message' icon correctly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19894
diff
changeset
|
3815 PidginBlistNode *ui = buddy->node.ui_data; |
1fe1ac03e1fe
Show the 'new message' icon correctly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19894
diff
changeset
|
3816 if (ui == NULL || (ui->conv.flags & PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE)) |
1fe1ac03e1fe
Show the 'new message' icon correctly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19894
diff
changeset
|
3817 return gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), |
1fe1ac03e1fe
Show the 'new message' icon correctly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19894
diff
changeset
|
3818 PIDGIN_STOCK_STATUS_MESSAGE, icon_size, "GtkTreeView"); |
15497
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3819 } |
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3820 } |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3821 |
15823 | 3822 p = purple_buddy_get_presence(buddy); |
20138
a5f1483395d1
show transparent status icons for idle tooltips. Patch from #465
Sean Egan <seanegan@gmail.com>
parents:
20099
diff
changeset
|
3823 trans = purple_presence_is_idle(p); |
15823 | 3824 |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
3825 if (PURPLE_BUDDY_IS_ONLINE(buddy) && gtkbuddynode && gtkbuddynode->recent_signonoff) |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3826 icon = PIDGIN_STOCK_STATUS_LOGIN; |
15448 | 3827 else if (gtkbuddynode && gtkbuddynode->recent_signonoff) |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3828 icon = PIDGIN_STOCK_STATUS_LOGOUT; |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
3829 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_UNAVAILABLE)) |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3830 if (trans) |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3831 icon = PIDGIN_STOCK_STATUS_BUSY_I; |
15493 | 3832 else |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3833 icon = PIDGIN_STOCK_STATUS_BUSY; |
15823 | 3834 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_AWAY)) |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3835 if (trans) |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3836 icon = PIDGIN_STOCK_STATUS_AWAY_I; |
15493 | 3837 else |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3838 icon = PIDGIN_STOCK_STATUS_AWAY; |
15823 | 3839 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_EXTENDED_AWAY)) |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3840 if (trans) |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3841 icon = PIDGIN_STOCK_STATUS_XA_I; |
15493 | 3842 else |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3843 icon = PIDGIN_STOCK_STATUS_XA; |
15823 | 3844 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_OFFLINE)) |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3845 icon = PIDGIN_STOCK_STATUS_OFFLINE; |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3846 else if (trans) |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3847 icon = PIDGIN_STOCK_STATUS_AVAILABLE_I; |
17488
45178b7e580d
Show the Invisible icon (the same one in the statusbox for buddies that are broadcasting an invisible status to you. This should fix #740, but I'm not positive
Sean Egan <seanegan@gmail.com>
parents:
17487
diff
changeset
|
3848 else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_INVISIBLE)) |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3849 icon = PIDGIN_STOCK_STATUS_INVISIBLE; |
15448 | 3850 else |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3851 icon = PIDGIN_STOCK_STATUS_AVAILABLE; |
15448 | 3852 } else if (chat) { |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3853 icon = PIDGIN_STOCK_STATUS_CHAT; |
15448 | 3854 } else { |
19540
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3855 icon = PIDGIN_STOCK_STATUS_PERSON; |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3856 } |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3857 |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3858 ret = gtk_widget_render_icon (GTK_WIDGET(gtkblist->treeview), icon, |
712a448722b6
If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19538
diff
changeset
|
3859 icon_size, "GtkTreeView"); |
15397
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
3860 return ret; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3861 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3862 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3863 gchar * |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3864 pidgin_blist_get_name_markup(PurpleBuddy *b, gboolean selected, gboolean aliased) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3865 { |
23699
fc8047e1fa39
fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23698
diff
changeset
|
3866 const char *name, *name_color, *name_font, *status_color, *status_font; |
fc8047e1fa39
fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23698
diff
changeset
|
3867 char *text = NULL; |
15823 | 3868 PurplePlugin *prpl; |
3869 PurplePluginProtocolInfo *prpl_info = NULL; | |
3870 PurpleContact *contact; | |
3871 PurplePresence *presence; | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
3872 struct _pidgin_blist_node *gtkcontactnode = NULL; |
23699
fc8047e1fa39
fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23698
diff
changeset
|
3873 char *idletime = NULL, *statustext = NULL, *nametext = NULL; |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3874 PurpleConversation *conv = find_conversation_with_buddy(b); |
15497
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3875 gboolean hidden_conv = FALSE; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3876 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
3877 FontColorPair *pair = NULL; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3878 PidginBlistTheme *theme; |
15497
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3879 |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3880 if (conv != NULL) { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3881 PidginBlistNode *ui = b->node.ui_data; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3882 if (ui) { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3883 if (ui->conv.flags & PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3884 hidden_conv = TRUE; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3885 } else { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3886 if (PIDGIN_CONVERSATION(conv) == NULL) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
3887 hidden_conv = TRUE; |
15497
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3888 } |
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3889 } |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
3890 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3891 /* XXX Good luck cleaning up this crap */ |
25318
0e08c847517d
Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@wiktel.com>
parents:
25313
diff
changeset
|
3892 contact = PURPLE_CONTACT(PURPLE_BLIST_NODE(b)->parent); |
19234
aafa9b36344e
Double-click infopane to alias or change topic. Also, show alias instead of screenname in infopane
Sean Egan <seanegan@gmail.com>
parents:
19187
diff
changeset
|
3893 if(contact) |
25318
0e08c847517d
Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@wiktel.com>
parents:
25313
diff
changeset
|
3894 gtkcontactnode = purple_blist_node_get_ui_data(PURPLE_BLIST_NODE(contact)); |
19234
aafa9b36344e
Double-click infopane to alias or change topic. Also, show alias instead of screenname in infopane
Sean Egan <seanegan@gmail.com>
parents:
19187
diff
changeset
|
3895 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3896 /* Name */ |
23485
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
3897 if (gtkcontactnode && !gtkcontactnode->contact_expanded && contact->alias) |
19234
aafa9b36344e
Double-click infopane to alias or change topic. Also, show alias instead of screenname in infopane
Sean Egan <seanegan@gmail.com>
parents:
19187
diff
changeset
|
3898 name = contact->alias; |
aafa9b36344e
Double-click infopane to alias or change topic. Also, show alias instead of screenname in infopane
Sean Egan <seanegan@gmail.com>
parents:
19187
diff
changeset
|
3899 else |
aafa9b36344e
Double-click infopane to alias or change topic. Also, show alias instead of screenname in infopane
Sean Egan <seanegan@gmail.com>
parents:
19187
diff
changeset
|
3900 name = purple_buddy_get_alias(b); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3901 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3902 nametext = g_markup_escape_text(name, strlen(name)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3903 |
15823 | 3904 presence = purple_buddy_get_presence(b); |
3905 | |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3906 /* Name is all that is needed */ |
23698
f76e9db37141
Fixes blist theme bug in buddy markup
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23697
diff
changeset
|
3907 if (aliased && biglist) { |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3908 |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3909 /* Status Info */ |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3910 prpl = purple_find_prpl(purple_account_get_protocol_id(b->account)); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3911 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3912 if (prpl != NULL) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3913 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3914 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3915 if (prpl_info && prpl_info->status_text && b->account->gc) { |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3916 char *tmp = prpl_info->status_text(b); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3917 const char *end; |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3918 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3919 if(tmp && !g_utf8_validate(tmp, -1, &end)) { |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3920 char *new = g_strndup(tmp, |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3921 g_utf8_pointer_to_offset(tmp, end)); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3922 g_free(tmp); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3923 tmp = new; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3924 } |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3925 /* add ... to messages that are too long, GTK 2.6+ does it automatically */ |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3926 #if !GTK_CHECK_VERSION(2,6,0) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3927 if(tmp) { |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3928 char buf[32]; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3929 char *c = tmp; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3930 int length = 0, vis=0; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3931 gboolean inside = FALSE; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3932 g_strdelimit(tmp, "\n", ' '); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3933 purple_str_strip_char(tmp, '\r'); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3934 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3935 while(*c && vis < 20) { |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3936 if(*c == '&') |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3937 inside = TRUE; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3938 else if(*c == ';') |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3939 inside = FALSE; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3940 if(!inside) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3941 vis++; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3942 c = g_utf8_next_char(c); /* this is fun */ |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3943 } |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3944 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3945 length = c - tmp; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3946 |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3947 if(vis == 20) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3948 g_snprintf(buf, sizeof(buf), "%%.%ds...", length); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3949 else |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3950 g_snprintf(buf, sizeof(buf), "%%s "); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3951 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3952 statustext = g_strdup_printf(buf, tmp);purple_presence_is_idle(presence) |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3953 |
15497
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3954 g_free(tmp); |
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
3955 } |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3956 #else |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3957 if(tmp) { |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3958 g_strdelimit(tmp, "\n", ' '); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3959 purple_str_strip_char(tmp, '\r'); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3960 } |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3961 statustext = tmp; |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3962 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3963 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3964 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3965 if(!purple_presence_is_online(presence) && !statustext) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3966 statustext = g_strdup(_("Offline")); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3967 |
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
3968 /* Idle Text */ |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3969 if (purple_presence_is_idle(presence) && purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time")) { |
15823 | 3970 time_t idle_secs = purple_presence_get_idle_time(presence); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3971 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3972 if (idle_secs > 0) { |
18234
cbec54ecd9ab
Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@hxbc.us>
parents:
18217
diff
changeset
|
3973 int iday, ihrs, imin; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3974 time_t t; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3975 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3976 time(&t); |
18234
cbec54ecd9ab
Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@hxbc.us>
parents:
18217
diff
changeset
|
3977 iday = (t - idle_secs) / (24 * 60 * 60); |
cbec54ecd9ab
Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@hxbc.us>
parents:
18217
diff
changeset
|
3978 ihrs = ((t - idle_secs) / 60 / 60) % 24; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3979 imin = ((t - idle_secs) / 60) % 60; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3980 |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
3981 if (iday) |
18234
cbec54ecd9ab
Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@hxbc.us>
parents:
18217
diff
changeset
|
3982 idletime = g_strdup_printf(_("Idle %dd %dh %02dm"), iday, ihrs, imin); |
cbec54ecd9ab
Show idle times in the buddy list as days, hours, seconds. Patch from
Ka-Hing Cheung <khc@hxbc.us>
parents:
18217
diff
changeset
|
3983 else if (ihrs) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3984 idletime = g_strdup_printf(_("Idle %dh %02dm"), ihrs, imin); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3985 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3986 idletime = g_strdup_printf(_("Idle %dm"), imin); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3987 |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
3988 } else |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3989 idletime = g_strdup(_("Idle")); |
20793
16d372f412e3
Fix a leak that occurs when getting the formatted buddy name under some conditions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20685
diff
changeset
|
3990 } |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3991 } |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3992 |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3993 /* choose the colors of the text */ |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3994 theme = pidgin_blist_get_theme(); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3995 |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
3996 if (purple_presence_is_idle(presence)) { |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
3997 if (theme) |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
3998 pair = pidgin_blist_theme_get_idle_text_info(theme); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
3999 status_color = name_color = (pair != NULL && pair->color != NULL) ? pair->color : "dim grey"; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4000 status_font = name_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4001 |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4002 } else if (!purple_presence_is_online(presence)) { |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4003 if (theme) |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4004 pair = pidgin_blist_theme_get_offline_text_info(theme); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4005 name_color = (pair != NULL && pair->color != NULL) ? pair->color : "black"; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4006 name_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4007 |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4008 if (theme) |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4009 pair = pidgin_blist_theme_get_status_text_info(theme); |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4010 status_color = (pair != NULL && pair->color != NULL) ? pair->color : "dim grey"; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4011 status_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4012 |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4013 } else if (purple_presence_is_available(presence)) { |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4014 if (theme) |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4015 pair = pidgin_blist_theme_get_online_text_info(theme); |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4016 name_color = (pair != NULL && pair->color != NULL) ? pair->color : "black"; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4017 name_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4018 |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4019 if (theme) |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4020 pair = pidgin_blist_theme_get_status_text_info(theme); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4021 status_color = (pair != NULL && pair->color != NULL) ? pair->color : "dim grey"; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4022 status_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4023 |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4024 } else { |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4025 if (theme) |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4026 pair = pidgin_blist_theme_get_away_text_info(theme); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4027 name_color = (pair != NULL && pair->color != NULL) ? pair->color : "black"; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4028 name_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4029 |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4030 if (theme) |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
4031 pair = pidgin_blist_theme_get_status_text_info(theme); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4032 status_color = (pair != NULL && pair->color != NULL) ? pair->color : "dim grey"; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4033 status_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4034 } |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4035 |
23698
f76e9db37141
Fixes blist theme bug in buddy markup
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23697
diff
changeset
|
4036 if (aliased && selected) { |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4037 name_color = "black"; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4038 status_color = "black"; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4039 } |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4040 |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4041 /* Put it all together */ |
23698
f76e9db37141
Fixes blist theme bug in buddy markup
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23697
diff
changeset
|
4042 if (aliased && biglist && (statustext || idletime)) { |
23485
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
4043 /* using <span size='smaller'> breaks the status, so it must be seperated into <small><span>*/ |
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
4044 text = g_strdup_printf("<span font_desc='%s' foreground='%s'>%s</span>\n" |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
4045 "<small><span font_desc='%s' foreground='%s'>%s%s%s</span></small>", |
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
4046 name_font, name_color, nametext, status_font, status_color, |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4047 idletime != NULL ? idletime : "", |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4048 (idletime != NULL && statustext != NULL) ? " - " : "", |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
4049 statustext != NULL ? statustext : ""); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
4050 |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
4051 } else |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
4052 text = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>", name_font, name_color, nametext); |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
4053 |
23699
fc8047e1fa39
fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23698
diff
changeset
|
4054 g_free(nametext); |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
4055 g_free(statustext); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4056 g_free(idletime); |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
4057 |
15497
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
4058 if (hidden_conv) { |
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
4059 char *tmp = text; |
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
4060 text = g_strdup_printf("<b>%s</b>", tmp); |
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
4061 g_free(tmp); |
74efe677c8a5
Restore 'hidden convo' status icon in blist. Additionally, make the name text bold when you have a hidden convo
Sean Egan <seanegan@gmail.com>
parents:
15493
diff
changeset
|
4062 } |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
4063 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4064 return text; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4065 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4066 |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21960
diff
changeset
|
4067 static void pidgin_blist_restore_position(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4068 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4069 int blist_x, blist_y, blist_width, blist_height; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4070 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
4071 blist_width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4072 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4073 /* if the window exists, is hidden, we're saving positions, and the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4074 * position is sane... */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4075 if (gtkblist && gtkblist->window && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4076 !GTK_WIDGET_VISIBLE(gtkblist->window) && blist_width != 0) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4077 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
4078 blist_x = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/x"); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
4079 blist_y = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/y"); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
4080 blist_height = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/height"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4081 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4082 /* ...check position is on screen... */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4083 if (blist_x >= gdk_screen_width()) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4084 blist_x = gdk_screen_width() - 100; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4085 else if (blist_x + blist_width < 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4086 blist_x = 100; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4087 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4088 if (blist_y >= gdk_screen_height()) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4089 blist_y = gdk_screen_height() - 100; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4090 else if (blist_y + blist_height < 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4091 blist_y = 100; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4092 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4093 /* ...and move it back. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4094 gtk_window_move(GTK_WINDOW(gtkblist->window), blist_x, blist_y); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4095 gtk_window_resize(GTK_WINDOW(gtkblist->window), blist_width, blist_height); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
4096 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized")) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4097 gtk_window_maximize(GTK_WINDOW(gtkblist->window)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4098 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4099 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4100 |
15823 | 4101 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list) |
4102 { | |
4103 PurpleBlistNode *gnode, *cnode; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4104 |
21041
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
4105 if (gtk_blist_visibility == GDK_VISIBILITY_FULLY_OBSCURED |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
4106 || !GTK_WIDGET_VISIBLE(gtkblist->window)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4107 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4108 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4109 for(gnode = list->root; gnode; gnode = gnode->next) { |
15823 | 4110 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4111 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4112 for(cnode = gnode->child; cnode; cnode = cnode->next) { |
15823 | 4113 if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { |
4114 PurpleBuddy *buddy; | |
4115 | |
4116 buddy = purple_contact_get_priority_buddy((PurpleContact*)cnode); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4117 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4118 if (buddy && |
15823 | 4119 purple_presence_is_idle(purple_buddy_get_presence(buddy))) |
4120 pidgin_blist_update_contact(list, (PurpleBlistNode*)buddy); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4121 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4122 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4123 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4124 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4125 /* keep on going */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4126 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4127 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4128 |
15823 | 4129 static void pidgin_blist_hide_node(PurpleBuddyList *list, PurpleBlistNode *node, gboolean update) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4130 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4131 struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4132 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4133 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4134 if (!gtknode || !gtknode->row || !gtkblist) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4135 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4136 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4137 if(gtkblist->selected_node == node) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4138 gtkblist->selected_node = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4139 if (get_iter_from_node(node, &iter)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4140 gtk_tree_store_remove(gtkblist->treemodel, &iter); |
15823 | 4141 if(update && (PURPLE_BLIST_NODE_IS_CONTACT(node) || |
4142 PURPLE_BLIST_NODE_IS_BUDDY(node) || PURPLE_BLIST_NODE_IS_CHAT(node))) { | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4143 pidgin_blist_update(list, node->parent); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4144 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4145 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4146 gtk_tree_row_reference_free(gtknode->row); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4147 gtknode->row = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4148 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4149 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4150 static const char *require_connection[] = |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4151 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4152 N_("/Buddies/New Instant Message..."), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4153 N_("/Buddies/Join a Chat..."), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4154 N_("/Buddies/Get User Info..."), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4155 N_("/Buddies/Add Buddy..."), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4156 N_("/Buddies/Add Chat..."), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4157 N_("/Buddies/Add Group..."), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4158 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4159 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4160 static const int require_connection_size = sizeof(require_connection) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4161 / sizeof(*require_connection); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4162 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4163 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4164 * Rebuild dynamic menus and make menu items sensitive/insensitive |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4165 * where appropriate. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4166 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4167 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4168 update_menu_bar(PidginBuddyList *gtkblist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4169 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4170 GtkWidget *widget; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4171 gboolean sensitive; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4172 int i; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4173 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4174 g_return_if_fail(gtkblist != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4175 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4176 pidgin_blist_update_accounts_menu(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4177 |
15823 | 4178 sensitive = (purple_connections_get_all() != NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4179 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4180 for (i = 0; i < require_connection_size; i++) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4181 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4182 widget = gtk_item_factory_get_widget(gtkblist->ift, require_connection[i]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4183 gtk_widget_set_sensitive(widget, sensitive); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4184 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4185 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4186 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Join a Chat...")); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4187 gtk_widget_set_sensitive(widget, pidgin_blist_joinchat_is_showable()); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4188 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4189 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Add Chat...")); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4190 gtk_widget_set_sensitive(widget, pidgin_blist_joinchat_is_showable()); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4191 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4192 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Privacy")); |
21175
4ce3e1f998f6
Don't allow tooltips to interfere with editing blist entries. Fixes #3830.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21041
diff
changeset
|
4193 gtk_widget_set_sensitive(widget, sensitive); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4194 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4195 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Room List")); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4196 gtk_widget_set_sensitive(widget, pidgin_roomlist_is_showable()); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4197 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4198 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4199 static void |
15823 | 4200 sign_on_off_cb(PurpleConnection *gc, PurpleBuddyList *blist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4201 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4202 PidginBuddyList *gtkblist = PIDGIN_BLIST(blist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4203 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4204 update_menu_bar(gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4205 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4206 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4207 static void |
15823 | 4208 plugin_changed_cb(PurplePlugin *p, gpointer *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4209 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4210 pidgin_blist_update_plugin_actions(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4211 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4212 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4213 static void |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21960
diff
changeset
|
4214 unseen_conv_menu(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4215 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4216 static GtkWidget *menu = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4217 GList *convs = NULL; |
20960
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4218 GList *chats, *ims; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4219 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4220 if (menu) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4221 gtk_widget_destroy(menu); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4222 menu = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4223 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4224 |
20960
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4225 ims = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_IM, |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4226 PIDGIN_UNSEEN_TEXT, FALSE, 0); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4227 |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4228 chats = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_CHAT, |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4229 PIDGIN_UNSEEN_NICK, FALSE, 0); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4230 |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4231 if(ims && chats) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4232 convs = g_list_concat(ims, chats); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4233 else if(ims && !chats) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4234 convs = ims; |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4235 else if(!ims && chats) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4236 convs = chats; |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4237 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4238 if (!convs) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4239 /* no conversations added, don't show the menu */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4240 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4241 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4242 menu = gtk_menu_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4243 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4244 pidgin_conversations_fill_menu(menu, convs); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4245 g_list_free(convs); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4246 gtk_widget_show_all(menu); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4247 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4248 gtk_get_current_event_time()); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4249 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4250 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4251 static gboolean |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4252 menutray_press_cb(GtkWidget *widget, GdkEventButton *event) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4253 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4254 GList *convs; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4255 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4256 switch (event->button) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4257 case 1: |
15823 | 4258 convs = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_IM, |
20960
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4259 PIDGIN_UNSEEN_TEXT, FALSE, 1); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4260 |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4261 if(!convs) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4262 convs = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_CHAT, |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4263 PIDGIN_UNSEEN_NICK, FALSE, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4264 if (convs) { |
20937
2cf9156f4b85
Make clicking on the menutray in the buddy list present the first pending
Casey Harkins <charkins@pidgin.im>
parents:
20872
diff
changeset
|
4265 pidgin_conv_present_conversation((PurpleConversation*)convs->data); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4266 g_list_free(convs); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4267 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4268 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4269 case 3: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4270 unseen_conv_menu(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4271 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4272 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4273 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4274 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4275 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4276 static void |
15823 | 4277 conversation_updated_cb(PurpleConversation *conv, PurpleConvUpdateType type, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4278 PidginBuddyList *gtkblist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4279 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4280 GList *convs = NULL; |
20960
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4281 GList *ims, *chats; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4282 GList *l = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4283 |
15823 | 4284 if (type != PURPLE_CONV_UPDATE_UNSEEN) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4285 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4286 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4287 if(conv->account != NULL && conv->name != NULL) { |
15823 | 4288 PurpleBuddy *buddy = purple_find_buddy(conv->account, conv->name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4289 if(buddy != NULL) |
15823 | 4290 pidgin_blist_update_buddy(NULL, (PurpleBlistNode *)buddy, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4291 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4292 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4293 if (gtkblist->menutrayicon) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4294 gtk_widget_destroy(gtkblist->menutrayicon); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4295 gtkblist->menutrayicon = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4296 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4297 |
20960
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4298 ims = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_IM, |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4299 PIDGIN_UNSEEN_TEXT, FALSE, 0); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4300 |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4301 chats = pidgin_conversations_find_unseen_list(PURPLE_CONV_TYPE_CHAT, |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4302 PIDGIN_UNSEEN_NICK, FALSE, 0); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4303 |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4304 if(ims && chats) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4305 convs = g_list_concat(ims, chats); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4306 else if(ims && !chats) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4307 convs = ims; |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4308 else if(!ims && chats) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4309 convs = chats; |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4310 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4311 if (convs) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4312 GtkWidget *img = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4313 GString *tooltip_text = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4314 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4315 tooltip_text = g_string_new(""); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4316 l = convs; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4317 while (l != NULL) { |
20960
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4318 int count = 0; |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4319 PidginConversation *gtkconv = PIDGIN_CONVERSATION((PurpleConversation *)l->data); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4320 |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4321 if(gtkconv) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4322 count = gtkconv->unseen_count; |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4323 else if(purple_conversation_get_data(l->data, "unseen-count")) |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4324 count = GPOINTER_TO_INT(purple_conversation_get_data(l->data, "unseen-count")); |
f9d1e6b138a7
Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents:
20937
diff
changeset
|
4325 |
19899
25f4be036a16
Make changes in the buddylist menutray icon for hidden conversations to work
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19895
diff
changeset
|
4326 g_string_append_printf(tooltip_text, |
25f4be036a16
Make changes in the buddylist menutray icon for hidden conversations to work
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19895
diff
changeset
|
4327 ngettext("%d unread message from %s\n", "%d unread messages from %s\n", count), |
20980
2ba0963b5bdc
Use the conversation title for unread message tooltips. Fixes #3557.
Casey Harkins <charkins@pidgin.im>
parents:
20960
diff
changeset
|
4328 count, purple_conversation_get_title(l->data)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4329 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4330 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4331 if(tooltip_text->len > 0) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4332 /* get rid of the last newline */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4333 g_string_truncate(tooltip_text, tooltip_text->len -1); |
15632
a830f9756f23
Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15615
diff
changeset
|
4334 img = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_PENDING, |
15560
442128853bdb
toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents:
15559
diff
changeset
|
4335 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4336 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4337 gtkblist->menutrayicon = gtk_event_box_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4338 gtk_container_add(GTK_CONTAINER(gtkblist->menutrayicon), img); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4339 gtk_widget_show(img); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4340 gtk_widget_show(gtkblist->menutrayicon); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4341 g_signal_connect(G_OBJECT(gtkblist->menutrayicon), "button-press-event", G_CALLBACK(menutray_press_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4342 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4343 pidgin_menu_tray_append(PIDGIN_MENU_TRAY(gtkblist->menutray), gtkblist->menutrayicon, tooltip_text->str); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4344 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4345 g_string_free(tooltip_text, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4346 g_list_free(convs); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4347 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4348 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4349 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4350 static void |
15823 | 4351 conversation_deleting_cb(PurpleConversation *conv, PidginBuddyList *gtkblist) |
4352 { | |
4353 conversation_updated_cb(conv, PURPLE_CONV_UPDATE_UNSEEN, gtkblist); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4354 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4355 |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4356 static void |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4357 conversation_deleted_update_ui_cb(PurpleConversation *conv, struct _pidgin_blist_node *ui) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4358 { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4359 if (ui->conv.conv != conv) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4360 return; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4361 ui->conv.conv = NULL; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4362 ui->conv.flags = 0; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4363 ui->conv.last_message = 0; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4364 } |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4365 |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4366 static void |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4367 written_msg_update_ui_cb(PurpleAccount *account, const char *who, const char *message, |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4368 PurpleConversation *conv, PurpleMessageFlags flag, PurpleBlistNode *node) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4369 { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4370 PidginBlistNode *ui = node->ui_data; |
21772
21371ea85970
Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21771
diff
changeset
|
4371 if (ui->conv.conv != conv || !pidgin_conv_is_hidden(PIDGIN_CONVERSATION(conv)) || |
20050
20c336838629
Do not boldify the chat in the buddylist for unread system messages.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20049
diff
changeset
|
4372 !(flag & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV))) |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4373 return; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4374 ui->conv.flags |= PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE; |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
4375 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
4376 && (flag & PURPLE_MESSAGE_NICK)) |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
4377 ui->conv.flags |= PIDGIN_BLIST_CHAT_HAS_PENDING_MESSAGE_WITH_NICK; |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
4378 |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4379 ui->conv.last_message = time(NULL); /* XXX: for lack of better data */ |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4380 pidgin_blist_update(purple_get_blist(), node); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4381 } |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4382 |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4383 static void |
21772
21371ea85970
Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21771
diff
changeset
|
4384 displayed_msg_update_ui_cb(PidginConversation *gtkconv, PurpleBlistNode *node) |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4385 { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4386 PidginBlistNode *ui = node->ui_data; |
21772
21371ea85970
Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21771
diff
changeset
|
4387 if (ui->conv.conv != gtkconv->active_conv) |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4388 return; |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
4389 ui->conv.flags &= ~(PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE | |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
4390 PIDGIN_BLIST_CHAT_HAS_PENDING_MESSAGE_WITH_NICK); |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4391 pidgin_blist_update(purple_get_blist(), node); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4392 } |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4393 |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4394 static void |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4395 conversation_created_cb(PurpleConversation *conv, PidginBuddyList *gtkblist) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4396 { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4397 switch (conv->type) { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4398 case PURPLE_CONV_TYPE_IM: |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4399 { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4400 GSList *buddies = purple_find_buddies(conv->account, conv->name); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4401 while (buddies) { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4402 PurpleBlistNode *buddy = buddies->data; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4403 struct _pidgin_blist_node *ui = buddy->ui_data; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4404 buddies = g_slist_delete_link(buddies, buddies); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4405 if (!ui) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4406 continue; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4407 ui->conv.conv = conv; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4408 ui->conv.flags = 0; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4409 ui->conv.last_message = 0; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4410 purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation", |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4411 ui, PURPLE_CALLBACK(conversation_deleted_update_ui_cb), ui); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4412 purple_signal_connect(purple_conversations_get_handle(), "wrote-im-msg", |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4413 ui, PURPLE_CALLBACK(written_msg_update_ui_cb), buddy); |
21772
21371ea85970
Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21771
diff
changeset
|
4414 purple_signal_connect(pidgin_conversations_get_handle(), "conversation-displayed", |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4415 ui, PURPLE_CALLBACK(displayed_msg_update_ui_cb), buddy); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4416 } |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4417 } |
21772
21371ea85970
Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21771
diff
changeset
|
4418 break; |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4419 case PURPLE_CONV_TYPE_CHAT: |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4420 { |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4421 PurpleChat *chat = purple_blist_find_chat(conv->account, conv->name); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4422 struct _pidgin_blist_node *ui; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4423 if (!chat) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4424 break; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4425 ui = chat->node.ui_data; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4426 if (!ui) |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4427 break; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4428 ui->conv.conv = conv; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4429 ui->conv.flags = 0; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4430 ui->conv.last_message = 0; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4431 purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation", |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4432 ui, PURPLE_CALLBACK(conversation_deleted_update_ui_cb), ui); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4433 purple_signal_connect(purple_conversations_get_handle(), "wrote-chat-msg", |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4434 ui, PURPLE_CALLBACK(written_msg_update_ui_cb), chat); |
21772
21371ea85970
Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21771
diff
changeset
|
4435 purple_signal_connect(pidgin_conversations_get_handle(), "conversation-displayed", |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4436 ui, PURPLE_CALLBACK(displayed_msg_update_ui_cb), chat); |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4437 } |
21772
21371ea85970
Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21771
diff
changeset
|
4438 break; |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4439 default: |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4440 break; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4441 } |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4442 } |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
4443 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4444 /********************************************************************************** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4445 * Public API Functions * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4446 **********************************************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4447 |
15823 | 4448 static void pidgin_blist_new_list(PurpleBuddyList *blist) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4449 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4450 PidginBuddyList *gtkblist; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4451 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4452 gtkblist = g_new0(PidginBuddyList, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4453 gtkblist->connection_errors = g_hash_table_new_full(g_direct_hash, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4454 g_direct_equal, NULL, g_free); |
22108
e21cdaffbcdb
Plug a small leak.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22087
diff
changeset
|
4455 gtkblist->priv = g_new0(PidginBuddyListPrivate, 1); |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4456 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4457 blist->ui_data = gtkblist; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4458 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4459 |
15823 | 4460 static void pidgin_blist_new_node(PurpleBlistNode *node) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4461 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4462 node->ui_data = g_new0(struct _pidgin_blist_node, 1); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4463 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4464 |
15823 | 4465 gboolean pidgin_blist_node_is_contact_expanded(PurpleBlistNode *node) |
4466 { | |
17830
0e445e906cfd
Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <stu@nosnilmot.com>
parents:
17789
diff
changeset
|
4467 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4468 node = node->parent; |
17830
0e445e906cfd
Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <stu@nosnilmot.com>
parents:
17789
diff
changeset
|
4469 if (node == NULL) |
0e445e906cfd
Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <stu@nosnilmot.com>
parents:
17789
diff
changeset
|
4470 return FALSE; |
0e445e906cfd
Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <stu@nosnilmot.com>
parents:
17789
diff
changeset
|
4471 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4472 |
15823 | 4473 g_return_val_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node), FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4474 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4475 return ((struct _pidgin_blist_node *)node->ui_data)->contact_expanded; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4476 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4477 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4478 enum { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4479 DRAG_BUDDY, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4480 DRAG_ROW, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4481 DRAG_VCARD, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4482 DRAG_TEXT, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4483 DRAG_URI, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4484 NUM_TARGETS |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4485 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4486 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4487 static const char * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4488 item_factory_translate_func (const char *path, gpointer func_data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4489 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4490 return _((char *)path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4491 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4492 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4493 void pidgin_blist_setup_sort_methods() |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4494 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4495 pidgin_blist_sort_method_reg("none", _("Manually"), sort_method_none); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4496 #if GTK_CHECK_VERSION(2,2,1) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4497 pidgin_blist_sort_method_reg("alphabetical", _("Alphabetically"), sort_method_alphabetical); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4498 pidgin_blist_sort_method_reg("status", _("By status"), sort_method_status); |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
4499 pidgin_blist_sort_method_reg("log_size", _("By recent log activity"), sort_method_log_activity); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4500 #endif |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
4501 pidgin_blist_sort_method_set(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/sort_type")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4502 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4503 |
22011
76e0463db3aa
Squash some compiler warnings, some from my -Wstrict-prototypes fixing.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
4504 static void _prefs_change_redo_list(const char *name, PurplePrefType type, |
76e0463db3aa
Squash some compiler warnings, some from my -Wstrict-prototypes fixing.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
4505 gconstpointer val, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4506 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4507 GtkTreeSelection *sel; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4508 GtkTreeIter iter; |
15823 | 4509 PurpleBlistNode *node = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4510 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4511 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4512 if (gtk_tree_selection_get_selected(sel, NULL, &iter)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4513 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4514 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4515 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4516 |
15823 | 4517 redo_buddy_list(purple_get_blist(), FALSE, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4518 #if GTK_CHECK_VERSION(2,6,0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4519 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(gtkblist->treeview)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4520 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4521 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4522 if (node) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4523 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4524 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4525 GtkTreePath *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4526 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4527 gtknode = node->ui_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4528 if (gtknode && gtknode->row) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4529 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4530 path = gtk_tree_row_reference_get_path(gtknode->row); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4531 gtk_tree_selection_select_path(sel, path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4532 gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(gtkblist->treeview), path, NULL, FALSE, 0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4533 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4534 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4535 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4536 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4537 |
15823 | 4538 static void _prefs_change_sort_method(const char *pref_name, PurplePrefType type, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4539 gconstpointer val, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4540 { |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
4541 if(!strcmp(pref_name, PIDGIN_PREFS_ROOT "/blist/sort_type")) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4542 pidgin_blist_sort_method_set(val); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4543 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4544 |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4545 static gboolean pidgin_blist_select_notebook_page_cb(gpointer user_data) |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4546 { |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4547 PidginBuddyList *gtkblist = (PidginBuddyList *)user_data; |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4548 int errors = 0; |
21644
6018f0ba6aca
Patch from DB42 to add a little '' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21622
diff
changeset
|
4549 GList *list = NULL; |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4550 PidginBuddyListPrivate *priv; |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4551 |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4552 priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4553 |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4554 /* this is far too ugly thanks to me not wanting to fix #3989 properly right now */ |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4555 if (priv->error_scrollbook != NULL) { |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4556 #if GTK_CHECK_VERSION(2,2,0) |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4557 errors = gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv->error_scrollbook->notebook)); |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4558 #else |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4559 errors = g_list_length(GTK_NOTEBOOK(priv->error_scrollbook->notebook)->children); |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4560 #endif |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4561 } |
21644
6018f0ba6aca
Patch from DB42 to add a little '' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21622
diff
changeset
|
4562 if ((list = purple_accounts_get_all_active()) != NULL || errors) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4563 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4564 g_list_free(list); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4565 } else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4566 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4567 |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4568 return FALSE; |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4569 } |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4570 |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4571 static void pidgin_blist_select_notebook_page(PidginBuddyList *gtkblist) |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4572 { |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4573 purple_timeout_add(0, pidgin_blist_select_notebook_page_cb, gtkblist); |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4574 } |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4575 |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4576 static void account_modified(PurpleAccount *account, PidginBuddyList *gtkblist) |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4577 { |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4578 if (!gtkblist) |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4579 return; |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4580 |
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4581 pidgin_blist_select_notebook_page(gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4582 update_menu_bar(gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4583 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4584 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4585 static void |
15823 | 4586 account_status_changed(PurpleAccount *account, PurpleStatus *old, |
4587 PurpleStatus *new, PidginBuddyList *gtkblist) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4588 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4589 if (!gtkblist) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4590 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4591 |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4592 account_modified(account, gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4593 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4594 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4595 static gboolean |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4596 gtk_blist_window_key_press_cb(GtkWidget *w, GdkEventKey *event, PidginBuddyList *gtkblist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4597 { |
17519
e83972691531
Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
4598 GtkWidget *widget; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4599 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4600 if (!gtkblist) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4601 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4602 |
25103
33ceb2b708cf
Close the tooltip window on a keypress event. Fixes #8150.
Kosta Arvanitis <karvanitis@hotmail.com>
parents:
25076
diff
changeset
|
4603 /* clear any tooltips */ |
33ceb2b708cf
Close the tooltip window on a keypress event. Fixes #8150.
Kosta Arvanitis <karvanitis@hotmail.com>
parents:
25076
diff
changeset
|
4604 pidgin_blist_tooltip_destroy(); |
33ceb2b708cf
Close the tooltip window on a keypress event. Fixes #8150.
Kosta Arvanitis <karvanitis@hotmail.com>
parents:
25076
diff
changeset
|
4605 |
17519
e83972691531
Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
4606 widget = gtk_window_get_focus(GTK_WINDOW(gtkblist->window)); |
e83972691531
Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
4607 |
e83972691531
Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
4608 if (GTK_IS_IMHTML(widget) || GTK_IS_ENTRY(widget)) { |
e83972691531
Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
4609 if (gtk_bindings_activate(GTK_OBJECT(widget), event->keyval, event->state)) |
e83972691531
Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
4610 return TRUE; |
e83972691531
Fix #1284. "Pressing Ctrl+C while editing a buddy list alias shouldn't "Join a chat""
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
4611 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4612 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4613 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4614 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4615 static gboolean |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4616 headline_hover_close(int x, int y) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4617 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4618 GtkWidget *w = gtkblist->headline_hbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4619 if (x <= w->allocation.width && x >= w->allocation.width - HEADLINE_CLOSE_SIZE && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4620 y >= 0 && y <= HEADLINE_CLOSE_SIZE) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4621 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4622 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4623 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4624 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4625 static gboolean |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4626 headline_box_enter_cb(GtkWidget *widget, GdkEventCrossing *event, PidginBuddyList *gtkblist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4627 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4628 gdk_window_set_cursor(widget->window, gtkblist->hand_cursor); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4629 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4630 if (gtkblist->headline_close) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4631 #if GTK_CHECK_VERSION(2,2,0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4632 gdk_draw_pixbuf(widget->window, NULL, gtkblist->headline_close, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4633 #else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4634 gdk_pixbuf_render_to_drawable(gtkblist->headline_close, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4635 GDK_DRAWABLE(widget->window), NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4636 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4637 0, 0, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4638 widget->allocation.width - 2 - HEADLINE_CLOSE_SIZE, 2, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4639 HEADLINE_CLOSE_SIZE, HEADLINE_CLOSE_SIZE, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4640 GDK_RGB_DITHER_NONE, 0, 0); |
21397
521df9b2698a
Work around a bug in vim's bracket matching, whereby it doesn't realise that
Will Thompson <will.thompson@collabora.co.uk>
parents:
21396
diff
changeset
|
4641 #if 0 |
521df9b2698a
Work around a bug in vim's bracket matching, whereby it doesn't realise that
Will Thompson <will.thompson@collabora.co.uk>
parents:
21396
diff
changeset
|
4642 /* The presence of one opening paren in each branch of |
521df9b2698a
Work around a bug in vim's bracket matching, whereby it doesn't realise that
Will Thompson <will.thompson@collabora.co.uk>
parents:
21396
diff
changeset
|
4643 * GTK_CHECK_VERSION confuses vim's bracket matching for the |
521df9b2698a
Work around a bug in vim's bracket matching, whereby it doesn't realise that
Will Thompson <will.thompson@collabora.co.uk>
parents:
21396
diff
changeset
|
4644 * rest of the file. |
521df9b2698a
Work around a bug in vim's bracket matching, whereby it doesn't realise that
Will Thompson <will.thompson@collabora.co.uk>
parents:
21396
diff
changeset
|
4645 */ |
521df9b2698a
Work around a bug in vim's bracket matching, whereby it doesn't realise that
Will Thompson <will.thompson@collabora.co.uk>
parents:
21396
diff
changeset
|
4646 ) |
521df9b2698a
Work around a bug in vim's bracket matching, whereby it doesn't realise that
Will Thompson <will.thompson@collabora.co.uk>
parents:
21396
diff
changeset
|
4647 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4648 gtk_paint_focus(widget->style, widget->window, GTK_STATE_PRELIGHT, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4649 NULL, widget, NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4650 widget->allocation.width - HEADLINE_CLOSE_SIZE - 3, 1, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4651 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4652 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4653 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4654 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4655 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4656 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4657 #if 0 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4658 static gboolean |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4659 headline_box_motion_cb(GtkWidget *widget, GdkEventMotion *event, PidginBuddyList *gtkblist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4660 { |
15823 | 4661 purple_debug_fatal("motion", "%d %d\n", (int)event->x, (int)event->y); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4662 if (headline_hover_close((int)event->x, (int)event->y)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4663 gtk_paint_focus(widget->style, widget->window, GTK_STATE_PRELIGHT, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4664 NULL, widget, NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4665 widget->allocation.width - HEADLINE_CLOSE_SIZE - 3, 1, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4666 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4667 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4668 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4669 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4670 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4671 static gboolean |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4672 headline_box_leave_cb(GtkWidget *widget, GdkEventCrossing *event, PidginBuddyList *gtkblist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4673 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4674 gdk_window_set_cursor(widget->window, gtkblist->arrow_cursor); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4675 if (gtkblist->headline_close) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4676 GdkRectangle rect = {widget->allocation.width - 3 - HEADLINE_CLOSE_SIZE, 1, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4677 HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2}; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4678 gdk_window_invalidate_rect(widget->window, &rect, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4679 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4680 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4681 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4682 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4683 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4684 reset_headline(PidginBuddyList *gtkblist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4685 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4686 gtkblist->headline_callback = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4687 gtkblist->headline_data = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4688 gtkblist->headline_destroy = NULL; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4689 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4690 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4691 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4692 static gboolean |
22662
84dc71e67a72
Fix a null pointer deref (hopefully). I haven't been able to consistently
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22646
diff
changeset
|
4693 headline_click_callback(gpointer unused) |
84dc71e67a72
Fix a null pointer deref (hopefully). I haven't been able to consistently
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22646
diff
changeset
|
4694 { |
84dc71e67a72
Fix a null pointer deref (hopefully). I haven't been able to consistently
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22646
diff
changeset
|
4695 if (gtkblist->headline_callback) |
84dc71e67a72
Fix a null pointer deref (hopefully). I haven't been able to consistently
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22646
diff
changeset
|
4696 ((GSourceFunc) gtkblist->headline_callback)(gtkblist->headline_data); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4697 reset_headline(gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4698 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4699 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4700 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4701 static gboolean |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4702 headline_box_press_cb(GtkWidget *widget, GdkEventButton *event, PidginBuddyList *gtkblist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4703 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4704 gtk_widget_hide(gtkblist->headline_hbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4705 if (gtkblist->headline_callback && !headline_hover_close((int)event->x, (int)event->y)) |
22662
84dc71e67a72
Fix a null pointer deref (hopefully). I haven't been able to consistently
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22646
diff
changeset
|
4706 g_idle_add(headline_click_callback, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4707 else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4708 if (gtkblist->headline_destroy) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4709 gtkblist->headline_destroy(gtkblist->headline_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4710 reset_headline(gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4711 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4712 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4713 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4714 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4715 /***********************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4716 /* Connection error handling stuff */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4717 /***********************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4718 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4719 #define OBJECT_DATA_KEY_ACCOUNT "account" |
22297
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4720 #define DO_NOT_CLEAR_ERROR "do-not-clear-error" |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4721 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4722 static gboolean |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4723 find_account_widget(GObject *widget, |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4724 PurpleAccount *account) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4725 { |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4726 if (g_object_get_data(widget, OBJECT_DATA_KEY_ACCOUNT) == account) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4727 return 0; /* found */ |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4728 else |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4729 return 1; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4730 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4731 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4732 static void |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4733 pack_prpl_icon_start(GtkWidget *box, |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4734 PurpleAccount *account) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4735 { |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4736 GdkPixbuf *pixbuf; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4737 GtkWidget *image; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4738 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4739 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4740 if (pixbuf != NULL) { |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4741 image = gtk_image_new_from_pixbuf(pixbuf); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4742 g_object_unref(pixbuf); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4743 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4744 gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 0); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4745 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4746 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4747 |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4748 static void |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4749 add_error_dialog(PidginBuddyList *gtkblist, |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4750 GtkWidget *dialog) |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4751 { |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4752 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4753 gtk_container_add(GTK_CONTAINER(priv->error_scrollbook), dialog); |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4754 } |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4755 |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4756 static GtkWidget * |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4757 find_child_widget_by_account(GtkContainer *container, |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4758 PurpleAccount *account) |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4759 { |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4760 GList *l = NULL; |
21618
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4761 GList *children = NULL; |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4762 GtkWidget *ret = NULL; |
21618
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4763 /* XXX: Workaround for the currently incomplete implementation of PidginScrollBook */ |
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4764 if (PIDGIN_IS_SCROLL_BOOK(container)) |
21622
1c139f0493b9
Squish a compile warning
Stu Tomlinson <stu@nosnilmot.com>
parents:
21618
diff
changeset
|
4765 container = GTK_CONTAINER(PIDGIN_SCROLL_BOOK(container)->notebook); |
21618
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4766 children = gtk_container_get_children(container); |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4767 l = g_list_find_custom(children, account, (GCompareFunc) find_account_widget); |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4768 if (l) |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4769 ret = GTK_WIDGET(l->data); |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4770 g_list_free(children); |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4771 return ret; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4772 } |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4773 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4774 static void |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4775 remove_child_widget_by_account(GtkContainer *container, |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4776 PurpleAccount *account) |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4777 { |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4778 GtkWidget *widget = find_child_widget_by_account(container, account); |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4779 if(widget) { |
22297
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4780 /* Since we are destroying the widget in response to a change in |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4781 * error, we should not clear the error. |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4782 */ |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4783 g_object_set_data(G_OBJECT(widget), DO_NOT_CLEAR_ERROR, |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4784 GINT_TO_POINTER(TRUE)); |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4785 gtk_widget_destroy(widget); |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4786 } |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4787 } |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4788 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4789 /* Generic error buttons */ |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4790 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4791 static void |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4792 generic_error_modify_cb(PurpleAccount *account) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4793 { |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4794 purple_account_clear_current_error(account); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
4795 pidgin_account_dialog_show(PIDGIN_MODIFY_ACCOUNT_DIALOG, account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4796 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4797 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4798 static void |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4799 generic_error_enable_cb(PurpleAccount *account) |
15823 | 4800 { |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4801 purple_account_clear_current_error(account); |
15823 | 4802 purple_account_set_enabled(account, purple_core_get_ui(), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4803 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4804 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4805 static void |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4806 generic_error_destroy_cb(GtkObject *dialog, |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4807 PurpleAccount *account) |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4808 { |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4809 g_hash_table_remove(gtkblist->connection_errors, account); |
22297
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4810 /* If the error dialog is being destroyed in response to the |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4811 * account-error-changed signal, we don't want to clear the current |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4812 * error. |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4813 */ |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4814 if (g_object_get_data(G_OBJECT(dialog), DO_NOT_CLEAR_ERROR) == NULL) |
00c20312e289
Don't clear account errors during account-error-changed emission. I can't
Will Thompson <will.thompson@collabora.co.uk>
parents:
22113
diff
changeset
|
4815 purple_account_clear_current_error(account); |
21380
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
4816 } |
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
4817 |
21458
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4818 #define SSL_FAQ_URI "http://d.pidgin.im/wiki/FAQssl" |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4819 |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4820 static void |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4821 ssl_faq_clicked_cb(GtkButton *button, |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4822 PurpleAccount *account) |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4823 { |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4824 purple_notify_uri(NULL, SSL_FAQ_URI); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4825 } |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4826 |
21380
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
4827 static void |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4828 add_generic_error_dialog(PurpleAccount *account, |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4829 const PurpleConnectionErrorInfo *err) |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4830 { |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4831 GtkWidget *mini_dialog; |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4832 const char *username = purple_account_get_username(account); |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4833 gboolean enabled = |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4834 purple_account_get_enabled(account, purple_core_get_ui()); |
21413
ccceac5e1976
Say that an account has been disabled if it has been in the title of a generic
Will Thompson <will.thompson@collabora.co.uk>
parents:
21411
diff
changeset
|
4835 char *primary; |
21644
6018f0ba6aca
Patch from DB42 to add a little '' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21622
diff
changeset
|
4836 |
21413
ccceac5e1976
Say that an account has been disabled if it has been in the title of a generic
Will Thompson <will.thompson@collabora.co.uk>
parents:
21411
diff
changeset
|
4837 if (enabled) |
ccceac5e1976
Say that an account has been disabled if it has been in the title of a generic
Will Thompson <will.thompson@collabora.co.uk>
parents:
21411
diff
changeset
|
4838 primary = g_strdup_printf(_("%s disconnected"), username); |
ccceac5e1976
Say that an account has been disabled if it has been in the title of a generic
Will Thompson <will.thompson@collabora.co.uk>
parents:
21411
diff
changeset
|
4839 else |
ccceac5e1976
Say that an account has been disabled if it has been in the title of a generic
Will Thompson <will.thompson@collabora.co.uk>
parents:
21411
diff
changeset
|
4840 primary = g_strdup_printf(_("%s disabled"), username); |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4841 |
21429
3f87c15d8438
Use the error icon rather than the disconnect icon in connection error
Will Thompson <will.thompson@collabora.co.uk>
parents:
21420
diff
changeset
|
4842 mini_dialog = pidgin_make_mini_dialog(NULL, PIDGIN_STOCK_DIALOG_ERROR, |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4843 primary, err->description, account, |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4844 (enabled ? _("Reconnect") : _("Re-enable")), |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4845 (enabled ? PURPLE_CALLBACK(purple_account_connect) |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4846 : PURPLE_CALLBACK(generic_error_enable_cb)), |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4847 _("Modify Account"), PURPLE_CALLBACK(generic_error_modify_cb), |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4848 NULL); |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4849 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4850 g_free(primary); |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4851 |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4852 g_object_set_data(G_OBJECT(mini_dialog), OBJECT_DATA_KEY_ACCOUNT, |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4853 account); |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4854 |
21458
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4855 if(err->type == PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT) { |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4856 GtkWidget *faq_button = gtk_button_new(); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4857 GtkWidget *faq_label = gtk_label_new(NULL); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4858 gtk_label_set_markup(GTK_LABEL(faq_label), |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4859 "<span underline=\"single\" foreground=\"blue\"" |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4860 " size=\"smaller\">" SSL_FAQ_URI "</span>"); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4861 #if GTK_CHECK_VERSION(2,6,0) |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4862 g_object_set(G_OBJECT(faq_label), "ellipsize", |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4863 PANGO_ELLIPSIZE_MIDDLE, NULL); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4864 #endif |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4865 gtk_container_add(GTK_CONTAINER(faq_button), faq_label); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4866 gtk_button_set_relief(GTK_BUTTON(faq_button), GTK_RELIEF_NONE); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4867 |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4868 g_signal_connect(faq_button, "clicked", |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4869 (GCallback)ssl_faq_clicked_cb, account); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4870 |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4871 gtk_box_pack_start(PIDGIN_MINI_DIALOG(mini_dialog)->contents, |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4872 faq_button, FALSE, FALSE, 0); |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4873 } |
11101e8c5793
Add a clickable link to the SSL FAQ to errors about accounts which need SSL
Will Thompson <will.thompson@collabora.co.uk>
parents:
21429
diff
changeset
|
4874 |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4875 g_signal_connect_after(mini_dialog, "destroy", |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4876 (GCallback)generic_error_destroy_cb, |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4877 account); |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4878 |
21411
b089fd1ad059
Hide the description label of the PidginMiniDialog used for signed on elsewhere
Will Thompson <will.thompson@collabora.co.uk>
parents:
21410
diff
changeset
|
4879 add_error_dialog(gtkblist, mini_dialog); |
21380
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
4880 } |
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
4881 |
21373
cbf197042bad
Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21369
diff
changeset
|
4882 static void |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4883 remove_generic_error_dialog(PurpleAccount *account) |
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
4884 { |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
4885 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
21497
e2e70f45307f
Remove account error dialogs from the scrollbook's notebook, not from the
Will Thompson <will.thompson@collabora.co.uk>
parents:
21458
diff
changeset
|
4886 remove_child_widget_by_account( |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
4887 GTK_CONTAINER(priv->error_scrollbook), account); |
21384
5c26dc790c71
Break creating and removing generic error boxes by account into their own
Will Thompson <will.thompson@collabora.co.uk>
parents:
21382
diff
changeset
|
4888 } |
5c26dc790c71
Break creating and removing generic error boxes by account into their own
Will Thompson <will.thompson@collabora.co.uk>
parents:
21382
diff
changeset
|
4889 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4890 |
22298
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4891 static void |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4892 update_generic_error_message(PurpleAccount *account, |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4893 const char *description) |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4894 { |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4895 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4896 GtkWidget *mini_dialog = find_child_widget_by_account( |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4897 GTK_CONTAINER(priv->error_scrollbook), account); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4898 pidgin_mini_dialog_set_description(PIDGIN_MINI_DIALOG(mini_dialog), |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4899 description); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4900 } |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4901 |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
4902 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4903 /* Notifications about accounts which were disconnected with |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4904 * PURPLE_CONNECTION_ERROR_NAME_IN_USE |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4905 */ |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4906 |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4907 typedef void (*AccountFunction)(PurpleAccount *); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4908 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4909 static void |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4910 elsewhere_foreach_account(PidginMiniDialog *mini_dialog, |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4911 AccountFunction f) |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4912 { |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4913 PurpleAccount *account; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4914 GList *labels = gtk_container_get_children( |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4915 GTK_CONTAINER(mini_dialog->contents)); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4916 GList *l; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4917 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4918 for (l = labels; l; l = l->next) { |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4919 account = g_object_get_data(G_OBJECT(l->data), OBJECT_DATA_KEY_ACCOUNT); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4920 if (account) |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4921 f(account); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4922 else |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4923 purple_debug_warning("gtkblist", "mini_dialog's child " |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4924 "didn't have an account stored in it!"); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4925 } |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4926 g_list_free(labels); |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4927 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4928 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4929 static void |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4930 enable_account(PurpleAccount *account) |
15823 | 4931 { |
4932 purple_account_set_enabled(account, purple_core_get_ui(), TRUE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4933 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4934 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4935 static void |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4936 reconnect_elsewhere_accounts(PidginMiniDialog *mini_dialog, |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4937 GtkButton *button, |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4938 gpointer unused) |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4939 { |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4940 elsewhere_foreach_account(mini_dialog, enable_account); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4941 } |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4942 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4943 static void |
21845
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4944 clear_elsewhere_errors(PidginMiniDialog *mini_dialog, |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4945 gpointer unused) |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4946 { |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4947 elsewhere_foreach_account(mini_dialog, purple_account_clear_current_error); |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4948 } |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4949 |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4950 static void |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4951 ensure_signed_on_elsewhere_minidialog(PidginBuddyList *gtkblist) |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4952 { |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4953 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4954 PidginMiniDialog *mini_dialog; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4955 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4956 if(priv->signed_on_elsewhere) |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4957 return; |
21618
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4958 |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4959 mini_dialog = priv->signed_on_elsewhere = |
21662
231a425c3930
Having a long sentence as a title is a bit overly-bold, and I really want this dialog to say 'Welcome back'
Sean Egan <seanegan@gmail.com>
parents:
21660
diff
changeset
|
4960 pidgin_mini_dialog_new(_("Welcome back!"), NULL, PIDGIN_STOCK_DISCONNECT); |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4961 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4962 pidgin_mini_dialog_add_button(mini_dialog, _("Re-enable"), |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4963 reconnect_elsewhere_accounts, NULL); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4964 |
21845
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4965 /* Make dismissing the dialog clear the errors. The "destroy" signal |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4966 * does not appear to fire at quit, which is fortunate! |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4967 */ |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4968 g_signal_connect(G_OBJECT(mini_dialog), "destroy", |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4969 (GCallback) clear_elsewhere_errors, NULL); |
45d1e229fadd
Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents:
21781
diff
changeset
|
4970 |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4971 add_error_dialog(gtkblist, GTK_WIDGET(mini_dialog)); |
21411
b089fd1ad059
Hide the description label of the PidginMiniDialog used for signed on elsewhere
Will Thompson <will.thompson@collabora.co.uk>
parents:
21410
diff
changeset
|
4972 |
b089fd1ad059
Hide the description label of the PidginMiniDialog used for signed on elsewhere
Will Thompson <will.thompson@collabora.co.uk>
parents:
21410
diff
changeset
|
4973 /* Set priv->signed_on_elsewhere to NULL when the dialog is destroyed */ |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4974 g_signal_connect(G_OBJECT(mini_dialog), "destroy", |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4975 (GCallback) gtk_widget_destroyed, &(priv->signed_on_elsewhere)); |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4976 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4977 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4978 static void |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4979 update_signed_on_elsewhere_minidialog_title(void) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4980 { |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4981 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4982 PidginMiniDialog *mini_dialog = priv->signed_on_elsewhere; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4983 guint accounts; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4984 char *title; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4985 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4986 if (mini_dialog == NULL) |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4987 return; |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4988 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4989 accounts = pidgin_mini_dialog_get_num_children(mini_dialog); |
21618
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4990 if (accounts == 0) { |
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4991 gtk_widget_destroy(GTK_WIDGET(mini_dialog)); |
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4992 return; |
85fc97ffe538
Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21583
diff
changeset
|
4993 } |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4994 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
4995 title = g_strdup_printf( |
21662
231a425c3930
Having a long sentence as a title is a bit overly-bold, and I really want this dialog to say 'Welcome back'
Sean Egan <seanegan@gmail.com>
parents:
21660
diff
changeset
|
4996 ngettext("%d account was disabled because you signed on from another location:", |
231a425c3930
Having a long sentence as a title is a bit overly-bold, and I really want this dialog to say 'Welcome back'
Sean Egan <seanegan@gmail.com>
parents:
21660
diff
changeset
|
4997 "%d accounts were disabled because you signed on from another location:", |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4998 accounts), |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
4999 accounts); |
21662
231a425c3930
Having a long sentence as a title is a bit overly-bold, and I really want this dialog to say 'Welcome back'
Sean Egan <seanegan@gmail.com>
parents:
21660
diff
changeset
|
5000 pidgin_mini_dialog_set_description(mini_dialog, title); |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5001 g_free(title); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5002 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5003 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5004 static GtkWidget * |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5005 create_account_label(PurpleAccount *account) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5006 { |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5007 GtkWidget *hbox, *label; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5008 const char *username = purple_account_get_username(account); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5009 char *markup; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5010 |
17044
c28f4593f723
Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@gmail.com>
parents:
17042
diff
changeset
|
5011 hbox = gtk_hbox_new(FALSE, 6); |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5012 g_object_set_data(G_OBJECT(hbox), OBJECT_DATA_KEY_ACCOUNT, account); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5013 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5014 pack_prpl_icon_start(hbox, account); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5015 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5016 label = gtk_label_new(NULL); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5017 markup = g_strdup_printf("<span size=\"smaller\">%s</span>", username); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5018 gtk_label_set_markup(GTK_LABEL(label), markup); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5019 g_free(markup); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5020 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5021 #if GTK_CHECK_VERSION(2,6,0) |
21396
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5022 g_object_set(G_OBJECT(label), "ellipsize", PANGO_ELLIPSIZE_END, NULL); |
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5023 #endif |
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5024 #if GTK_CHECK_VERSION(2,12,0) |
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5025 { /* avoid unused variable warnings on pre-2.12 Gtk */ |
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5026 char *description = |
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5027 purple_account_get_current_error(account)->description; |
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5028 if (description != NULL && *description != '\0') |
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5029 gtk_widget_set_tooltip_text(label, description); |
78f8a19785b1
Add a tooltip to each account's label in the signed on elsewhere minidialog,
Will Thompson <will.thompson@collabora.co.uk>
parents:
21395
diff
changeset
|
5030 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5031 #endif |
17044
c28f4593f723
Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@gmail.com>
parents:
17042
diff
changeset
|
5032 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5033 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5034 return hbox; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5035 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5036 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5037 static void |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5038 add_to_signed_on_elsewhere(PurpleAccount *account) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5039 { |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5040 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5041 PidginMiniDialog *mini_dialog; |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5042 GtkWidget *account_label; |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5043 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5044 ensure_signed_on_elsewhere_minidialog(gtkblist); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5045 mini_dialog = priv->signed_on_elsewhere; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5046 |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5047 if(find_child_widget_by_account(GTK_CONTAINER(mini_dialog->contents), account)) |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5048 return; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5049 |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5050 account_label = create_account_label(account); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5051 gtk_box_pack_start(mini_dialog->contents, account_label, FALSE, FALSE, 0); |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5052 gtk_widget_show_all(account_label); |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5053 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5054 update_signed_on_elsewhere_minidialog_title(); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5055 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5056 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5057 static void |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5058 remove_from_signed_on_elsewhere(PurpleAccount *account) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5059 { |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5060 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5061 PidginMiniDialog *mini_dialog = priv->signed_on_elsewhere; |
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5062 if(mini_dialog == NULL) |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5063 return; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5064 |
21410
4ccc4ad0a8b0
Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21401
diff
changeset
|
5065 remove_child_widget_by_account(GTK_CONTAINER(mini_dialog->contents), account); |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5066 |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5067 update_signed_on_elsewhere_minidialog_title(); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5068 } |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5069 |
21395
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5070 |
22298
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5071 static void |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5072 update_signed_on_elsewhere_tooltip(PurpleAccount *account, |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5073 const char *description) |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5074 { |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5075 #if GTK_CHECK_VERSION(2,12,0) |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5076 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5077 GtkContainer *c = GTK_CONTAINER(priv->signed_on_elsewhere->contents); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5078 GtkWidget *label = find_child_widget_by_account(c, account); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5079 gtk_widget_set_tooltip_text(label, description); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5080 #endif |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5081 } |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5082 |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5083 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5084 /* Call appropriate error notification code based on error types */ |
21384
5c26dc790c71
Break creating and removing generic error boxes by account into their own
Will Thompson <will.thompson@collabora.co.uk>
parents:
21382
diff
changeset
|
5085 static void |
21373
cbf197042bad
Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21369
diff
changeset
|
5086 update_account_error_state(PurpleAccount *account, |
21378
c1033e943d2a
The two PurpleConnectionErrorInfo parameters are meant to be const.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21377
diff
changeset
|
5087 const PurpleConnectionErrorInfo *old, |
c1033e943d2a
The two PurpleConnectionErrorInfo parameters are meant to be const.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21377
diff
changeset
|
5088 const PurpleConnectionErrorInfo *new, |
21373
cbf197042bad
Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21369
diff
changeset
|
5089 PidginBuddyList *gtkblist) |
cbf197042bad
Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21369
diff
changeset
|
5090 { |
22298
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5091 gboolean descriptions_differ; |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5092 const char *desc; |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5093 |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5094 if (old == NULL && new == NULL) |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5095 return; |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5096 |
21380
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
5097 /* For backwards compatibility: */ |
21373
cbf197042bad
Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21369
diff
changeset
|
5098 if (new) |
cbf197042bad
Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21369
diff
changeset
|
5099 pidgin_blist_update_account_error_state(account, new->description); |
21369
318b3f5d1516
Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents:
21368
diff
changeset
|
5100 else |
318b3f5d1516
Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents:
21368
diff
changeset
|
5101 pidgin_blist_update_account_error_state(account, NULL); |
21380
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
5102 |
22298
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5103 if (new != NULL) |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5104 pidgin_blist_select_notebook_page(gtkblist); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5105 |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5106 if (old != NULL && new == NULL) { |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5107 if(old->type == PURPLE_CONNECTION_ERROR_NAME_IN_USE) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5108 remove_from_signed_on_elsewhere(account); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5109 else |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
5110 remove_generic_error_dialog(account); |
22298
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5111 return; |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5112 } |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5113 |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5114 if (old == NULL && new != NULL) { |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5115 if(new->type == PURPLE_CONNECTION_ERROR_NAME_IN_USE) |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5116 add_to_signed_on_elsewhere(account); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
5117 else |
21398
0a7cccd6d081
Use minidialogs rather than horrifying buttons with red text to notify the user
Will Thompson <will.thompson@collabora.co.uk>
parents:
21397
diff
changeset
|
5118 add_generic_error_dialog(account, new); |
22298
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5119 return; |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5120 } |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5121 |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5122 /* else, new and old are both non-NULL */ |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5123 |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5124 descriptions_differ = strcmp(old->description, new->description); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5125 desc = new->description; |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5126 |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5127 switch (new->type) { |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5128 case PURPLE_CONNECTION_ERROR_NAME_IN_USE: |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5129 if (old->type == PURPLE_CONNECTION_ERROR_NAME_IN_USE |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5130 && descriptions_differ) { |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5131 update_signed_on_elsewhere_tooltip(account, desc); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5132 } else { |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5133 remove_generic_error_dialog(account); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5134 add_to_signed_on_elsewhere(account); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5135 } |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5136 break; |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5137 default: |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5138 if (old->type == PURPLE_CONNECTION_ERROR_NAME_IN_USE) { |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5139 remove_from_signed_on_elsewhere(account); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5140 add_generic_error_dialog(account, new); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5141 } else if (descriptions_differ) { |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5142 update_generic_error_message(account, desc); |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5143 } |
7c5734075af3
Rework update_account_error_state to reuse existing mini-dialogs if they exist,
Will Thompson <will.thompson@collabora.co.uk>
parents:
22297
diff
changeset
|
5144 break; |
21380
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
5145 } |
21369
318b3f5d1516
Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents:
21368
diff
changeset
|
5146 } |
318b3f5d1516
Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents:
21368
diff
changeset
|
5147 |
21395
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5148 /* In case accounts are loaded before the blist (which they currently are), |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5149 * let's call update_account_error_state ourselves on every account's current |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5150 * state when the blist starts. |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5151 */ |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5152 static void |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5153 show_initial_account_errors(PidginBuddyList *gtkblist) |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5154 { |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5155 GList *l = purple_accounts_get_all(); |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5156 PurpleAccount *account; |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5157 const PurpleConnectionErrorInfo *err; |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5158 |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5159 for (; l; l = l->next) |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5160 { |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5161 account = l->data; |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5162 err = purple_account_get_current_error(account); |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5163 |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5164 update_account_error_state(account, NULL, err, gtkblist); |
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5165 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5166 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5167 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5168 void |
15823 | 5169 pidgin_blist_update_account_error_state(PurpleAccount *account, const char *text) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5170 { |
21380
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
5171 /* connection_errors isn't actually used anywhere; it's just kept in |
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
5172 * sync with reality in case a plugin uses it. |
a62b60a5745d
* When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents:
21378
diff
changeset
|
5173 */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5174 if (text == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5175 g_hash_table_remove(gtkblist->connection_errors, account); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5176 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5177 g_hash_table_insert(gtkblist->connection_errors, account, g_strdup(text)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5178 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5179 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5180 static gboolean |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5181 paint_headline_hbox (GtkWidget *widget, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5182 GdkEventExpose *event, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5183 gpointer user_data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5184 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5185 gtk_paint_flat_box (widget->style, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5186 widget->window, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5187 GTK_STATE_NORMAL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5188 GTK_SHADOW_OUT, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5189 NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5190 widget, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5191 "tooltip", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5192 widget->allocation.x + 1, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5193 widget->allocation.y + 1, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5194 widget->allocation.width - 2, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5195 widget->allocation.height - 2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5196 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5197 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5198 |
15558
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5199 /* This assumes there are not things like groupless buddies or multi-leveled groups. |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5200 * I'm sure other things in this code assumes that also. |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5201 */ |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5202 static void |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5203 treeview_style_set (GtkWidget *widget, |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5204 GtkStyle *prev_style, |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5205 gpointer data) |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5206 { |
15823 | 5207 PurpleBuddyList *list = data; |
5208 PurpleBlistNode *node = list->root; | |
15558
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5209 while (node) { |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5210 pidgin_blist_update_group(list, node); |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5211 node = node->next; |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5212 } |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5213 } |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5214 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5215 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5216 headline_style_set (GtkWidget *widget, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5217 GtkStyle *prev_style) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5218 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5219 GtkTooltips *tooltips; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5220 GtkStyle *style; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5221 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5222 if (gtkblist->changing_style) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5223 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5224 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5225 tooltips = gtk_tooltips_new (); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5226 #if GLIB_CHECK_VERSION(2,10,0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5227 g_object_ref_sink (tooltips); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5228 #else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5229 g_object_ref(tooltips); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5230 gtk_object_sink(GTK_OBJECT(tooltips)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5231 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5232 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5233 gtk_tooltips_force_window (tooltips); |
21956
d1f282dbbda1
Patch from Ignacio Casal Quinteiro (nacho) to fix style issues with the headline in the buddylist. Closes #4351.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21945
diff
changeset
|
5234 #if GTK_CHECK_VERSION(2, 12, 0) |
d1f282dbbda1
Patch from Ignacio Casal Quinteiro (nacho) to fix style issues with the headline in the buddylist. Closes #4351.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21945
diff
changeset
|
5235 gtk_widget_set_name (tooltips->tip_window, "gtk-tooltips"); |
d1f282dbbda1
Patch from Ignacio Casal Quinteiro (nacho) to fix style issues with the headline in the buddylist. Closes #4351.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21945
diff
changeset
|
5236 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5237 gtk_widget_ensure_style (tooltips->tip_window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5238 style = gtk_widget_get_style (tooltips->tip_window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5239 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5240 gtkblist->changing_style = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5241 gtk_widget_set_style (gtkblist->headline_hbox, style); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5242 gtkblist->changing_style = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5243 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5244 g_object_unref (tooltips); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5245 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5246 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5247 /******************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5248 /* End of connection error handling stuff */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5249 /******************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5250 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5251 static int |
22898
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5252 blist_focus_cb(GtkWidget *widget, GdkEventFocus *event, PidginBuddyList *gtkblist) |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5253 { |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5254 if(event->in) { |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5255 gtk_blist_focused = TRUE; |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5256 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), FALSE); |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5257 } else { |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5258 gtk_blist_focused = FALSE; |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5259 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5260 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5261 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5262 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5263 #if 0 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5264 static GtkWidget * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5265 kiosk_page() |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5266 { |
15821 | 5267 GtkWidget *ret = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5268 GtkWidget *label; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5269 GtkWidget *entry; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5270 GtkWidget *bbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5271 GtkWidget *button; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5272 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5273 label = gtk_label_new(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5274 gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5275 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5276 label = gtk_label_new(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5277 gtk_label_set_markup(GTK_LABEL(label), _("<b>Username:</b>")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5278 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5279 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5280 entry = gtk_entry_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5281 gtk_box_pack_start(GTK_BOX(ret), entry, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5282 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5283 label = gtk_label_new(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5284 gtk_label_set_markup(GTK_LABEL(label), _("<b>Password:</b>")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5285 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5286 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5287 entry = gtk_entry_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5288 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5289 gtk_box_pack_start(GTK_BOX(ret), entry, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5290 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5291 label = gtk_label_new(" "); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5292 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5293 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5294 bbox = gtk_hbutton_box_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5295 button = gtk_button_new_with_mnemonic(_("_Login")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5296 gtk_box_pack_start(GTK_BOX(ret), bbox, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5297 gtk_container_add(GTK_CONTAINER(bbox), button); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5298 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5299 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5300 label = gtk_label_new(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5301 gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5302 |
15821 | 5303 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5304 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5305 gtk_widget_show_all(ret); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5306 return ret; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5307 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5308 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5309 |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5310 /* builds the blist layout according to to the current theme */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5311 static void |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5312 pidgin_blist_build_layout(PurpleBuddyList *list) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5313 { |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5314 GtkTreeViewColumn *column; |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5315 PidginBlistLayout *layout; |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5316 PidginBlistTheme *theme; |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5317 GtkCellRenderer *rend; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5318 gint i, status_icon = 0, text = 1, emblem = 2, protocol_icon = 3, buddy_icon = 4; |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
5319 |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5320 |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5321 column = gtkblist->text_column; |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5322 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5323 if ((theme = pidgin_blist_get_theme()) != NULL && (layout = pidgin_blist_theme_get_layout(theme)) != NULL) { |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
5324 status_icon = layout->status_icon ; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5325 text = layout->text; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5326 emblem = layout->emblem; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5327 protocol_icon = layout->protocol_icon; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5328 buddy_icon = layout->buddy_icon; |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5329 } |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5330 |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5331 gtk_tree_view_column_clear(column); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5332 |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5333 /* group */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5334 rend = pidgin_cell_renderer_expander_new(); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5335 gtk_tree_view_column_pack_start(column, rend, FALSE); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5336 gtk_tree_view_column_set_attributes(column, rend, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5337 "visible", GROUP_EXPANDER_VISIBLE_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5338 "expander-visible", GROUP_EXPANDER_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5339 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5340 "sensitive", GROUP_EXPANDER_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5341 "cell-background-gdk", BGCOLOR_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5342 #endif |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5343 NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5344 |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5345 /* contact */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5346 rend = pidgin_cell_renderer_expander_new(); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5347 gtk_tree_view_column_pack_start(column, rend, FALSE); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5348 gtk_tree_view_column_set_attributes(column, rend, |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5349 "visible", CONTACT_EXPANDER_VISIBLE_COLUMN, |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5350 "expander-visible", CONTACT_EXPANDER_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5351 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5352 "sensitive", CONTACT_EXPANDER_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5353 "cell-background-gdk", BGCOLOR_COLUMN, |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
5354 #endif |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5355 NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5356 |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5357 for (i = 0; i < 5; i++) { |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5358 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
5359 if (status_icon == i) { |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5360 /* status icons */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5361 rend = gtk_cell_renderer_pixbuf_new(); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5362 gtk_tree_view_column_pack_start(column, rend, FALSE); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5363 gtk_tree_view_column_set_attributes(column, rend, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5364 "pixbuf", STATUS_ICON_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5365 "visible", STATUS_ICON_VISIBLE_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5366 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5367 "cell-background-gdk", BGCOLOR_COLUMN, |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
5368 #endif |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5369 NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5370 g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5371 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5372 } else if (text == i) { |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5373 /* name */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5374 gtkblist->text_rend = rend = gtk_cell_renderer_text_new(); |
23703
1a4417138a8f
clean up formatting, and added render settings for the names/markup on the blist
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23700
diff
changeset
|
5375 gtk_tree_view_column_pack_start(column, rend, TRUE); |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5376 gtk_tree_view_column_set_attributes(column, rend, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5377 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5378 "cell-background-gdk", BGCOLOR_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5379 #endif |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5380 "markup", NAME_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5381 NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5382 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5383 g_signal_connect(G_OBJECT(rend), "editing-started", G_CALLBACK(gtk_blist_renderer_editing_started_cb), NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5384 g_signal_connect(G_OBJECT(rend), "editing-canceled", G_CALLBACK(gtk_blist_renderer_editing_cancelled_cb), list); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5385 #endif |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5386 g_signal_connect(G_OBJECT(rend), "edited", G_CALLBACK(gtk_blist_renderer_edited_cb), list); |
23703
1a4417138a8f
clean up formatting, and added render settings for the names/markup on the blist
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23700
diff
changeset
|
5387 g_object_set(rend, "ypad", 0, "yalign", 0.5, NULL); |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5388 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5389 g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END, NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5390 #endif |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5391 |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5392 /* idle */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5393 rend = gtk_cell_renderer_text_new(); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5394 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5395 gtk_tree_view_column_pack_start(column, rend, FALSE); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5396 gtk_tree_view_column_set_attributes(column, rend, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5397 "markup", IDLE_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5398 "visible", IDLE_VISIBLE_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5399 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5400 "cell-background-gdk", BGCOLOR_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5401 #endif |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5402 NULL); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5403 } else if (emblem == i) { |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5404 /* emblem */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5405 rend = gtk_cell_renderer_pixbuf_new(); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5406 g_object_set(rend, "xalign", 1.0, "yalign", 0.5, "ypad", 0, "xpad", 3, NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5407 gtk_tree_view_column_pack_start(column, rend, FALSE); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5408 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", EMBLEM_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5409 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5410 "cell-background-gdk", BGCOLOR_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5411 #endif |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5412 "visible", EMBLEM_VISIBLE_COLUMN, NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5413 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5414 } else if (protocol_icon == i) { |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5415 /* protocol icon */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5416 rend = gtk_cell_renderer_pixbuf_new(); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5417 gtk_tree_view_column_pack_start(column, rend, FALSE); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5418 gtk_tree_view_column_set_attributes(column, rend, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5419 "pixbuf", PROTOCOL_ICON_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5420 "visible", PROTOCOL_ICON_VISIBLE_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5421 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5422 "cell-background-gdk", BGCOLOR_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5423 #endif |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5424 NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5425 g_object_set(rend, "xalign", 0.0, "xpad", 3, "ypad", 0, NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5426 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5427 } else if (buddy_icon == i) { |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5428 /* buddy icon */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5429 rend = gtk_cell_renderer_pixbuf_new(); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5430 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5431 gtk_tree_view_column_pack_start(column, rend, FALSE); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5432 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", BUDDY_ICON_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5433 #if GTK_CHECK_VERSION(2,6,0) |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5434 "cell-background-gdk", BGCOLOR_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5435 #endif |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5436 "visible", BUDDY_ICON_VISIBLE_COLUMN, |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5437 NULL); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5438 } |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5439 |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5440 }/* end for loop */ |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
5441 |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5442 } |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5443 |
15823 | 5444 static void pidgin_blist_show(PurpleBuddyList *list) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5445 { |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5446 PidginBuddyListPrivate *priv; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5447 void *handle; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5448 GtkTreeViewColumn *column; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5449 GtkWidget *menu; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5450 GtkWidget *ebox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5451 GtkWidget *sw; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5452 GtkWidget *sep; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5453 GtkWidget *label; |
16010
eae8e127e4fb
make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents:
16007
diff
changeset
|
5454 char *pretty, *tmp; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5455 GtkAccelGroup *accel_group; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5456 GtkTreeSelection *selection; |
15823 | 5457 GtkTargetEntry dte[] = {{"PURPLE_BLIST_NODE", GTK_TARGET_SAME_APP, DRAG_ROW}, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5458 {"application/x-im-contact", 0, DRAG_BUDDY}, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5459 {"text/x-vcard", 0, DRAG_VCARD }, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5460 {"text/uri-list", 0, DRAG_URI}, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5461 {"text/plain", 0, DRAG_TEXT}}; |
15823 | 5462 GtkTargetEntry ste[] = {{"PURPLE_BLIST_NODE", GTK_TARGET_SAME_APP, DRAG_ROW}, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5463 {"application/x-im-contact", 0, DRAG_BUDDY}, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5464 {"text/x-vcard", 0, DRAG_VCARD }}; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5465 if (gtkblist && gtkblist->window) { |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5466 purple_blist_set_visible(purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_visible")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5467 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5468 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5469 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5470 gtkblist = PIDGIN_BLIST(list); |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5471 priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5472 |
23478
4aeef8c3cce3
restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23476
diff
changeset
|
5473 priv->current_theme = PIDGIN_BLIST_THEME(purple_theme_manager_find_theme(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/theme"), "blist")); |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
5474 |
15448 | 5475 gtkblist->empty_avatar = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 32, 32); |
5476 gdk_pixbuf_fill(gtkblist->empty_avatar, 0x00000000); | |
15397
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
5477 |
17166 | 5478 gtkblist->window = pidgin_create_window(_("Buddy List"), 0, "buddy_list", TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5479 g_signal_connect(G_OBJECT(gtkblist->window), "focus-in-event", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5480 G_CALLBACK(blist_focus_cb), gtkblist); |
22898
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5481 g_signal_connect(G_OBJECT(gtkblist->window), "focus-out-event", |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
5482 G_CALLBACK(blist_focus_cb), gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5483 GTK_WINDOW(gtkblist->window)->allow_shrink = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5484 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5485 gtkblist->main_vbox = gtk_vbox_new(FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5486 gtk_widget_show(gtkblist->main_vbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5487 gtk_container_add(GTK_CONTAINER(gtkblist->window), gtkblist->main_vbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5488 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5489 g_signal_connect(G_OBJECT(gtkblist->window), "delete_event", G_CALLBACK(gtk_blist_delete_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5490 g_signal_connect(G_OBJECT(gtkblist->window), "configure_event", G_CALLBACK(gtk_blist_configure_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5491 g_signal_connect(G_OBJECT(gtkblist->window), "visibility_notify_event", G_CALLBACK(gtk_blist_visibility_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5492 g_signal_connect(G_OBJECT(gtkblist->window), "window_state_event", G_CALLBACK(gtk_blist_window_state_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5493 g_signal_connect(G_OBJECT(gtkblist->window), "key_press_event", G_CALLBACK(gtk_blist_window_key_press_cb), gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5494 gtk_widget_add_events(gtkblist->window, GDK_VISIBILITY_NOTIFY_MASK); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5495 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5496 /******************************* Menu bar *************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5497 accel_group = gtk_accel_group_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5498 gtk_window_add_accel_group(GTK_WINDOW (gtkblist->window), accel_group); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5499 g_object_unref(accel_group); |
15823 | 5500 gtkblist->ift = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<PurpleMain>", accel_group); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5501 gtk_item_factory_set_translate_func(gtkblist->ift, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5502 (GtkTranslateFunc)item_factory_translate_func, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5503 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5504 gtk_item_factory_create_items(gtkblist->ift, sizeof(blist_menu) / sizeof(*blist_menu), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5505 blist_menu, NULL); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5506 pidgin_load_accels(); |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
5507 g_signal_connect(G_OBJECT(accel_group), "accel-changed", G_CALLBACK(pidgin_save_accels_cb), NULL); |
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
5508 |
15823 | 5509 menu = gtk_item_factory_get_widget(gtkblist->ift, "<PurpleMain>"); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5510 gtkblist->menutray = pidgin_menu_tray_new(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5511 gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtkblist->menutray); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5512 gtk_widget_show(gtkblist->menutray); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5513 gtk_widget_show(menu); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5514 gtk_box_pack_start(GTK_BOX(gtkblist->main_vbox), menu, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5515 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5516 accountmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5517 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5518 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5519 /****************************** Notebook *************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5520 gtkblist->notebook = gtk_notebook_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5521 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gtkblist->notebook), FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5522 gtk_notebook_set_show_border(GTK_NOTEBOOK(gtkblist->notebook), FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5523 gtk_box_pack_start(GTK_BOX(gtkblist->main_vbox), gtkblist->notebook, TRUE, TRUE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5524 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5525 #if 0 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5526 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), kiosk_page(), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5527 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5528 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5529 /* Translators: Please maintain the use of -> and <- to refer to menu heirarchy */ |
16010
eae8e127e4fb
make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents:
16007
diff
changeset
|
5530 tmp = g_strdup_printf(_("<span weight='bold' size='larger'>Welcome to %s!</span>\n\n" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5531 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5532 "You have no accounts enabled. Enable your IM accounts from the " |
23312
a3759c05cc5b
Bring back the unintentionally hidden 'Manage Accounts' dialog. Thanks to
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23309
diff
changeset
|
5533 "<b>Accounts</b> window at <b>Accounts->Manage Accounts</b>. Once you " |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5534 "enable accounts, you'll be able to sign on, set your status, " |
16010
eae8e127e4fb
make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents:
16007
diff
changeset
|
5535 "and talk to your friends."), PIDGIN_NAME); |
eae8e127e4fb
make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents:
16007
diff
changeset
|
5536 pretty = pidgin_make_pretty_arrows(tmp); |
eae8e127e4fb
make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents:
16007
diff
changeset
|
5537 g_free(tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5538 label = gtk_label_new(NULL); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5539 gtk_widget_set_size_request(label, purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width") - 12, -1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5540 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5541 gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5542 gtk_label_set_markup(GTK_LABEL(label), pretty); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5543 g_free(pretty); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5544 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook),label, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5545 gtkblist->vbox = gtk_vbox_new(FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5546 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), gtkblist->vbox, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5547 gtk_widget_show_all(gtkblist->notebook); |
21583
21cbdaf265f6
This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents:
21582
diff
changeset
|
5548 pidgin_blist_select_notebook_page(gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5549 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5550 ebox = gtk_event_box_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5551 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), ebox, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5552 gtkblist->headline_hbox = gtk_hbox_new(FALSE, 3); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5553 gtk_container_set_border_width(GTK_CONTAINER(gtkblist->headline_hbox), 6); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5554 gtk_container_add(GTK_CONTAINER(ebox), gtkblist->headline_hbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5555 gtkblist->headline_image = gtk_image_new_from_pixbuf(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5556 gtk_misc_set_alignment(GTK_MISC(gtkblist->headline_image), 0.0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5557 gtkblist->headline_label = gtk_label_new(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5558 gtk_widget_set_size_request(gtkblist->headline_label, |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5559 purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width")-25,-1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5560 gtk_label_set_line_wrap(GTK_LABEL(gtkblist->headline_label), TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5561 gtk_box_pack_start(GTK_BOX(gtkblist->headline_hbox), gtkblist->headline_image, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5562 gtk_box_pack_start(GTK_BOX(gtkblist->headline_hbox), gtkblist->headline_label, TRUE, TRUE, 0); |
21960
780266b8f15d
nacho points out that we need to connect to 'style-set' on a widget that uses the default style, because the signal is not emitted for widgets that uses custom styles. This is part of his earlier patch. References #4351.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21956
diff
changeset
|
5563 g_signal_connect(gtkblist->headline_label, /* connecting on headline_hbox doesn't work, because |
780266b8f15d
nacho points out that we need to connect to 'style-set' on a widget that uses the default style, because the signal is not emitted for widgets that uses custom styles. This is part of his earlier patch. References #4351.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21956
diff
changeset
|
5564 the signal is not emitted when theme is changed */ |
780266b8f15d
nacho points out that we need to connect to 'style-set' on a widget that uses the default style, because the signal is not emitted for widgets that uses custom styles. This is part of his earlier patch. References #4351.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21956
diff
changeset
|
5565 "style-set", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5566 G_CALLBACK(headline_style_set), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5567 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5568 g_signal_connect (gtkblist->headline_hbox, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5569 "expose_event", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5570 G_CALLBACK (paint_headline_hbox), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5571 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5572 gtk_widget_set_name(gtkblist->headline_hbox, "gtk-tooltips"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5573 |
25088
e0dc8933ce26
Use a stock size that we are sure exists (which ends up making the icon a pixel
Daniel Atallah <daniel.atallah@gmail.com>
parents:
25076
diff
changeset
|
5574 gtkblist->headline_close = gtk_widget_render_icon(ebox, GTK_STOCK_CLOSE, |
e0dc8933ce26
Use a stock size that we are sure exists (which ends up making the icon a pixel
Daniel Atallah <daniel.atallah@gmail.com>
parents:
25076
diff
changeset
|
5575 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_MICROSCOPIC), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5576 gtkblist->hand_cursor = gdk_cursor_new (GDK_HAND2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5577 gtkblist->arrow_cursor = gdk_cursor_new (GDK_LEFT_PTR); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5578 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5579 g_signal_connect(G_OBJECT(ebox), "enter-notify-event", G_CALLBACK(headline_box_enter_cb), gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5580 g_signal_connect(G_OBJECT(ebox), "leave-notify-event", G_CALLBACK(headline_box_leave_cb), gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5581 g_signal_connect(G_OBJECT(ebox), "button-press-event", G_CALLBACK(headline_box_press_cb), gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5582 #if 0 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5583 /* I couldn't get this to work. The idea was to draw the focus-border only |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5584 * when hovering over the close image. So for now, the focus-border is |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5585 * always there. -- sad */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5586 gtk_widget_set_events(ebox, gtk_widget_get_events(ebox) | GDK_POINTER_MOTION_HINT_MASK); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5587 g_signal_connect(G_OBJECT(ebox), "motion-notify-event", G_CALLBACK(headline_box_motion_cb), gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5588 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5589 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5590 /****************************** GtkTreeView **********************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5591 sw = gtk_scrolled_window_new(NULL,NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5592 gtk_widget_show(sw); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5593 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5594 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5595 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5596 gtkblist->treemodel = gtk_tree_store_new(BLIST_COLUMNS, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5597 GDK_TYPE_PIXBUF, /* Status icon */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5598 G_TYPE_BOOLEAN, /* Status icon visible */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5599 G_TYPE_STRING, /* Name */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5600 G_TYPE_STRING, /* Idle */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5601 G_TYPE_BOOLEAN, /* Idle visible */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5602 GDK_TYPE_PIXBUF, /* Buddy icon */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5603 G_TYPE_BOOLEAN, /* Buddy icon visible */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5604 G_TYPE_POINTER, /* Node */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5605 GDK_TYPE_COLOR, /* bgcolor */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5606 G_TYPE_BOOLEAN, /* Group expander */ |
16121
6167ee79ecd0
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@gmail.com>
parents:
16102
diff
changeset
|
5607 G_TYPE_BOOLEAN, /* Group expander visible */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5608 G_TYPE_BOOLEAN, /* Contact expander */ |
15463 | 5609 G_TYPE_BOOLEAN, /* Contact expander visible */ |
5610 GDK_TYPE_PIXBUF, /* Emblem */ | |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
5611 G_TYPE_BOOLEAN, /* Emblem visible */ |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
5612 GDK_TYPE_PIXBUF, /* Protocol icon */ |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
5613 G_TYPE_BOOLEAN /* Protocol visible */ |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
5614 ); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5615 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5616 gtkblist->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(gtkblist->treemodel)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5617 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5618 gtk_widget_show(gtkblist->treeview); |
16198
88a93f78b489
I don't like the pidginfoo_bar widget names that resulted from the sed.
Richard Laager <rlaager@wiktel.com>
parents:
16193
diff
changeset
|
5619 gtk_widget_set_name(gtkblist->treeview, "pidgin_blist_treeview"); |
15558
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5620 |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5621 g_signal_connect(gtkblist->treeview, |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5622 "style-set", |
0324f69112f9
Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents:
15553
diff
changeset
|
5623 G_CALLBACK(treeview_style_set), list); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5624 /* Set up selection stuff */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5625 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview)); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5626 g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(pidgin_blist_selection_changed), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5627 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5628 /* Set up dnd */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5629 gtk_tree_view_enable_model_drag_source(GTK_TREE_VIEW(gtkblist->treeview), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5630 GDK_BUTTON1_MASK, ste, 3, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5631 GDK_ACTION_COPY); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5632 gtk_tree_view_enable_model_drag_dest(GTK_TREE_VIEW(gtkblist->treeview), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5633 dte, 5, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5634 GDK_ACTION_COPY | GDK_ACTION_MOVE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5635 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5636 g_signal_connect(G_OBJECT(gtkblist->treeview), "drag-data-received", G_CALLBACK(pidgin_blist_drag_data_rcv_cb), NULL); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5637 g_signal_connect(G_OBJECT(gtkblist->treeview), "drag-data-get", G_CALLBACK(pidgin_blist_drag_data_get_cb), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5638 #ifdef _WIN32 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5639 g_signal_connect(G_OBJECT(gtkblist->treeview), "drag-begin", G_CALLBACK(pidgin_blist_drag_begin), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5640 #endif |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5641 g_signal_connect(G_OBJECT(gtkblist->treeview), "drag-motion", G_CALLBACK(pidgin_blist_drag_motion_cb), NULL); |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
5642 g_signal_connect(G_OBJECT(gtkblist->treeview), "motion-notify-event", G_CALLBACK(pidgin_blist_motion_cb), NULL); |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
5643 g_signal_connect(G_OBJECT(gtkblist->treeview), "leave-notify-event", G_CALLBACK(pidgin_blist_leave_cb), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5644 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5645 /* Tooltips */ |
21877
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
5646 pidgin_tooltip_setup_for_treeview(gtkblist->treeview, NULL, |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
5647 pidgin_blist_create_tooltip, |
6bf73aea6450
Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21781
diff
changeset
|
5648 pidgin_blist_paint_tip); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5649 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5650 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(gtkblist->treeview), FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5651 |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5652 /* expander columns */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5653 column = gtk_tree_view_column_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5654 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), column); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5655 gtk_tree_view_column_set_visible(column, FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5656 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(gtkblist->treeview), column); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5657 |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5658 /* everything else column */ |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5659 gtkblist->text_column = gtk_tree_view_column_new (); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5660 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), gtkblist->text_column); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
5661 pidgin_blist_build_layout(list); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5662 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5663 g_signal_connect(G_OBJECT(gtkblist->treeview), "row-activated", G_CALLBACK(gtk_blist_row_activated_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5664 g_signal_connect(G_OBJECT(gtkblist->treeview), "row-expanded", G_CALLBACK(gtk_blist_row_expanded_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5665 g_signal_connect(G_OBJECT(gtkblist->treeview), "row-collapsed", G_CALLBACK(gtk_blist_row_collapsed_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5666 g_signal_connect(G_OBJECT(gtkblist->treeview), "button-press-event", G_CALLBACK(gtk_blist_button_press_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5667 g_signal_connect(G_OBJECT(gtkblist->treeview), "key-press-event", G_CALLBACK(gtk_blist_key_press_cb), NULL); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5668 g_signal_connect(G_OBJECT(gtkblist->treeview), "popup-menu", G_CALLBACK(pidgin_blist_popup_menu_cb), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5669 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5670 /* Enable CTRL+F searching */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5671 gtk_tree_view_set_search_column(GTK_TREE_VIEW(gtkblist->treeview), NAME_COLUMN); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5672 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(gtkblist->treeview), pidgin_tree_view_search_equal_func, NULL, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5673 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5674 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), sw, TRUE, TRUE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5675 gtk_container_add(GTK_CONTAINER(sw), gtkblist->treeview); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5676 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5677 sep = gtk_hseparator_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5678 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), sep, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5679 |
15514 | 5680 gtkblist->scrollbook = pidgin_scroll_book_new(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5681 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->scrollbook, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5682 |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5683 /* Create an vbox which holds the scrollbook which is actually used to |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5684 * display connection errors. The vbox needs to still exist for |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5685 * backwards compatibility. |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5686 */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5687 gtkblist->error_buttons = gtk_vbox_new(FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5688 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->error_buttons, FALSE, FALSE, 0); |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5689 gtk_container_set_border_width(GTK_CONTAINER(gtkblist->error_buttons), 0); |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5690 |
21497
e2e70f45307f
Remove account error dialogs from the scrollbook's notebook, not from the
Will Thompson <will.thompson@collabora.co.uk>
parents:
21458
diff
changeset
|
5691 priv->error_scrollbook = PIDGIN_SCROLL_BOOK(pidgin_scroll_book_new()); |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5692 gtk_box_pack_start(GTK_BOX(gtkblist->error_buttons), |
21497
e2e70f45307f
Remove account error dialogs from the scrollbook's notebook, not from the
Will Thompson <will.thompson@collabora.co.uk>
parents:
21458
diff
changeset
|
5693 GTK_WIDGET(priv->error_scrollbook), FALSE, FALSE, 0); |
21401
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5694 |
c1c7e28223f8
Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents:
21400
diff
changeset
|
5695 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5696 /* Add the statusbox */ |
15514 | 5697 gtkblist->statusbox = pidgin_status_box_new(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5698 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->statusbox, FALSE, TRUE, 0); |
16198
88a93f78b489
I don't like the pidginfoo_bar widget names that resulted from the sed.
Richard Laager <rlaager@wiktel.com>
parents:
16193
diff
changeset
|
5699 gtk_widget_set_name(gtkblist->statusbox, "pidgin_blist_statusbox"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5700 gtk_container_set_border_width(GTK_CONTAINER(gtkblist->statusbox), 3); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5701 gtk_widget_show(gtkblist->statusbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5702 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5703 /* set the Show Offline Buddies option. must be done |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5704 * after the treeview or faceprint gets mad. -Robot101 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5705 */ |
19611 | 5706 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show/Offline Buddies"))), |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5707 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5708 |
19611 | 5709 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show/Empty Groups"))), |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5710 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5711 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5712 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Tools/Mute Sounds"))), |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5713 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5714 |
19611 | 5715 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show/Buddy Details"))), |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5716 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5717 |
19611 | 5718 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show/Idle Times"))), |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5719 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time")); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5720 |
19611 | 5721 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show/Protocol Icons"))), |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
5722 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_protocol_icons")); |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
5723 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5724 if(!strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"), "none")) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5725 gtk_widget_set_sensitive(gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Mute Sounds")), FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5726 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5727 /* Update some dynamic things */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5728 update_menu_bar(gtkblist); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5729 pidgin_blist_update_plugin_actions(); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5730 pidgin_blist_update_sort_methods(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5731 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5732 /* OK... let's show this bad boy. */ |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5733 pidgin_blist_refresh(list); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5734 pidgin_blist_restore_position(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5735 gtk_widget_show_all(GTK_WIDGET(gtkblist->vbox)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5736 gtk_widget_realize(GTK_WIDGET(gtkblist->window)); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5737 purple_blist_set_visible(purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_visible")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5738 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5739 /* start the refresh timer */ |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5740 gtkblist->refresh_timer = g_timeout_add(30000, (GSourceFunc)pidgin_blist_refresh_timer, list); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5741 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5742 handle = pidgin_blist_get_handle(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5743 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5744 /* things that affect how buddies are displayed */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5745 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_buddy_icons", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5746 _prefs_change_redo_list, NULL); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5747 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_idle_time", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5748 _prefs_change_redo_list, NULL); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5749 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_empty_groups", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5750 _prefs_change_redo_list, NULL); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5751 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_offline_buddies", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5752 _prefs_change_redo_list, NULL); |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
5753 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_protocol_icons", |
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
5754 _prefs_change_redo_list, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5755 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5756 /* sorting */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5757 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/sort_type", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5758 _prefs_change_sort_method, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5759 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5760 /* menus */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5761 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/sound/mute", |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5762 pidgin_blist_mute_pref_cb, NULL); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
5763 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/sound/method", |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5764 pidgin_blist_sound_method_pref_cb, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5765 |
15823 | 5766 /* Setup some purple signal handlers. */ |
21368
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5767 |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5768 handle = purple_accounts_get_handle(); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5769 purple_signal_connect(handle, "account-enabled", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5770 PURPLE_CALLBACK(account_modified), gtkblist); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5771 purple_signal_connect(handle, "account-disabled", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5772 PURPLE_CALLBACK(account_modified), gtkblist); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5773 purple_signal_connect(handle, "account-removed", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5774 PURPLE_CALLBACK(account_modified), gtkblist); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5775 purple_signal_connect(handle, "account-status-changed", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5776 PURPLE_CALLBACK(account_status_changed), |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5777 gtkblist); |
21369
318b3f5d1516
Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents:
21368
diff
changeset
|
5778 purple_signal_connect(handle, "account-error-changed", gtkblist, |
21373
cbf197042bad
Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents:
21369
diff
changeset
|
5779 PURPLE_CALLBACK(update_account_error_state), |
21369
318b3f5d1516
Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents:
21368
diff
changeset
|
5780 gtkblist); |
21368
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5781 |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5782 handle = pidgin_account_get_handle(); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5783 purple_signal_connect(handle, "account-modified", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5784 PURPLE_CALLBACK(account_modified), gtkblist); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5785 |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5786 handle = purple_connections_get_handle(); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5787 purple_signal_connect(handle, "signed-on", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5788 PURPLE_CALLBACK(sign_on_off_cb), list); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5789 purple_signal_connect(handle, "signed-off", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5790 PURPLE_CALLBACK(sign_on_off_cb), list); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5791 |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5792 handle = purple_plugins_get_handle(); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5793 purple_signal_connect(handle, "plugin-load", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5794 PURPLE_CALLBACK(plugin_changed_cb), NULL); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5795 purple_signal_connect(handle, "plugin-unload", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5796 PURPLE_CALLBACK(plugin_changed_cb), NULL); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5797 |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5798 handle = purple_conversations_get_handle(); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5799 purple_signal_connect(handle, "conversation-updated", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5800 PURPLE_CALLBACK(conversation_updated_cb), |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5801 gtkblist); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5802 purple_signal_connect(handle, "deleting-conversation", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5803 PURPLE_CALLBACK(conversation_deleting_cb), |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5804 gtkblist); |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5805 purple_signal_connect(handle, "conversation-created", gtkblist, |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5806 PURPLE_CALLBACK(conversation_created_cb), |
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5807 gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5808 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5809 gtk_widget_hide(gtkblist->headline_hbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5810 |
21395
04b1742c8206
Restore error notifications on the buddy list after a restart. Make the Ignore
Will Thompson <will.thompson@collabora.co.uk>
parents:
21387
diff
changeset
|
5811 show_initial_account_errors(gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5812 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5813 /* emit our created signal */ |
21368
089fc89b6996
Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents:
21244
diff
changeset
|
5814 handle = pidgin_blist_get_handle(); |
15823 | 5815 purple_signal_emit(handle, "gtkblist-created", list); |
5816 } | |
5817 | |
5818 static void redo_buddy_list(PurpleBuddyList *list, gboolean remove, gboolean rerender) | |
5819 { | |
5820 PurpleBlistNode *node; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5821 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5822 gtkblist = PIDGIN_BLIST(list); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5823 if(!gtkblist || !gtkblist->treeview) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5824 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5825 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5826 node = list->root; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5827 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5828 while (node) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5829 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5830 /* This is only needed when we're reverting to a non-GTK+ sorted |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5831 * status. We shouldn't need to remove otherwise. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5832 */ |
15823 | 5833 if (remove && !PURPLE_BLIST_NODE_IS_GROUP(node)) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5834 pidgin_blist_hide_node(list, node, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5835 |
15823 | 5836 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5837 pidgin_blist_update_buddy(list, node, rerender); |
15823 | 5838 else if (PURPLE_BLIST_NODE_IS_CHAT(node)) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5839 pidgin_blist_update(list, node); |
15823 | 5840 else if (PURPLE_BLIST_NODE_IS_GROUP(node)) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5841 pidgin_blist_update(list, node); |
15823 | 5842 node = purple_blist_node_next(node, FALSE); |
5843 } | |
5844 | |
5845 } | |
5846 | |
5847 void pidgin_blist_refresh(PurpleBuddyList *list) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5848 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5849 redo_buddy_list(list, FALSE, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5850 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5851 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5852 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5853 pidgin_blist_update_refresh_timeout() |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5854 { |
15823 | 5855 PurpleBuddyList *blist; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5856 PidginBuddyList *gtkblist; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5857 |
15823 | 5858 blist = purple_get_blist(); |
5859 gtkblist = PIDGIN_BLIST(purple_get_blist()); | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5860 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5861 gtkblist->refresh_timer = g_timeout_add(30000,(GSourceFunc)pidgin_blist_refresh_timer, blist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5862 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5863 |
15823 | 5864 static gboolean get_iter_from_node(PurpleBlistNode *node, GtkTreeIter *iter) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5865 struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5866 GtkTreePath *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5867 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5868 if (!gtknode) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5869 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5870 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5871 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5872 if (!gtkblist) { |
15823 | 5873 purple_debug_error("gtkblist", "get_iter_from_node was called, but we don't seem to have a blist\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5874 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5875 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5876 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5877 if (!gtknode->row) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5878 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5879 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5880 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5881 if ((path = gtk_tree_row_reference_get_path(gtknode->row)) == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5882 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5883 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5884 if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), iter, path)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5885 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5886 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5887 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5888 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5889 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5890 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5891 |
15823 | 5892 static void pidgin_blist_remove(PurpleBuddyList *list, PurpleBlistNode *node) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5893 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5894 struct _pidgin_blist_node *gtknode = node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5895 |
15823 | 5896 purple_request_close_with_handle(node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5897 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5898 pidgin_blist_hide_node(list, node, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5899 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5900 if(node->parent) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5901 pidgin_blist_update(list, node->parent); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5902 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5903 /* There's something I don't understand here - Ethan */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5904 /* Ethan said that back in 2003, but this g_free has been left commented |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5905 * out ever since. I can't find any reason at all why this is bad and |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5906 * valgrind found several reasons why it's good. If this causes problems |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5907 * comment it out again. Stu */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5908 /* Of course it still causes problems - this breaks dragging buddies into |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5909 * contacts, the dragged buddy mysteriously 'disappears'. Stu. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5910 /* I think it's fixed now. Stu. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5911 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5912 if(gtknode) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5913 if(gtknode->recent_signonoff_timer > 0) |
15823 | 5914 purple_timeout_remove(gtknode->recent_signonoff_timer); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5915 |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
5916 purple_signals_disconnect_by_handle(node->ui_data); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5917 g_free(node->ui_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5918 node->ui_data = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5919 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5920 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5921 |
15823 | 5922 static gboolean do_selection_changed(PurpleBlistNode *new_selection) |
5923 { | |
5924 PurpleBlistNode *old_selection = NULL; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5925 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5926 /* test for gtkblist because crazy timeout means we can be called after the blist is gone */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5927 if (gtkblist && new_selection != gtkblist->selected_node) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5928 old_selection = gtkblist->selected_node; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5929 gtkblist->selected_node = new_selection; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5930 if(new_selection) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5931 pidgin_blist_update(NULL, new_selection); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5932 if(old_selection) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5933 pidgin_blist_update(NULL, old_selection); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5934 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5935 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5936 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5937 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5938 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5939 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5940 { |
15823 | 5941 PurpleBlistNode *new_selection = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5942 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5943 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5944 if(gtk_tree_selection_get_selected(selection, NULL, &iter)){ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5945 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5946 NODE_COLUMN, &new_selection, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5947 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5948 |
17674
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5949 /* we set this up as a timeout, otherwise the blist flickers ... |
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5950 * but we don't do it for groups, because it causes total bizarness - |
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5951 * the previously selected buddy node might rendered at half height. |
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5952 */ |
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5953 if ((new_selection != NULL) && PURPLE_BLIST_NODE_IS_GROUP(new_selection)) { |
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5954 do_selection_changed(new_selection); |
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5955 } else { |
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5956 g_timeout_add(0, (GSourceFunc)do_selection_changed, new_selection); |
0e4a789cd027
We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents:
17488
diff
changeset
|
5957 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5958 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5959 |
15823 | 5960 static gboolean insert_node(PurpleBuddyList *list, PurpleBlistNode *node, GtkTreeIter *iter) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5961 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5962 GtkTreeIter parent_iter, cur, *curptr = NULL; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5963 struct _pidgin_blist_node *gtknode = node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5964 GtkTreePath *newpath; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5965 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5966 if(!iter) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5967 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5968 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5969 if(node->parent && !get_iter_from_node(node->parent, &parent_iter)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5970 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5971 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5972 if(get_iter_from_node(node, &cur)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5973 curptr = &cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5974 |
15823 | 5975 if(PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5976 current_sort_method->func(node, list, parent_iter, curptr, iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5977 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5978 sort_method_none(node, list, parent_iter, curptr, iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5979 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5980 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5981 if(gtknode != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5982 gtk_tree_row_reference_free(gtknode->row); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5983 } else { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5984 pidgin_blist_new_node(node); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
5985 gtknode = (struct _pidgin_blist_node *)node->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5986 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5987 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5988 newpath = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5989 iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5990 gtknode->row = |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5991 gtk_tree_row_reference_new(GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5992 newpath); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5993 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5994 gtk_tree_path_free(newpath); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5995 |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
5996 if (!editing_blist) |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
5997 gtk_tree_store_set(gtkblist->treemodel, iter, |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
5998 NODE_COLUMN, node, |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
5999 -1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6000 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6001 if(node->parent) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6002 GtkTreePath *expand = NULL; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6003 struct _pidgin_blist_node *gtkparentnode = node->parent->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6004 |
15823 | 6005 if(PURPLE_BLIST_NODE_IS_GROUP(node->parent)) { |
6006 if(!purple_blist_node_get_bool(node->parent, "collapsed")) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6007 expand = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent_iter); |
15823 | 6008 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node->parent) && |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6009 gtkparentnode->contact_expanded) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6010 expand = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent_iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6011 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6012 if(expand) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6013 gtk_tree_view_expand_row(GTK_TREE_VIEW(gtkblist->treeview), expand, FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6014 gtk_tree_path_free(expand); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6015 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6016 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6017 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6018 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6019 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6020 |
21582
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6021 static gboolean pidgin_blist_group_has_show_offline_buddy(PurpleGroup *group) |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6022 { |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6023 PurpleBlistNode *gnode, *cnode, *bnode; |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6024 |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6025 gnode = (PurpleBlistNode *)group; |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6026 for(cnode = gnode->child; cnode; cnode = cnode->next) { |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6027 if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6028 for(bnode = cnode->child; bnode; bnode = bnode->next) { |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6029 PurpleBuddy *buddy = (PurpleBuddy *)bnode; |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6030 if (purple_account_is_connected(buddy->account) && |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6031 purple_blist_node_get_bool(bnode, "show_offline")) |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6032 return TRUE; |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6033 } |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6034 } |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6035 } |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6036 return FALSE; |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6037 } |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6038 |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6039 /* This version of pidgin_blist_update_group can take the original buddy or a |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6040 * group, but has much better algorithmic performance with a pre-known buddy. |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6041 */ |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6042 static void pidgin_blist_update_group(PurpleBuddyList *list, |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6043 PurpleBlistNode *node) |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6044 { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6045 gint count; |
15823 | 6046 PurpleGroup *group; |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6047 PurpleBlistNode* gnode; |
21582
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6048 gboolean show = FALSE, show_offline = FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6049 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6050 g_return_if_fail(node != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6051 |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
6052 if (editing_blist) |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
6053 return; |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6054 |
15823 | 6055 if (PURPLE_BLIST_NODE_IS_GROUP(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6056 gnode = node; |
15823 | 6057 else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6058 gnode = node->parent->parent; |
15823 | 6059 else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6060 gnode = node->parent; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6061 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6062 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6063 |
15823 | 6064 group = (PurpleGroup*)gnode; |
6065 | |
21582
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6066 show_offline = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies"); |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6067 |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6068 if(show_offline) |
15823 | 6069 count = purple_blist_get_group_size(group, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6070 else |
15823 | 6071 count = purple_blist_get_group_online_count(group); |
6072 | |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
6073 if (count > 0 || purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups")) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6074 show = TRUE; |
21582
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6075 else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { /* Or chat? */ |
15823 | 6076 if (buddy_is_displayable((PurpleBuddy*)node)) |
21582
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6077 show = TRUE; |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6078 } else if (!show_offline && PURPLE_BLIST_NODE_IS_GROUP(node)) { |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6079 show = pidgin_blist_group_has_show_offline_buddy(group); |
b00659aa0acf
Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents:
21560
diff
changeset
|
6080 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6081 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6082 if (show) { |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6083 gchar *title; |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6084 gboolean biglist; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6085 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6086 GtkTreePath *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6087 gboolean expanded; |
23481
fc3600ba68f1
fixed group coloring
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23480
diff
changeset
|
6088 GdkColor *bgcolor = NULL; |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6089 GdkPixbuf *avatar = NULL; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6090 PidginBlistTheme *theme = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6091 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6092 if(!insert_node(list, gnode, &iter)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6093 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6094 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6095 if ((theme = pidgin_blist_get_theme()) == NULL) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6096 bgcolor = NULL; |
23481
fc3600ba68f1
fixed group coloring
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23480
diff
changeset
|
6097 else if (purple_blist_node_get_bool(gnode, "collapsed") || count <= 0) |
fc3600ba68f1
fixed group coloring
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23480
diff
changeset
|
6098 bgcolor = pidgin_blist_theme_get_collapsed_background_color(theme); |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
6099 else |
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
6100 bgcolor = pidgin_blist_theme_get_expanded_background_color(theme); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6101 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6102 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6103 expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(gtkblist->treeview), path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6104 gtk_tree_path_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6105 |
15821 | 6106 title = pidgin_get_group_title(gnode, expanded); |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6107 biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6108 |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6109 if (biglist) { |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6110 avatar = pidgin_blist_get_buddy_icon(gnode, TRUE, TRUE); |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6111 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6112 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6113 gtk_tree_store_set(gtkblist->treemodel, &iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6114 STATUS_ICON_VISIBLE_COLUMN, FALSE, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6115 STATUS_ICON_COLUMN, NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6116 NAME_COLUMN, title, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6117 NODE_COLUMN, gnode, |
23481
fc3600ba68f1
fixed group coloring
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23480
diff
changeset
|
6118 BGCOLOR_COLUMN, bgcolor, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6119 GROUP_EXPANDER_COLUMN, TRUE, |
16121
6167ee79ecd0
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@gmail.com>
parents:
16102
diff
changeset
|
6120 GROUP_EXPANDER_VISIBLE_COLUMN, TRUE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6121 CONTACT_EXPANDER_VISIBLE_COLUMN, FALSE, |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6122 BUDDY_ICON_COLUMN, avatar, |
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6123 BUDDY_ICON_VISIBLE_COLUMN, biglist, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6124 IDLE_VISIBLE_COLUMN, FALSE, |
15463 | 6125 EMBLEM_VISIBLE_COLUMN, FALSE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6126 -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6127 g_free(title); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6128 } else { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6129 pidgin_blist_hide_node(list, gnode, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6130 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6131 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6132 |
15823 | 6133 static char *pidgin_get_group_title(PurpleBlistNode *gnode, gboolean expanded) |
6134 { | |
6135 PurpleGroup *group; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6136 gboolean selected; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6137 char group_count[12] = ""; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6138 char *mark, *esc; |
18309
c50e960e7086
Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents:
18285
diff
changeset
|
6139 PurpleBlistNode *selected_node = NULL; |
c50e960e7086
Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents:
18285
diff
changeset
|
6140 GtkTreeIter iter; |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
6141 FontColorPair *pair; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6142 gchar *text_color, *text_font; |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
6143 PidginBlistTheme *theme; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6144 |
15823 | 6145 group = (PurpleGroup*)gnode; |
20586
04590d9db8b7
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20546
diff
changeset
|
6146 |
18309
c50e960e7086
Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents:
18285
diff
changeset
|
6147 if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkblist->treeview)), NULL, &iter)) { |
c50e960e7086
Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents:
18285
diff
changeset
|
6148 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, |
c50e960e7086
Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents:
18285
diff
changeset
|
6149 NODE_COLUMN, &selected_node, -1); |
c50e960e7086
Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents:
18285
diff
changeset
|
6150 } |
c50e960e7086
Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents:
18285
diff
changeset
|
6151 selected = (gnode == selected_node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6152 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6153 if (!expanded) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6154 g_snprintf(group_count, sizeof(group_count), " (%d/%d)", |
15823 | 6155 purple_blist_get_group_online_count(group), |
6156 purple_blist_get_group_size(group, FALSE)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6157 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6158 |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
6159 theme = pidgin_blist_get_theme(); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6160 if (theme == NULL) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6161 pair = NULL; |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
6162 else if (expanded) |
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
6163 pair = pidgin_blist_theme_get_expanded_text_info(theme); |
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
6164 else |
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
6165 pair = pidgin_blist_theme_get_collapsed_text_info(theme); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6166 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6167 |
23485
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
6168 text_color = (selected || pair == NULL || pair->color == NULL) ? "black" : pair->color; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6169 text_font = (pair == NULL || pair->font == NULL) ? "" : pair->font; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6170 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6171 esc = g_markup_escape_text(group->name, -1); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6172 mark = g_strdup_printf("<span foreground='%s' font_desc='%s'><b>%s</b>%s</span>", |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
6173 text_color, text_font, esc ? esc : "", group_count); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6174 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6175 g_free(esc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6176 return mark; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6177 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6178 |
15823 | 6179 static void buddy_node(PurpleBuddy *buddy, GtkTreeIter *iter, PurpleBlistNode *node) |
6180 { | |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6181 PurplePresence *presence = purple_buddy_get_presence(buddy); |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6182 GdkPixbuf *status, *avatar, *emblem, *prpl_icon; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6183 GdkColor *color = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6184 char *mark; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6185 char *idle = NULL; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6186 gboolean expanded = ((struct _pidgin_blist_node *)(node->parent->ui_data))->contact_expanded; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6187 gboolean selected = (gtkblist->selected_node == node); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
6188 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6189 PidginBlistTheme *theme; |
15823 | 6190 |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
6191 if (editing_blist) |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
6192 return; |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6193 |
15823 | 6194 status = pidgin_blist_get_status_icon((PurpleBlistNode*)buddy, |
21660
c29f2e3a3b99
Had this laying around. Weeks (months?) ago all the small listers and Hylke agreed that Small list looks better with conversation tab sized icons
Sean Egan <seanegan@gmail.com>
parents:
21659
diff
changeset
|
6195 biglist ? PIDGIN_STATUS_ICON_LARGE : PIDGIN_STATUS_ICON_SMALL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6196 |
16905
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6197 /* Speed it up if we don't want buddy icons. */ |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6198 if(biglist) |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6199 avatar = pidgin_blist_get_buddy_icon((PurpleBlistNode *)buddy, TRUE, TRUE); |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6200 else |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6201 avatar = NULL; |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6202 |
15397
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
6203 if (!avatar) { |
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
6204 g_object_ref(G_OBJECT(gtkblist->empty_avatar)); |
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
6205 avatar = gtkblist->empty_avatar; |
15823 | 6206 } else if ((!PURPLE_BUDDY_IS_ONLINE(buddy) || purple_presence_is_idle(presence))) { |
15491
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
6207 do_alphashift(avatar, avatar, 77); |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
6208 } |
88070d5f4c62
dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents:
15490
diff
changeset
|
6209 |
15823 | 6210 emblem = pidgin_blist_get_emblem((PurpleBlistNode*) buddy); |
18211
84b577372b90
Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@gmail.com>
parents:
18208
diff
changeset
|
6211 mark = pidgin_blist_get_name_markup(buddy, selected, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6212 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6213 theme = pidgin_blist_get_theme(); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6214 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
6215 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time") && |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6216 purple_presence_is_idle(presence) && !biglist) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6217 { |
15823 | 6218 time_t idle_secs = purple_presence_get_idle_time(presence); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6219 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6220 if (idle_secs > 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6221 { |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6222 FontColorPair *pair = NULL; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6223 const gchar *textcolor; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6224 time_t t; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6225 int ihrs, imin; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6226 time(&t); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6227 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6228 ihrs = (t - idle_secs) / 3600; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6229 imin = ((t - idle_secs) / 60) % 60; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6230 |
23485
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
6231 if (!selected && theme != NULL && (pair = pidgin_blist_theme_get_idle_text_info(theme)) != NULL && pair->color != NULL) |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6232 textcolor = pair->color; |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
6233 else |
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
6234 textcolor = "black"; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6235 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6236 idle = g_strdup_printf("<span color='%s' font_desc='%s'>%d:%02d</span>", textcolor, |
23486
3baef5c88959
Couple small font fixes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23485
diff
changeset
|
6237 (pair == NULL || pair->font == NULL) ? "" : pair->font, ihrs, imin); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6238 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6239 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6240 |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6241 prpl_icon = pidgin_create_prpl_icon(buddy->account, PIDGIN_PRPL_ICON_SMALL); |
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6242 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6243 if (theme != NULL) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6244 color = pidgin_blist_theme_get_contact_color(theme); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6245 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6246 gtk_tree_store_set(gtkblist->treemodel, iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6247 STATUS_ICON_COLUMN, status, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6248 STATUS_ICON_VISIBLE_COLUMN, TRUE, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6249 NAME_COLUMN, mark, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6250 IDLE_COLUMN, idle, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6251 IDLE_VISIBLE_COLUMN, !biglist && idle, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6252 BUDDY_ICON_COLUMN, avatar, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6253 BUDDY_ICON_VISIBLE_COLUMN, biglist, |
15463 | 6254 EMBLEM_COLUMN, emblem, |
20834
6b9e5bbab0fe
We need to unref the pixmaps after adding them to a list store.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20795
diff
changeset
|
6255 EMBLEM_VISIBLE_COLUMN, (emblem != NULL), |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6256 PROTOCOL_ICON_COLUMN, prpl_icon, |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
6257 PROTOCOL_ICON_VISIBLE_COLUMN, purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_protocol_icons"), |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6258 BGCOLOR_COLUMN, color, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6259 CONTACT_EXPANDER_COLUMN, NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6260 CONTACT_EXPANDER_VISIBLE_COLUMN, expanded, |
16121
6167ee79ecd0
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@gmail.com>
parents:
16102
diff
changeset
|
6261 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6262 -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6263 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6264 g_free(mark); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6265 g_free(idle); |
20834
6b9e5bbab0fe
We need to unref the pixmaps after adding them to a list store.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20795
diff
changeset
|
6266 if(emblem) |
6b9e5bbab0fe
We need to unref the pixmaps after adding them to a list store.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20795
diff
changeset
|
6267 g_object_unref(emblem); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6268 if(status) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6269 g_object_unref(status); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6270 if(avatar) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6271 g_object_unref(avatar); |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6272 if(prpl_icon) |
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6273 g_object_unref(prpl_icon); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6274 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6275 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6276 /* This is a variation on the original gtk_blist_update_contact. Here we |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6277 can know in advance which buddy has changed so we can just update that */ |
15823 | 6278 static void pidgin_blist_update_contact(PurpleBuddyList *list, PurpleBlistNode *node) |
6279 { | |
6280 PurpleBlistNode *cnode; | |
6281 PurpleContact *contact; | |
6282 PurpleBuddy *buddy; | |
21660
c29f2e3a3b99
Had this laying around. Weeks (months?) ago all the small listers and Hylke agreed that Small list looks better with conversation tab sized icons
Sean Egan <seanegan@gmail.com>
parents:
21659
diff
changeset
|
6283 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6284 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6285 |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
6286 if (editing_blist) |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
6287 return; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6288 |
15823 | 6289 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6290 cnode = node->parent; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6291 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6292 cnode = node; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6293 |
15823 | 6294 g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(cnode)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6295 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6296 /* First things first, update the group */ |
15823 | 6297 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6298 pidgin_blist_update_group(list, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6299 else |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6300 pidgin_blist_update_group(list, cnode->parent); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6301 |
15823 | 6302 contact = (PurpleContact*)cnode; |
6303 buddy = purple_contact_get_priority_buddy(contact); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6304 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6305 if (buddy_is_displayable(buddy)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6306 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6307 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6308 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6309 if(!insert_node(list, cnode, &iter)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6310 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6311 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6312 gtknode = (struct _pidgin_blist_node *)cnode->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6313 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6314 if(gtknode->contact_expanded) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6315 GdkPixbuf *status; |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6316 gchar *mark, *tmp; |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6317 const gchar *fg_color, *font; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6318 GdkColor *color = NULL; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6319 PidginBlistTheme *theme = pidgin_blist_get_theme(); |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6320 FontColorPair *pair; |
23485
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
6321 gboolean selected = (gtkblist->selected_node == cnode); |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6322 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6323 mark = g_markup_escape_text(purple_contact_get_alias(contact), -1); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6324 |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6325 theme = pidgin_blist_get_theme(); |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6326 if (theme == NULL) |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6327 pair = NULL; |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6328 else { |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6329 pair = pidgin_blist_theme_get_contact_text_info(theme); |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6330 color = pidgin_blist_theme_get_contact_color(theme); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6331 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6332 |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6333 font = (pair == NULL || pair->font == NULL) ? "" : pair->font; |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6334 fg_color = (selected || pair == NULL || pair->color == NULL) ? "black" : pair->color; |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6335 |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6336 tmp = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>", |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6337 font, fg_color, mark); |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6338 g_free(mark); |
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6339 mark = tmp; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6340 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6341 status = pidgin_blist_get_status_icon(cnode, |
21660
c29f2e3a3b99
Had this laying around. Weeks (months?) ago all the small listers and Hylke agreed that Small list looks better with conversation tab sized icons
Sean Egan <seanegan@gmail.com>
parents:
21659
diff
changeset
|
6342 biglist? PIDGIN_STATUS_ICON_LARGE : PIDGIN_STATUS_ICON_SMALL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6343 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6344 gtk_tree_store_set(gtkblist->treemodel, &iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6345 STATUS_ICON_COLUMN, status, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6346 STATUS_ICON_VISIBLE_COLUMN, TRUE, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6347 NAME_COLUMN, mark, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6348 IDLE_COLUMN, NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6349 IDLE_VISIBLE_COLUMN, FALSE, |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6350 BGCOLOR_COLUMN, color, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6351 BUDDY_ICON_COLUMN, NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6352 CONTACT_EXPANDER_COLUMN, TRUE, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6353 CONTACT_EXPANDER_VISIBLE_COLUMN, TRUE, |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
6354 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6355 -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6356 g_free(mark); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6357 if(status) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6358 g_object_unref(status); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6359 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6360 buddy_node(buddy, &iter, cnode); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6361 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6362 } else { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6363 pidgin_blist_hide_node(list, cnode, TRUE); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6364 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6365 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6366 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6367 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6368 |
19538
6575ec8e1a97
Do not try to update a buddy in the buddylist when there's no buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19509
diff
changeset
|
6369 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean status_change) |
15823 | 6370 { |
6371 PurpleBuddy *buddy; | |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6372 struct _pidgin_blist_node *gtkparentnode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6373 |
15823 | 6374 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6375 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6376 if (node->parent == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6377 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6378 |
15823 | 6379 buddy = (PurpleBuddy*)node; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6380 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6381 /* First things first, update the contact */ |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6382 pidgin_blist_update_contact(list, node); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6383 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6384 gtkparentnode = (struct _pidgin_blist_node *)node->parent->ui_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6385 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6386 if (gtkparentnode->contact_expanded && buddy_is_displayable(buddy)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6387 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6388 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6389 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6390 if (!insert_node(list, node, &iter)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6391 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6392 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6393 buddy_node(buddy, &iter, node); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6394 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6395 } else { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6396 pidgin_blist_hide_node(list, node, TRUE); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6397 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6398 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6399 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6400 |
15823 | 6401 static void pidgin_blist_update_chat(PurpleBuddyList *list, PurpleBlistNode *node) |
6402 { | |
6403 PurpleChat *chat; | |
6404 | |
6405 g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6406 |
17851
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
6407 if (editing_blist) |
452bd3baa9af
Do not update the blist TreeStore if a node is currently being edited. Then, when the node is finished editing, force a refresh. Fixes #397 in which aliasing gets rudely cut off anytime the buddy list changes
Sean Egan <seanegan@gmail.com>
parents:
17835
diff
changeset
|
6408 return; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6409 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6410 /* First things first, update the group */ |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6411 pidgin_blist_update_group(list, node->parent); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6412 |
15823 | 6413 chat = (PurpleChat*)node; |
6414 | |
6415 if(purple_account_is_connected(chat->account)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6416 GtkTreeIter iter; |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6417 GdkPixbuf *status, *avatar, *emblem, *prpl_icon; |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6418 const gchar *color, *font; |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6419 gchar *mark, *tmp; |
16905
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6420 gboolean showicons = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); |
21660
c29f2e3a3b99
Had this laying around. Weeks (months?) ago all the small listers and Hylke agreed that Small list looks better with conversation tab sized icons
Sean Egan <seanegan@gmail.com>
parents:
21659
diff
changeset
|
6421 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
6422 PidginBlistNode *ui; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
6423 PurpleConversation *conv; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
6424 gboolean hidden; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6425 GdkColor *bgcolor = NULL; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6426 FontColorPair *pair; |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6427 PidginBlistTheme *theme; |
23485
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
6428 gboolean selected = (gtkblist->selected_node == node); |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6429 gboolean nick_said = FALSE; |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
6430 |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
6431 if (!insert_node(list, node, &iter)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6432 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6433 |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
6434 ui = node->ui_data; |
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
6435 conv = ui->conv.conv; |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6436 if (conv && pidgin_conv_is_hidden(PIDGIN_CONVERSATION(conv))) { |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6437 hidden = (ui->conv.flags & PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE); |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6438 nick_said = (ui->conv.flags & PIDGIN_BLIST_CHAT_HAS_PENDING_MESSAGE_WITH_NICK); |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6439 } |
19894
0ac0e112a0fa
Add some stuff so that we don't have to traverse over a list to determine
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19611
diff
changeset
|
6440 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6441 status = pidgin_blist_get_status_icon(node, |
21660
c29f2e3a3b99
Had this laying around. Weeks (months?) ago all the small listers and Hylke agreed that Small list looks better with conversation tab sized icons
Sean Egan <seanegan@gmail.com>
parents:
21659
diff
changeset
|
6442 biglist ? PIDGIN_STATUS_ICON_LARGE : PIDGIN_STATUS_ICON_SMALL); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6443 emblem = pidgin_blist_get_emblem(node); |
16905
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6444 |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6445 /* Speed it up if we don't want buddy icons. */ |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6446 if(showicons) |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6447 avatar = pidgin_blist_get_buddy_icon(node, TRUE, FALSE); |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6448 else |
aa87ecd650d2
Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents:
16858
diff
changeset
|
6449 avatar = NULL; |
15423
051a5c4f0917
this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents:
15418
diff
changeset
|
6450 |
15823 | 6451 mark = g_markup_escape_text(purple_chat_get_name(chat), -1); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6452 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6453 theme = pidgin_blist_get_theme(); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6454 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6455 if (theme == NULL) |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6456 pair = NULL; |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6457 else if (nick_said) |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6458 pair = pidgin_blist_theme_get_unread_message_nick_said_text_info(theme); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6459 else if (hidden) |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6460 pair = pidgin_blist_theme_get_unread_message_text_info(theme); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6461 else pair = pidgin_blist_theme_get_online_text_info(theme); |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6462 |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6463 |
25387
6c6846d169d6
This patch fixes a few string leaks (don't g_strdup the FontColorPair? values) and also fixes the bug where, with no theme, everyone on the buddy list is colored "dim grey" (chunks 2, 3, and 4 in the patch)
Paul Aurich <paul@darkrain42.org>
parents:
25382
diff
changeset
|
6464 font = (pair == NULL || pair->font == NULL) ? "" : pair->font; |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6465 if (selected || pair == NULL || pair->color == NULL) |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6466 /* nick_said color is the same as gtkconv:tab-label-attention */ |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6467 color = (nick_said ? "#006aff" : "black"); |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6468 else |
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25387
diff
changeset
|
6469 color = pair->color; |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6470 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
6471 tmp = g_strdup_printf("<span font_desc='%s' color='%s' weight='%s'>%s</span>", |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6472 font, color, hidden ? "bold" : "normal", mark); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6473 |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6474 g_free(mark); |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6475 mark = tmp; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6476 |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6477 prpl_icon = pidgin_create_prpl_icon(chat->account, PIDGIN_PRPL_ICON_SMALL); |
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6478 |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6479 if (theme != NULL) |
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6480 bgcolor = pidgin_blist_theme_get_contact_color(theme); |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6481 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6482 gtk_tree_store_set(gtkblist->treemodel, &iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6483 STATUS_ICON_COLUMN, status, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6484 STATUS_ICON_VISIBLE_COLUMN, TRUE, |
15423
051a5c4f0917
this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents:
15418
diff
changeset
|
6485 BUDDY_ICON_COLUMN, avatar ? avatar : gtkblist->empty_avatar, |
23158
da5d1ecc5c20
Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents:
23131
diff
changeset
|
6486 BUDDY_ICON_VISIBLE_COLUMN, showicons, |
19558
f902cd0dc925
Boldify the hidden chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19540
diff
changeset
|
6487 EMBLEM_COLUMN, emblem, |
15463 | 6488 EMBLEM_VISIBLE_COLUMN, emblem != NULL, |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6489 PROTOCOL_ICON_COLUMN, prpl_icon, |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
6490 PROTOCOL_ICON_VISIBLE_COLUMN, purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_protocol_icons"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6491 NAME_COLUMN, mark, |
23484
06392c8252c0
Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23483
diff
changeset
|
6492 BGCOLOR_COLUMN, bgcolor, |
16121
6167ee79ecd0
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@gmail.com>
parents:
16102
diff
changeset
|
6493 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6494 -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6495 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6496 g_free(mark); |
20834
6b9e5bbab0fe
We need to unref the pixmaps after adding them to a list store.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20795
diff
changeset
|
6497 if(emblem) |
6b9e5bbab0fe
We need to unref the pixmaps after adding them to a list store.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20795
diff
changeset
|
6498 g_object_unref(emblem); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6499 if(status) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6500 g_object_unref(status); |
15423
051a5c4f0917
this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents:
15418
diff
changeset
|
6501 if(avatar) |
051a5c4f0917
this would use the protocol icons in place of the buddy icon for chats,
Nathan Walp <nwalp@pidgin.im>
parents:
15418
diff
changeset
|
6502 g_object_unref(avatar); |
20872
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6503 if(prpl_icon) |
71d0989b7c25
Prevent leakage of the prpl icon pixbuf because of an extra ref (it's bad enough that they aren't shared).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20841
diff
changeset
|
6504 g_object_unref(prpl_icon); |
23485
824e97a1dd22
fixed some small font bugs, the coloring when selected, and a segfault
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23484
diff
changeset
|
6505 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6506 } else { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6507 pidgin_blist_hide_node(list, node, TRUE); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6508 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6509 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6510 |
15823 | 6511 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6512 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6513 if (list) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6514 gtkblist = PIDGIN_BLIST(list); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6515 if(!gtkblist || !gtkblist->treeview || !node) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6516 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6517 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6518 if (node->ui_data == NULL) |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6519 pidgin_blist_new_node(node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6520 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6521 switch(node->type) { |
15823 | 6522 case PURPLE_BLIST_GROUP_NODE: |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6523 pidgin_blist_update_group(list, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6524 break; |
15823 | 6525 case PURPLE_BLIST_CONTACT_NODE: |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6526 pidgin_blist_update_contact(list, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6527 break; |
15823 | 6528 case PURPLE_BLIST_BUDDY_NODE: |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6529 pidgin_blist_update_buddy(list, node, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6530 break; |
15823 | 6531 case PURPLE_BLIST_CHAT_NODE: |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6532 pidgin_blist_update_chat(list, node); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6533 break; |
15823 | 6534 case PURPLE_BLIST_OTHER_NODE: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6535 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6536 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6537 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6538 #if !GTK_CHECK_VERSION(2,6,0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6539 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(gtkblist->treeview)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6540 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6541 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6542 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6543 |
15823 | 6544 static void pidgin_blist_destroy(PurpleBuddyList *list) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6545 { |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
6546 PidginBuddyListPrivate *priv; |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
6547 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6548 if (!gtkblist) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6549 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6550 |
15823 | 6551 purple_signals_disconnect_by_handle(gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6552 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6553 if (gtkblist->headline_close) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6554 gdk_pixbuf_unref(gtkblist->headline_close); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6555 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6556 gtk_widget_destroy(gtkblist->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6557 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6558 pidgin_blist_tooltip_destroy(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6559 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6560 if (gtkblist->refresh_timer) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6561 g_source_remove(gtkblist->refresh_timer); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6562 if (gtkblist->timeout) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6563 g_source_remove(gtkblist->timeout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6564 if (gtkblist->drag_timeout) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6565 g_source_remove(gtkblist->drag_timeout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6566 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6567 g_hash_table_destroy(gtkblist->connection_errors); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6568 gtkblist->refresh_timer = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6569 gtkblist->timeout = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6570 gtkblist->drag_timeout = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6571 gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL; |
22087
d943df776c09
It turns out the tree-models need to be unref'ed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22086
diff
changeset
|
6572 g_object_unref(G_OBJECT(gtkblist->treemodel)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6573 gtkblist->treemodel = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6574 g_object_unref(G_OBJECT(gtkblist->ift)); |
15397
a8ee645e7fb4
A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
6575 g_object_unref(G_OBJECT(gtkblist->empty_avatar)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6576 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6577 gdk_cursor_unref(gtkblist->hand_cursor); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6578 gdk_cursor_unref(gtkblist->arrow_cursor); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6579 gtkblist->hand_cursor = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6580 gtkblist->arrow_cursor = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6581 |
21386
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
6582 priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
6583 g_free(priv); |
86b0dc1f60ae
Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <will.thompson@collabora.co.uk>
parents:
21384
diff
changeset
|
6584 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6585 g_free(gtkblist); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6586 accountmenu = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6587 gtkblist = NULL; |
15823 | 6588 purple_prefs_disconnect_by_handle(pidgin_blist_get_handle()); |
6589 } | |
6590 | |
6591 static void pidgin_blist_set_visible(PurpleBuddyList *list, gboolean show) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6592 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6593 if (!(gtkblist && gtkblist->window)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6594 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6595 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6596 if (show) { |
15510 | 6597 if(!PIDGIN_WINDOW_ICONIFIED(gtkblist->window) && !GTK_WIDGET_VISIBLE(gtkblist->window)) |
15823 | 6598 purple_signal_emit(pidgin_blist_get_handle(), "gtkblist-unhiding", gtkblist); |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6599 pidgin_blist_restore_position(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6600 gtk_window_present(GTK_WINDOW(gtkblist->window)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6601 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6602 if(visibility_manager_count) { |
15823 | 6603 purple_signal_emit(pidgin_blist_get_handle(), "gtkblist-hiding", gtkblist); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6604 gtk_widget_hide(gtkblist->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6605 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6606 if (!GTK_WIDGET_VISIBLE(gtkblist->window)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6607 gtk_widget_show(gtkblist->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6608 gtk_window_iconify(GTK_WINDOW(gtkblist->window)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6609 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6610 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6611 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6612 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6613 static GList * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6614 groups_tree(void) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6615 { |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6616 static GList *list = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6617 char *tmp2; |
15823 | 6618 PurpleGroup *g; |
6619 PurpleBlistNode *gnode; | |
6620 | |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6621 g_list_free(list); |
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6622 list = NULL; |
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6623 |
15823 | 6624 if (purple_get_blist()->root == NULL) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6625 { |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6626 list = g_list_append(list, (gpointer)_("Buddies")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6627 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6628 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6629 { |
15823 | 6630 for (gnode = purple_get_blist()->root; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6631 gnode != NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6632 gnode = gnode->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6633 { |
15823 | 6634 if (PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6635 { |
15823 | 6636 g = (PurpleGroup *)gnode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6637 tmp2 = g->name; |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6638 list = g_list_append(list, tmp2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6639 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6640 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6641 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6642 |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6643 return list; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6644 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6645 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6646 static void |
15823 | 6647 add_buddy_select_account_cb(GObject *w, PurpleAccount *account, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6648 PidginAddBuddyData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6649 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6650 /* Save our account */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6651 data->account = account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6652 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6653 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6654 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6655 destroy_add_buddy_dialog_cb(GtkWidget *win, PidginAddBuddyData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6656 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6657 g_free(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6658 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6659 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6660 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6661 add_buddy_cb(GtkWidget *w, int resp, PidginAddBuddyData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6662 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6663 const char *grp, *who, *whoalias; |
15823 | 6664 PurpleGroup *g; |
6665 PurpleBuddy *b; | |
6666 PurpleConversation *c; | |
6667 PurpleBuddyIcon *icon; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6668 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6669 if (resp == GTK_RESPONSE_OK) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6670 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6671 who = gtk_entry_get_text(GTK_ENTRY(data->entry)); |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6672 grp = pidgin_text_combo_box_entry_get_text(data->combo); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6673 whoalias = gtk_entry_get_text(GTK_ENTRY(data->entry_for_alias)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6674 if (*whoalias == '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6675 whoalias = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6676 |
20161
0077c1f21f3d
Patch from db42. Fixes #3191
Sean Egan <seanegan@gmail.com>
parents:
20158
diff
changeset
|
6677 g = NULL; |
0077c1f21f3d
Patch from db42. Fixes #3191
Sean Egan <seanegan@gmail.com>
parents:
20158
diff
changeset
|
6678 if ((grp != NULL) && (*grp != '\0') && ((g = purple_find_group(grp)) == NULL)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6679 { |
15823 | 6680 g = purple_group_new(grp); |
6681 purple_blist_add_group(g, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6682 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6683 |
15823 | 6684 b = purple_buddy_new(data->account, who, whoalias); |
6685 purple_blist_add_buddy(b, NULL, g, NULL); | |
6686 purple_account_add_buddy(data->account, b); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6687 |
23326
aec041e8f3e0
Make the Add Buddy dialog cause the auto-personize prompt where appropriate.
Kevin Stange <kevin@simguy.net>
parents:
23312
diff
changeset
|
6688 /* Offer to merge people with the same alias. */ |
23925
fd0e8c6ffa4b
Path from Toby Schaffer to fix a null ptr deref when adding a buddy. Fixes #6821.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23395
diff
changeset
|
6689 if (whoalias != NULL && g != NULL) |
23347 | 6690 gtk_blist_auto_personize((PurpleBlistNode *)g, whoalias); |
23326
aec041e8f3e0
Make the Add Buddy dialog cause the auto-personize prompt where appropriate.
Kevin Stange <kevin@simguy.net>
parents:
23312
diff
changeset
|
6691 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6692 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6693 * XXX |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6694 * It really seems like it would be better if the call to |
15823 | 6695 * purple_account_add_buddy() and purple_conversation_update() were done in |
6696 * blist.c, possibly in the purple_blist_add_buddy() function. Maybe | |
6697 * purple_account_add_buddy() should be renamed to | |
6698 * purple_blist_add_new_buddy() or something, and have it call | |
6699 * purple_blist_add_buddy() after it creates it. --Mark | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6700 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6701 * No that's not good. blist.c should only deal with adding nodes to the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6702 * local list. We need a new, non-gtk file that calls both |
15823 | 6703 * purple_account_add_buddy and purple_blist_add_buddy(). |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6704 * Or something. --Mark |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6705 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6706 |
15823 | 6707 c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, data->account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6708 if (c != NULL) { |
15823 | 6709 icon = purple_conv_im_get_icon(PURPLE_CONV_IM(c)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6710 if (icon != NULL) |
15823 | 6711 purple_buddy_icon_update(icon); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6712 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6713 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6714 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6715 gtk_widget_destroy(data->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6716 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6717 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6718 static void |
15823 | 6719 pidgin_blist_request_add_buddy(PurpleAccount *account, const char *username, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6720 const char *group, const char *alias) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6721 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6722 GtkWidget *table; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6723 GtkWidget *label; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6724 GtkWidget *hbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6725 GtkWidget *vbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6726 GtkWidget *img; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6727 PidginBuddyList *gtkblist; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6728 PidginAddBuddyData *data = g_new0(PidginAddBuddyData, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6729 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6730 data->account = |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6731 (account != NULL |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6732 ? account |
15823 | 6733 : purple_connection_get_account(purple_connections_get_all()->data)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6734 |
15436 | 6735 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION, |
6736 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6737 |
15823 | 6738 gtkblist = PIDGIN_BLIST(purple_get_blist()); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6739 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6740 data->window = gtk_dialog_new_with_buttons(_("Add Buddy"), |
21235
fba1f6c3df0b
Converted string literal UI hints to #define-ed constants and fixed two cast-warnings in gtkblist.c
Gabriel Schulhof <nix@go-nix.ca>
parents:
21232
diff
changeset
|
6741 gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, GTK_DIALOG_NO_SEPARATOR, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6742 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6743 GTK_STOCK_ADD, GTK_RESPONSE_OK, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6744 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6745 |
21090
8e9d40defbc0
Need to explicitly call gtk_window_set_transient_for, even on a GtkDialog
Gabriel Schulhof <nix@go-nix.ca>
parents:
21089
diff
changeset
|
6746 if (gtkblist) |
8e9d40defbc0
Need to explicitly call gtk_window_set_transient_for, even on a GtkDialog
Gabriel Schulhof <nix@go-nix.ca>
parents:
21089
diff
changeset
|
6747 gtk_window_set_transient_for(GTK_WINDOW(data->window), GTK_WINDOW(gtkblist->window)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6748 gtk_dialog_set_default_response(GTK_DIALOG(data->window), GTK_RESPONSE_OK); |
15821 | 6749 gtk_container_set_border_width(GTK_CONTAINER(data->window), PIDGIN_HIG_BOX_SPACE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6750 gtk_window_set_resizable(GTK_WINDOW(data->window), FALSE); |
15821 | 6751 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BORDER); |
6752 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BOX_SPACE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6753 gtk_window_set_role(GTK_WINDOW(data->window), "add_buddy"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6754 gtk_window_set_type_hint(GTK_WINDOW(data->window), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6755 GDK_WINDOW_TYPE_HINT_DIALOG); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6756 |
15821 | 6757 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6758 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6759 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6760 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6761 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6762 vbox = gtk_vbox_new(FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6763 gtk_container_add(GTK_CONTAINER(hbox), vbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6764 |
22507
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6765 g_signal_connect(G_OBJECT(data->window), "destroy", |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6766 G_CALLBACK(destroy_add_buddy_dialog_cb), data); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6767 |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6768 label = gtk_label_new(_("Add a buddy.\n")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6769 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6770 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6771 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6772 table = gtk_table_new(4, 2, FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6773 gtk_table_set_row_spacings(GTK_TABLE(table), 5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6774 gtk_table_set_col_spacings(GTK_TABLE(table), 5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6775 gtk_container_set_border_width(GTK_CONTAINER(table), 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6776 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6777 |
17688
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6778 data->account_box = pidgin_account_option_menu_new(account, FALSE, |
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6779 G_CALLBACK(add_buddy_select_account_cb), NULL, data); |
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6780 |
22507
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6781 gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 0, 2, 0, 1); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6782 |
22770
cc8903c59d6b
Change the string "screen name" to "username" everywhere. I think most
Mark Doliner <mark@kingant.net>
parents:
22762
diff
changeset
|
6783 label = gtk_label_new_with_mnemonic(_("Buddy's _username:")); |
17688
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6784 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6785 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6786 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6787 data->entry = gtk_entry_new(); |
17688
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6788 gtk_table_attach_defaults(GTK_TABLE(table), data->entry, 1, 2, 1, 2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6789 gtk_widget_grab_focus(data->entry); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6790 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6791 if (username != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6792 gtk_entry_set_text(GTK_ENTRY(data->entry), username); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6793 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6794 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), |
22507
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6795 GTK_RESPONSE_OK, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6796 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6797 gtk_entry_set_activates_default (GTK_ENTRY(data->entry), TRUE); |
17688
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6798 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry); |
15507 | 6799 pidgin_set_accessible_label (data->entry, label); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6800 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6801 g_signal_connect(G_OBJECT(data->entry), "changed", |
22507
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6802 G_CALLBACK(pidgin_set_sensitive_if_input), |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6803 data->window); |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6804 |
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6805 label = gtk_label_new_with_mnemonic(_("(Optional) A_lias:")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6806 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
17688
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6807 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6808 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6809 data->entry_for_alias = gtk_entry_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6810 gtk_table_attach_defaults(GTK_TABLE(table), |
22507
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6811 data->entry_for_alias, 1, 2, 2, 3); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6812 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6813 if (alias != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6814 gtk_entry_set_text(GTK_ENTRY(data->entry_for_alias), alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6815 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6816 if (username != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6817 gtk_widget_grab_focus(GTK_WIDGET(data->entry_for_alias)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6818 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6819 gtk_entry_set_activates_default (GTK_ENTRY(data->entry_for_alias), TRUE); |
17688
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6820 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry_for_alias); |
15507 | 6821 pidgin_set_accessible_label (data->entry_for_alias, label); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6822 |
22507
2f7b42cc612c
Change up the Add Budy dialog a little bit, this hopefully makes it a bit
Etan Reisner <pidgin@unreliablesource.net>
parents:
22313
diff
changeset
|
6823 label = gtk_label_new_with_mnemonic(_("Add buddy to _group:")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6824 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
17688
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6825 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6826 |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6827 data->combo = pidgin_text_combo_box_entry_new(group, groups_tree()); |
17688
486daeb90aa9
Add mnemonics to labels in Add Buddy and Add Chat dialogs, and put Account
Stu Tomlinson <stu@nosnilmot.com>
parents:
17674
diff
changeset
|
6828 gtk_table_attach_defaults(GTK_TABLE(table), data->combo, 1, 2, 3, 4); |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6829 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_BIN(data->combo)->child); |
15507 | 6830 pidgin_set_accessible_label (data->combo, label); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6831 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6832 g_signal_connect(G_OBJECT(data->window), "response", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6833 G_CALLBACK(add_buddy_cb), data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6834 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6835 gtk_widget_show_all(data->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6836 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6837 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6838 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6839 add_chat_cb(GtkWidget *w, PidginAddChatData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6840 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6841 GHashTable *components; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6842 GList *tmp; |
15823 | 6843 PurpleChat *chat; |
6844 PurpleGroup *group; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6845 const char *group_name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6846 const char *value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6847 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6848 components = g_hash_table_new_full(g_str_hash, g_str_equal, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6849 g_free, g_free); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6850 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6851 for (tmp = data->entries; tmp; tmp = tmp->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6852 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6853 if (g_object_get_data(tmp->data, "is_spin")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6854 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6855 g_hash_table_replace(components, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6856 g_strdup(g_object_get_data(tmp->data, "identifier")), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6857 g_strdup_printf("%d", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6858 gtk_spin_button_get_value_as_int(tmp->data))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6859 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6860 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6861 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6862 value = gtk_entry_get_text(tmp->data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6863 if (*value != '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6864 g_hash_table_replace(components, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6865 g_strdup(g_object_get_data(tmp->data, "identifier")), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6866 g_strdup(value)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6867 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6868 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6869 |
15823 | 6870 chat = purple_chat_new(data->account, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6871 gtk_entry_get_text(GTK_ENTRY(data->alias_entry)), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6872 components); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6873 |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
6874 group_name = pidgin_text_combo_box_entry_get_text(data->group_combo); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6875 |
20161
0077c1f21f3d
Patch from db42. Fixes #3191
Sean Egan <seanegan@gmail.com>
parents:
20158
diff
changeset
|
6876 group = NULL; |
0077c1f21f3d
Patch from db42. Fixes #3191
Sean Egan <seanegan@gmail.com>
parents:
20158
diff
changeset
|
6877 if ((group_name != NULL) && (*group_name != '\0') && ((group = purple_find_group(group_name)) == NULL)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6878 { |
15823 | 6879 group = purple_group_new(group_name); |
6880 purple_blist_add_group(group, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6881 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6882 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6883 if (chat != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6884 { |
15823 | 6885 purple_blist_add_chat(chat, group, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6886 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6887 |
20084
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
6888 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->autojoin))) |
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
6889 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-autojoin", TRUE); |
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
6890 |
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
6891 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->persistent))) |
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
6892 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-persistent", TRUE); |
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
6893 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6894 gtk_widget_destroy(data->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6895 g_free(data->default_chat_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6896 g_list_free(data->entries); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6897 g_free(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6898 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6899 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6900 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6901 add_chat_resp_cb(GtkWidget *w, int resp, PidginAddChatData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6902 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6903 if (resp == GTK_RESPONSE_OK) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6904 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6905 add_chat_cb(NULL, data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6906 } |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6907 else if (resp == 1) |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6908 { |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6909 pidgin_roomlist_dialog_show_with_account(data->account); |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6910 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6911 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6912 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6913 gtk_widget_destroy(data->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6914 g_free(data->default_chat_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6915 g_list_free(data->entries); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6916 g_free(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6917 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6918 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6919 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6920 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6921 * Check the values of all the text entry boxes. If any required input |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6922 * strings are empty then don't allow the user to click on "OK." |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6923 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6924 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6925 addchat_set_sensitive_if_input_cb(GtkWidget *entry, gpointer user_data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6926 { |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6927 PurplePluginProtocolInfo *prpl_info; |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6928 PurpleConnection *gc; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6929 PidginAddChatData *data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6930 GList *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6931 const char *text; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6932 gboolean required; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6933 gboolean sensitive = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6934 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6935 data = user_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6936 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6937 for (tmp = data->entries; tmp != NULL; tmp = tmp->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6938 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6939 if (!g_object_get_data(tmp->data, "is_spin")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6940 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6941 required = GPOINTER_TO_INT(g_object_get_data(tmp->data, "required")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6942 text = gtk_entry_get_text(tmp->data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6943 if (required && (*text == '\0')) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6944 sensitive = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6945 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6946 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6947 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6948 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), GTK_RESPONSE_OK, sensitive); |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6949 |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6950 gc = purple_account_get_connection(data->account); |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6951 prpl_info = (gc != NULL) ? PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl) : NULL; |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6952 sensitive = (prpl_info != NULL && prpl_info->roomlist_get_list != NULL); |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6953 |
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
6954 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), 1, sensitive); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6955 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6956 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6957 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
6958 rebuild_addchat_entries(PidginAddChatData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6959 { |
15823 | 6960 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6961 GList *list = NULL, *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6962 GHashTable *defaults = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6963 struct proto_chat_entry *pce; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6964 gboolean focus = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6965 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6966 g_return_if_fail(data->account != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6967 |
15823 | 6968 gc = purple_account_get_connection(data->account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6969 |
18646
05cab350d1fb
Fix memory leak by freeing the list returned by gtk_container_get_children.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18435
diff
changeset
|
6970 gtk_container_foreach(GTK_CONTAINER(data->entries_box), (GtkCallback)gtk_widget_destroy, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6971 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6972 g_list_free(data->entries); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6973 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6974 data->entries = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6975 |
15823 | 6976 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info != NULL) |
6977 list = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info(gc); | |
6978 | |
6979 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) | |
6980 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, data->default_chat_name); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6981 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6982 for (tmp = list; tmp; tmp = tmp->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6983 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6984 GtkWidget *input; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6985 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6986 pce = tmp->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6987 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6988 if (pce->is_int) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6989 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6990 GtkObject *adjust; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6991 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6992 1, 10, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6993 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6994 gtk_widget_set_size_request(input, 50, -1); |
21992
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
6995 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, FALSE, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6996 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6997 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6998 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6999 char *value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7000 input = gtk_entry_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7001 gtk_entry_set_activates_default(GTK_ENTRY(input), TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7002 value = g_hash_table_lookup(defaults, pce->identifier); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7003 if (value != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7004 gtk_entry_set_text(GTK_ENTRY(input), value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7005 if (pce->secret) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7006 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7007 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); |
24987
17b840986607
GTK+ 2.16.0 will set the invisible character to a nice bullet instead of
Mark Doliner <mark@kingant.net>
parents:
24933
diff
changeset
|
7008 #if !GTK_CHECK_VERSION(2,16,0) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7009 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') |
15821 | 7010 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); |
24987
17b840986607
GTK+ 2.16.0 will set the invisible character to a nice bullet instead of
Mark Doliner <mark@kingant.net>
parents:
24933
diff
changeset
|
7011 #endif /* Less than GTK+ 2.16 */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7012 } |
21992
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
7013 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7014 g_signal_connect(G_OBJECT(input), "changed", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7015 G_CALLBACK(addchat_set_sensitive_if_input_cb), data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7016 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7017 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7018 /* Do the following for any type of input widget */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7019 if (focus) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7020 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7021 gtk_widget_grab_focus(input); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7022 focus = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7023 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7024 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7025 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7026 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7027 data->entries = g_list_append(data->entries, input); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7028 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7029 g_free(pce); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7030 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7031 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7032 g_list_free(list); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7033 g_hash_table_destroy(defaults); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7034 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7035 /* Set whether the "OK" button should be clickable initially */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7036 addchat_set_sensitive_if_input_cb(NULL, data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7037 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7038 gtk_widget_show_all(data->entries_box); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7039 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7040 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7041 static void |
15823 | 7042 addchat_select_account_cb(GObject *w, PurpleAccount *account, |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7043 PidginAddChatData *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7044 { |
15823 | 7045 if (strcmp(purple_account_get_protocol_id(data->account), |
7046 purple_account_get_protocol_id(account)) == 0) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7047 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7048 data->account = account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7049 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7050 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7051 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7052 data->account = account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7053 rebuild_addchat_entries(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7054 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7055 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7056 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7057 static void |
15823 | 7058 pidgin_blist_request_add_chat(PurpleAccount *account, PurpleGroup *group, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7059 const char *alias, const char *name) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7060 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7061 PidginAddChatData *data; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7062 PidginBuddyList *gtkblist; |
18063
926ccb104da0
disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents:
18058
diff
changeset
|
7063 GList *l; |
15823 | 7064 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7065 GtkWidget *label; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7066 GtkWidget *hbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7067 GtkWidget *vbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7068 GtkWidget *img; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7069 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7070 if (account != NULL) { |
15823 | 7071 gc = purple_account_get_connection(account); |
7072 | |
7073 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat == NULL) { | |
7074 purple_notify_error(gc, NULL, _("This protocol does not support chat rooms."), NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7075 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7076 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7077 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7078 /* Find an account with chat capabilities */ |
15823 | 7079 for (l = purple_connections_get_all(); l != NULL; l = l->next) { |
7080 gc = (PurpleConnection *)l->data; | |
7081 | |
7082 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat != NULL) { | |
7083 account = purple_connection_get_account(gc); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7084 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7085 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7086 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7087 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7088 if (account == NULL) { |
15823 | 7089 purple_notify_error(NULL, NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7090 _("You are not currently signed on with any " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7091 "protocols that have the ability to chat."), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7092 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7093 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7094 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7095 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7096 data = g_new0(PidginAddChatData, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7097 data->account = account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7098 data->default_chat_name = g_strdup(name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7099 |
15436 | 7100 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION, |
7101 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7102 |
15823 | 7103 gtkblist = PIDGIN_BLIST(purple_get_blist()); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7104 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7105 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7106 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7107 data->window = gtk_dialog_new_with_buttons(_("Add Chat"), |
21235
fba1f6c3df0b
Converted string literal UI hints to #define-ed constants and fixed two cast-warnings in gtkblist.c
Gabriel Schulhof <nix@go-nix.ca>
parents:
21232
diff
changeset
|
7108 gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, GTK_DIALOG_NO_SEPARATOR, |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
7109 _("Room _List"), 1, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7110 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7111 GTK_STOCK_ADD, GTK_RESPONSE_OK, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7112 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7113 |
21090
8e9d40defbc0
Need to explicitly call gtk_window_set_transient_for, even on a GtkDialog
Gabriel Schulhof <nix@go-nix.ca>
parents:
21089
diff
changeset
|
7114 if (gtkblist) |
8e9d40defbc0
Need to explicitly call gtk_window_set_transient_for, even on a GtkDialog
Gabriel Schulhof <nix@go-nix.ca>
parents:
21089
diff
changeset
|
7115 gtk_window_set_transient_for(GTK_WINDOW(data->window), GTK_WINDOW(gtkblist->window)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7116 gtk_dialog_set_default_response(GTK_DIALOG(data->window), GTK_RESPONSE_OK); |
15821 | 7117 gtk_container_set_border_width(GTK_CONTAINER(data->window), PIDGIN_HIG_BOX_SPACE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7118 gtk_window_set_resizable(GTK_WINDOW(data->window), FALSE); |
15821 | 7119 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BORDER); |
7120 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BOX_SPACE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7121 gtk_window_set_role(GTK_WINDOW(data->window), "add_chat"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7122 gtk_window_set_type_hint(GTK_WINDOW(data->window), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7123 GDK_WINDOW_TYPE_HINT_DIALOG); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7124 |
15821 | 7125 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7126 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), hbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7127 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7128 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7129 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7130 vbox = gtk_vbox_new(FALSE, 5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7131 gtk_container_add(GTK_CONTAINER(hbox), vbox); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7132 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7133 label = gtk_label_new( |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7134 _("Please enter an alias, and the appropriate information " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7135 "about the chat you would like to add to your buddy list.\n")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7136 gtk_widget_set_size_request(label, 400, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7137 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7138 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7139 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7140 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7141 data->account_menu = pidgin_account_option_menu_new(account, FALSE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7142 G_CALLBACK(addchat_select_account_cb), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7143 chat_account_filter_func, data); |
21992
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
7144 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Account:"), data->sg, data->account_menu, TRUE, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7145 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7146 data->entries_box = gtk_vbox_new(FALSE, 5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7147 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7148 gtk_box_pack_start(GTK_BOX(vbox), data->entries_box, TRUE, TRUE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7149 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7150 rebuild_addchat_entries(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7151 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7152 data->alias_entry = gtk_entry_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7153 if (alias != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7154 gtk_entry_set_text(GTK_ENTRY(data->alias_entry), alias); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7155 gtk_entry_set_activates_default(GTK_ENTRY(data->alias_entry), TRUE); |
21992
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
7156 |
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
7157 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("A_lias:"), data->sg, data->alias_entry, TRUE, NULL); |
17418
202f4df12cf4
Closes #348 'Conversation -> Add (for Chats) should move focus to the alias field.'
Sean Egan <seanegan@gmail.com>
parents:
17139
diff
changeset
|
7158 if (name != NULL) |
202f4df12cf4
Closes #348 'Conversation -> Add (for Chats) should move focus to the alias field.'
Sean Egan <seanegan@gmail.com>
parents:
17139
diff
changeset
|
7159 gtk_widget_grab_focus(data->alias_entry); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7160 |
20028
a2b4eac83902
Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19680
diff
changeset
|
7161 data->group_combo = pidgin_text_combo_box_entry_new(group ? group->name : NULL, groups_tree()); |
21992
1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
Gabriel Schulhof <nix@go-nix.ca>
parents:
21990
diff
changeset
|
7162 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Group:"), data->sg, data->group_combo, TRUE, NULL); |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
7163 |
21675
ebe79cae6d83
Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents:
21662
diff
changeset
|
7164 data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account becomes online.")); |
24302
d9a50381a20c
A little clearer description for an option.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24282
diff
changeset
|
7165 data->persistent = gtk_check_button_new_with_mnemonic(_("_Remain in chat after window is closed.")); |
20084
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
7166 gtk_box_pack_start(GTK_BOX(vbox), data->autojoin, FALSE, FALSE, 0); |
de39f3855e8f
Add checkboxes for 'auto-join' and 'persistent' in the add-chat dialog. Closes #2248.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20083
diff
changeset
|
7167 gtk_box_pack_start(GTK_BOX(vbox), data->persistent, FALSE, FALSE, 0); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7168 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7169 g_signal_connect(G_OBJECT(data->window), "response", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7170 G_CALLBACK(add_chat_resp_cb), data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7171 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7172 gtk_widget_show_all(data->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7173 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7174 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7175 static void |
15823 | 7176 add_group_cb(PurpleConnection *gc, const char *group_name) |
7177 { | |
7178 PurpleGroup *group; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7179 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7180 if ((group_name == NULL) || (*group_name == '\0')) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7181 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7182 |
15823 | 7183 group = purple_group_new(group_name); |
7184 purple_blist_add_group(group, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7185 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7186 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7187 static void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7188 pidgin_blist_request_add_group(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7189 { |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
7190 purple_request_input(NULL, _("Add Group"), NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7191 _("Please enter the name of the group to be added."), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7192 NULL, FALSE, FALSE, NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7193 _("Add"), G_CALLBACK(add_group_cb), |
16442
08db93bbd798
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 <evan.s@dreskin.net>
parents:
16275
diff
changeset
|
7194 _("Cancel"), NULL, |
08db93bbd798
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 <evan.s@dreskin.net>
parents:
16275
diff
changeset
|
7195 NULL, NULL, NULL, |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
7196 NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7197 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7198 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7199 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7200 pidgin_blist_toggle_visibility() |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7201 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7202 if (gtkblist && gtkblist->window) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7203 if (GTK_WIDGET_VISIBLE(gtkblist->window)) { |
22898
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
7204 /* make the buddy list visible if it is iconified or if it is |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
7205 * obscured and not currently focused (the focus part ensures |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
7206 * that we do something reasonable if the buddy list is obscured |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
7207 * by a window set to always be on top), otherwise hide the |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
7208 * buddy list |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
7209 */ |
21041
094bbbe89d0d
Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents:
21040
diff
changeset
|
7210 purple_blist_set_visible(PIDGIN_WINDOW_ICONIFIED(gtkblist->window) || |
22898
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
7211 ((gtk_blist_visibility != GDK_VISIBILITY_UNOBSCURED) && |
5d833ca5a265
Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents:
22789
diff
changeset
|
7212 !gtk_blist_focused)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7213 } else { |
15823 | 7214 purple_blist_set_visible(TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7215 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7216 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7217 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7218 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7219 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7220 pidgin_blist_visibility_manager_add() |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7221 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7222 visibility_manager_count++; |
15823 | 7223 purple_debug_info("gtkblist", "added visibility manager: %d\n", visibility_manager_count); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7224 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7225 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7226 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7227 pidgin_blist_visibility_manager_remove() |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7228 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7229 if (visibility_manager_count) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7230 visibility_manager_count--; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7231 if (!visibility_manager_count) |
15823 | 7232 purple_blist_set_visible(TRUE); |
7233 purple_debug_info("gtkblist", "removed visibility manager: %d\n", visibility_manager_count); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7234 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7235 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7236 void pidgin_blist_add_alert(GtkWidget *widget) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7237 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7238 gtk_container_add(GTK_CONTAINER(gtkblist->scrollbook), widget); |
22299
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7239 set_urgent(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7240 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7241 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7242 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7243 pidgin_blist_set_headline(const char *text, GdkPixbuf *pixbuf, GCallback callback, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7244 gpointer user_data, GDestroyNotify destroy) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7245 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7246 /* Destroy any existing headline first */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7247 if (gtkblist->headline_destroy) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7248 gtkblist->headline_destroy(gtkblist->headline_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7249 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7250 gtk_label_set_markup(GTK_LABEL(gtkblist->headline_label), text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7251 gtk_image_set_from_pixbuf(GTK_IMAGE(gtkblist->headline_image), pixbuf); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7252 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7253 gtkblist->headline_callback = callback; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7254 gtkblist->headline_data = user_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7255 gtkblist->headline_destroy = destroy; |
20586
04590d9db8b7
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20546
diff
changeset
|
7256 if (text != NULL || pixbuf != NULL) { |
22299
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7257 set_urgent(); |
20586
04590d9db8b7
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20546
diff
changeset
|
7258 gtk_widget_show_all(gtkblist->headline_hbox); |
04590d9db8b7
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20546
diff
changeset
|
7259 } else { |
04590d9db8b7
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20546
diff
changeset
|
7260 gtk_widget_hide(gtkblist->headline_hbox); |
04590d9db8b7
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
20546
diff
changeset
|
7261 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7262 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7263 |
22299
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7264 |
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7265 static void |
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7266 set_urgent(void) |
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7267 { |
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7268 if (!GTK_WIDGET_HAS_FOCUS(gtkblist->window)) |
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7269 pidgin_set_urgent(GTK_WINDOW(gtkblist->window), TRUE); |
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7270 } |
858ce8a1fc8c
Pull setting the urgent hint on the blist when it is unfocused into its own
Will Thompson <will.thompson@collabora.co.uk>
parents:
22298
diff
changeset
|
7271 |
15823 | 7272 static PurpleBlistUiOps blist_ui_ops = |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7273 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7274 pidgin_blist_new_list, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7275 pidgin_blist_new_node, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7276 pidgin_blist_show, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7277 pidgin_blist_update, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7278 pidgin_blist_remove, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7279 pidgin_blist_destroy, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7280 pidgin_blist_set_visible, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7281 pidgin_blist_request_add_buddy, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7282 pidgin_blist_request_add_chat, |
16681
fbf111436896
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16564
diff
changeset
|
7283 pidgin_blist_request_add_group, |
fbf111436896
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16564
diff
changeset
|
7284 NULL, |
fbf111436896
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16564
diff
changeset
|
7285 NULL, |
fbf111436896
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16564
diff
changeset
|
7286 NULL, |
fbf111436896
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16564
diff
changeset
|
7287 NULL |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7288 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7289 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7290 |
15823 | 7291 PurpleBlistUiOps * |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7292 pidgin_blist_get_ui_ops(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7293 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7294 return &blist_ui_ops; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7295 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7296 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7297 PidginBuddyList *pidgin_blist_get_default_gtk_blist() |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7298 { |
15448 | 7299 return gtkblist; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7300 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7301 |
15823 | 7302 static void account_signon_cb(PurpleConnection *gc, gpointer z) |
7303 { | |
7304 PurpleAccount *account = purple_connection_get_account(gc); | |
7305 PurpleBlistNode *gnode, *cnode; | |
7306 for(gnode = purple_get_blist()->root; gnode; gnode = gnode->next) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7307 { |
15823 | 7308 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7309 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7310 for(cnode = gnode->child; cnode; cnode = cnode->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7311 { |
15823 | 7312 PurpleChat *chat; |
7313 | |
7314 if(!PURPLE_BLIST_NODE_IS_CHAT(cnode)) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7315 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7316 |
15823 | 7317 chat = (PurpleChat *)cnode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7318 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7319 if(chat->account != account) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7320 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7321 |
15823 | 7322 if(purple_blist_node_get_bool((PurpleBlistNode*)chat, "gtk-autojoin") || |
7323 (purple_blist_node_get_string((PurpleBlistNode*)chat, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7324 "gtk-autojoin") != NULL)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7325 serv_join_chat(gc, chat->components); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7326 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7327 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7328 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7329 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7330 void * |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7331 pidgin_blist_get_handle() { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7332 static int handle; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7333 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7334 return &handle; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7335 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7336 |
15823 | 7337 static gboolean buddy_signonoff_timeout_cb(PurpleBuddy *buddy) |
7338 { | |
7339 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode*)buddy)->ui_data; | |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
7340 |
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
7341 gtknode->recent_signonoff = FALSE; |
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
7342 gtknode->recent_signonoff_timer = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7343 |
15823 | 7344 pidgin_blist_update(NULL, (PurpleBlistNode*)buddy); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7345 |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
7346 return FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7347 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7348 |
15823 | 7349 static void buddy_signonoff_cb(PurpleBuddy *buddy) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7350 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7351 struct _pidgin_blist_node *gtknode; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7352 |
15823 | 7353 if(!((PurpleBlistNode*)buddy)->ui_data) { |
7354 pidgin_blist_new_node((PurpleBlistNode*)buddy); | |
7355 } | |
7356 | |
7357 gtknode = ((PurpleBlistNode*)buddy)->ui_data; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7358 |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
7359 gtknode->recent_signonoff = TRUE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7360 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7361 if(gtknode->recent_signonoff_timer > 0) |
15823 | 7362 purple_timeout_remove(gtknode->recent_signonoff_timer); |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
7363 gtknode->recent_signonoff_timer = purple_timeout_add(10000, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7364 (GSourceFunc)buddy_signonoff_timeout_cb, buddy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7365 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7366 |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
7367 void |
23478
4aeef8c3cce3
restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23476
diff
changeset
|
7368 pidgin_blist_set_theme(PidginBlistTheme *theme) |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7369 { |
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7370 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
7371 PurpleBuddyList *list = purple_get_blist(); |
23480
2ccad3a8d9fe
fixed segfault when changing blist themes, changed prefs to not rely on static iter, fixed a few leaks
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23479
diff
changeset
|
7372 |
2ccad3a8d9fe
fixed segfault when changing blist themes, changed prefs to not rely on static iter, fixed a few leaks
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23479
diff
changeset
|
7373 if (theme != NULL) |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
7374 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/blist/theme", |
23476
8941e76e0762
flushed out blist themes a bit with lots of properties and get methods
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23475
diff
changeset
|
7375 purple_theme_get_name(PURPLE_THEME(theme))); |
25411
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
7376 else |
c0e3b62f8098
* Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents:
25410
diff
changeset
|
7377 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/blist/theme", ""); |
23480
2ccad3a8d9fe
fixed segfault when changing blist themes, changed prefs to not rely on static iter, fixed a few leaks
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23479
diff
changeset
|
7378 |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7379 priv->current_theme = theme; |
23478
4aeef8c3cce3
restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23476
diff
changeset
|
7380 |
23482
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
7381 pidgin_blist_build_layout(list); |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
7382 |
d17d6e83f428
Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23481
diff
changeset
|
7383 pidgin_blist_refresh(list); |
23478
4aeef8c3cce3
restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23476
diff
changeset
|
7384 } |
4aeef8c3cce3
restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23476
diff
changeset
|
7385 |
4aeef8c3cce3
restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23476
diff
changeset
|
7386 |
4aeef8c3cce3
restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23476
diff
changeset
|
7387 PidginBlistTheme * |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7388 pidgin_blist_get_theme() |
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7389 { |
25415
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
7390 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); |
584063555949
Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents:
25411
diff
changeset
|
7391 |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7392 return priv->current_theme; |
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7393 } |
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7394 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7395 void pidgin_blist_init(void) |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7396 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7397 void *gtk_blist_handle = pidgin_blist_get_handle(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7398 |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
7399 cached_emblems = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
7400 |
15823 | 7401 purple_signal_connect(purple_connections_get_handle(), "signed-on", |
7402 gtk_blist_handle, PURPLE_CALLBACK(account_signon_cb), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7403 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7404 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7405 /* Initialize prefs */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7406 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/blist"); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7407 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons", TRUE); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7408 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups", FALSE); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7409 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time", TRUE); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7410 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies", FALSE); |
19474
74befdcd0454
Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@gmail.com>
parents:
19363
diff
changeset
|
7411 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_protocol_icons", FALSE); |
16102
f3559f8d2fc1
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@gmail.com>
parents:
16100
diff
changeset
|
7412 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", FALSE); |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7413 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/list_maximized", FALSE); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7414 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/blist/sort_type", "alphabetical"); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7415 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/x", 0); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7416 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/y", 0); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7417 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/width", 250); /* Golden ratio, baby */ |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7418 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/height", 405); /* Golden ratio, baby */ |
24282
d38d854cd0bf
Use GtkSetting to obtain the tooltip preferences instead of our own hidden
Richard Laager <rlaager@wiktel.com>
parents:
24134
diff
changeset
|
7419 #if !GTK_CHECK_VERSION(2,14,0) |
d38d854cd0bf
Use GtkSetting to obtain the tooltip preferences instead of our own hidden
Richard Laager <rlaager@wiktel.com>
parents:
24134
diff
changeset
|
7420 /* This pref is used in pidgintooltip.c. */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
7421 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/blist/tooltip_delay", 500); |
24282
d38d854cd0bf
Use GtkSetting to obtain the tooltip preferences instead of our own hidden
Richard Laager <rlaager@wiktel.com>
parents:
24134
diff
changeset
|
7422 #endif |
23475
1242a922a4bc
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23395
diff
changeset
|
7423 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/blist/theme", ""); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7424 |
23479
edb03a8d54bd
Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23478
diff
changeset
|
7425 purple_theme_manager_register_type(g_object_new(PIDGIN_TYPE_BLIST_THEME_LOADER, "type", "blist", NULL)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7426 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7427 /* Register our signals */ |
15823 | 7428 purple_signal_register(gtk_blist_handle, "gtkblist-hiding", |
7429 purple_marshal_VOID__POINTER, NULL, 1, | |
7430 purple_value_new(PURPLE_TYPE_SUBTYPE, | |
7431 PURPLE_SUBTYPE_BLIST)); | |
7432 | |
7433 purple_signal_register(gtk_blist_handle, "gtkblist-unhiding", | |
7434 purple_marshal_VOID__POINTER, NULL, 1, | |
7435 purple_value_new(PURPLE_TYPE_SUBTYPE, | |
7436 PURPLE_SUBTYPE_BLIST)); | |
7437 | |
7438 purple_signal_register(gtk_blist_handle, "gtkblist-created", | |
7439 purple_marshal_VOID__POINTER, NULL, 1, | |
7440 purple_value_new(PURPLE_TYPE_SUBTYPE, | |
7441 PURPLE_SUBTYPE_BLIST)); | |
7442 | |
7443 purple_signal_register(gtk_blist_handle, "drawing-tooltip", | |
7444 purple_marshal_VOID__POINTER_POINTER_UINT, NULL, 3, | |
7445 purple_value_new(PURPLE_TYPE_SUBTYPE, | |
7446 PURPLE_SUBTYPE_BLIST_NODE), | |
7447 purple_value_new_outgoing(PURPLE_TYPE_BOXED, "GString *"), | |
7448 purple_value_new(PURPLE_TYPE_BOOLEAN)); | |
7449 | |
7450 | |
7451 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); | |
7452 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); | |
7453 purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed", gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7454 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7455 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7456 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7457 pidgin_blist_uninit(void) { |
21756
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
7458 g_hash_table_destroy(cached_emblems); |
abd0cd2b712a
Add rudimentary caching for buddy list emblems. This avoids all the icons being duplicated in memory and constantly loaded. A more complete solution would be preferable, but I think this is better than nothing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21752
diff
changeset
|
7459 |
15823 | 7460 purple_signals_unregister_by_instance(pidgin_blist_get_handle()); |
7461 purple_signals_disconnect_by_handle(pidgin_blist_get_handle()); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7462 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7463 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7464 /********************************************************************* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7465 * Buddy List sorting functions * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7466 *********************************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7467 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7468 GList *pidgin_blist_get_sort_methods() |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7469 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7470 return pidgin_blist_sort_methods; |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7471 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7472 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7473 void pidgin_blist_sort_method_reg(const char *id, const char *name, pidgin_blist_sort_function func) |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7474 { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7475 struct pidgin_blist_sort_method *method = g_new0(struct pidgin_blist_sort_method, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7476 method->id = g_strdup(id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7477 method->name = g_strdup(name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7478 method->func = func; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7479 pidgin_blist_sort_methods = g_list_append(pidgin_blist_sort_methods, method); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7480 pidgin_blist_update_sort_methods(); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7481 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7482 |
21990
d309d662a32c
Fix an infinite loop. Fixes #4486.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21986
diff
changeset
|
7483 void pidgin_blist_sort_method_unreg(const char *id) |
d309d662a32c
Fix an infinite loop. Fixes #4486.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21986
diff
changeset
|
7484 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7485 GList *l = pidgin_blist_sort_methods; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7486 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7487 while(l) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7488 struct pidgin_blist_sort_method *method = l->data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7489 if(!strcmp(method->id, id)) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7490 pidgin_blist_sort_methods = g_list_delete_link(pidgin_blist_sort_methods, l); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7491 g_free(method->id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7492 g_free(method->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7493 g_free(method); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7494 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7495 } |
21990
d309d662a32c
Fix an infinite loop. Fixes #4486.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21986
diff
changeset
|
7496 l = l->next; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7497 } |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7498 pidgin_blist_update_sort_methods(); |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7499 } |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7500 |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7501 void pidgin_blist_sort_method_set(const char *id){ |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7502 GList *l = pidgin_blist_sort_methods; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7503 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7504 if(!id) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7505 id = "none"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7506 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7507 while (l && strcmp(((struct pidgin_blist_sort_method*)l->data)->id, id)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7508 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7509 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7510 if (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7511 current_sort_method = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7512 } else if (!current_sort_method) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7513 pidgin_blist_sort_method_set("none"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7514 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7515 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7516 if (!strcmp(id, "none")) { |
15823 | 7517 redo_buddy_list(purple_get_blist(), TRUE, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7518 } else { |
15823 | 7519 redo_buddy_list(purple_get_blist(), FALSE, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7520 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7521 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7522 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7523 /****************************************** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7524 ** Sort Methods |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7525 ******************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7526 |
15823 | 7527 static void sort_method_none(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter parent_iter, GtkTreeIter *cur, GtkTreeIter *iter) |
7528 { | |
7529 PurpleBlistNode *sibling = node->prev; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7530 GtkTreeIter sibling_iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7531 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7532 if (cur != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7533 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7534 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7535 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7536 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7537 while (sibling && !get_iter_from_node(sibling, &sibling_iter)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7538 sibling = sibling->prev; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7539 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7540 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7541 gtk_tree_store_insert_after(gtkblist->treemodel, iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7542 node->parent ? &parent_iter : NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7543 sibling ? &sibling_iter : NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7544 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7545 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7546 #if GTK_CHECK_VERSION(2,2,1) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7547 |
15823 | 7548 static void sort_method_alphabetical(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7549 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7550 GtkTreeIter more_z; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7551 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7552 const char *my_name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7553 |
15823 | 7554 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
7555 my_name = purple_contact_get_alias((PurpleContact*)node); | |
7556 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) { | |
7557 my_name = purple_chat_get_name((PurpleChat*)node); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7558 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7559 sort_method_none(node, blist, groupiter, cur, iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7560 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7561 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7562 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7563 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7564 if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, &groupiter)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7565 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7566 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7567 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7568 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7569 do { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7570 GValue val; |
15823 | 7571 PurpleBlistNode *n; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7572 const char *this_name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7573 int cmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7574 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7575 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7576 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7577 n = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7578 |
15823 | 7579 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) { |
7580 this_name = purple_contact_get_alias((PurpleContact*)n); | |
7581 } else if(PURPLE_BLIST_NODE_IS_CHAT(n)) { | |
7582 this_name = purple_chat_get_name((PurpleChat*)n); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7583 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7584 this_name = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7585 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7586 |
15823 | 7587 cmp = purple_utf8_strcasecmp(my_name, this_name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7588 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7589 if(this_name && (cmp < 0 || (cmp == 0 && node < n))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7590 if(cur) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7591 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7592 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7593 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7594 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7595 gtk_tree_store_insert_before(gtkblist->treemodel, iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7596 &groupiter, &more_z); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7597 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7598 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7599 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7600 g_value_unset(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7601 } while (gtk_tree_model_iter_next (GTK_TREE_MODEL(gtkblist->treemodel), &more_z)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7602 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7603 if(cur) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7604 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7605 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7606 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7607 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7608 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7609 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7610 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7611 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7612 |
15823 | 7613 static void sort_method_status(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7614 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7615 GtkTreeIter more_z; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7616 |
15823 | 7617 PurpleBuddy *my_buddy, *this_buddy; |
7618 | |
7619 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { | |
7620 my_buddy = purple_contact_get_priority_buddy((PurpleContact*)node); | |
7621 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7622 if (cur != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7623 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7624 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7625 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7626 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7627 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7628 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7629 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7630 sort_method_none(node, blist, groupiter, cur, iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7631 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7632 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7633 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7634 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7635 if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, &groupiter)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7636 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7637 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7638 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7639 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7640 do { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7641 GValue val; |
15823 | 7642 PurpleBlistNode *n; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7643 gint name_cmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7644 gint presence_cmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7645 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7646 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7647 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7648 n = g_value_get_pointer(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7649 |
15823 | 7650 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) { |
7651 this_buddy = purple_contact_get_priority_buddy((PurpleContact*)n); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7652 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7653 this_buddy = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7654 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7655 |
15823 | 7656 name_cmp = purple_utf8_strcasecmp( |
7657 purple_contact_get_alias(purple_buddy_get_contact(my_buddy)), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7658 (this_buddy |
15823 | 7659 ? purple_contact_get_alias(purple_buddy_get_contact(this_buddy)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7660 : NULL)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7661 |
15823 | 7662 presence_cmp = purple_presence_compare( |
7663 purple_buddy_get_presence(my_buddy), | |
7664 this_buddy ? purple_buddy_get_presence(this_buddy) : NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7665 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7666 if (this_buddy == NULL || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7667 (presence_cmp < 0 || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7668 (presence_cmp == 0 && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7669 (name_cmp < 0 || (name_cmp == 0 && node < n))))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7670 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7671 if (cur != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7672 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7673 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7674 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7675 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7676 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7677 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7678 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7679 gtk_tree_store_insert_before(gtkblist->treemodel, iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7680 &groupiter, &more_z); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7681 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7682 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7683 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7684 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7685 g_value_unset(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7686 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7687 while (gtk_tree_model_iter_next(GTK_TREE_MODEL(gtkblist->treemodel), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7688 &more_z)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7689 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7690 if (cur) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7691 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7692 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7693 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7694 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7695 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7696 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7697 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7698 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7699 |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7700 static void sort_method_log_activity(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7701 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7702 GtkTreeIter more_z; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7703 |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7704 int activity_score = 0, this_log_activity_score = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7705 const char *buddy_name, *this_buddy_name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7706 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7707 if(cur && (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gtkblist->treemodel), &groupiter) == 1)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7708 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7709 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7710 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7711 |
15823 | 7712 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
7713 PurpleBlistNode *n; | |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7714 PurpleBuddy *buddy; |
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7715 for (n = node->child; n; n = n->next) { |
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7716 buddy = (PurpleBuddy*)n; |
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7717 activity_score += purple_log_get_activity_score(PURPLE_LOG_IM, buddy->name, buddy->account); |
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7718 } |
15823 | 7719 buddy_name = purple_contact_get_alias((PurpleContact*)node); |
7720 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7721 /* we don't have a reliable way of getting the log filename |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7722 * from the chat info in the blist, yet */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7723 if (cur != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7724 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7725 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7726 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7727 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7728 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7729 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7730 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7731 sort_method_none(node, blist, groupiter, cur, iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7732 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7733 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7734 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7735 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7736 if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, &groupiter)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7737 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7738 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7739 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7740 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7741 do { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7742 GValue val; |
15823 | 7743 PurpleBlistNode *n; |
7744 PurpleBlistNode *n2; | |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7745 PurpleBuddy *buddy; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7746 int cmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7747 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7748 val.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7749 gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7750 n = g_value_get_pointer(&val); |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7751 this_log_activity_score = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7752 |
15823 | 7753 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) { |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7754 for (n2 = n->child; n2; n2 = n2->next) { |
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7755 buddy = (PurpleBuddy*)n2; |
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7756 this_log_activity_score += purple_log_get_activity_score(PURPLE_LOG_IM, buddy->name, buddy->account); |
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7757 } |
15823 | 7758 this_buddy_name = purple_contact_get_alias((PurpleContact*)n); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7759 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7760 this_buddy_name = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7761 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7762 |
15823 | 7763 cmp = purple_utf8_strcasecmp(buddy_name, this_buddy_name); |
7764 | |
25410
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7765 if (!PURPLE_BLIST_NODE_IS_CONTACT(n) || activity_score > this_log_activity_score || |
52b2e7260340
A patch from Chris Connett to change the log size sorting method to weight
Richard Laager <rlaager@wiktel.com>
parents:
25403
diff
changeset
|
7766 ((activity_score == this_log_activity_score) && |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7767 (cmp < 0 || (cmp == 0 && node < n)))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7768 if (cur != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7769 gtk_tree_store_move_before(gtkblist->treemodel, cur, &more_z); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7770 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7771 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7772 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7773 gtk_tree_store_insert_before(gtkblist->treemodel, iter, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7774 &groupiter, &more_z); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7775 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7776 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7777 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7778 g_value_unset(&val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7779 } while (gtk_tree_model_iter_next (GTK_TREE_MODEL(gtkblist->treemodel), &more_z)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7780 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7781 if (cur != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7782 gtk_tree_store_move_before(gtkblist->treemodel, cur, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7783 *iter = *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7784 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7785 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7786 gtk_tree_store_append(gtkblist->treemodel, iter, &groupiter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7787 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7788 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7789 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7790 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7791 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7792 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7793 static void |
15823 | 7794 plugin_act(GtkObject *obj, PurplePluginAction *pam) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7795 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7796 if (pam && pam->callback) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7797 pam->callback(pam); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7798 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7799 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7800 static void |
15980
f61113b26032
sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents:
15921
diff
changeset
|
7801 build_plugin_actions(GtkWidget *menu, PurplePlugin *plugin, |
f61113b26032
sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents:
15921
diff
changeset
|
7802 gpointer context) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7803 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7804 GtkWidget *menuitem; |
15823 | 7805 PurplePluginAction *action = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7806 GList *actions, *l; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7807 |
15980
f61113b26032
sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents:
15921
diff
changeset
|
7808 actions = PURPLE_PLUGIN_ACTIONS(plugin, context); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7809 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7810 for (l = actions; l != NULL; l = l->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7811 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7812 if (l->data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7813 { |
15823 | 7814 action = (PurplePluginAction *) l->data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7815 action->plugin = plugin; |
15980
f61113b26032
sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents:
15921
diff
changeset
|
7816 action->context = context; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7817 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7818 menuitem = gtk_menu_item_new_with_label(action->label); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7819 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7820 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7821 g_signal_connect(G_OBJECT(menuitem), "activate", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7822 G_CALLBACK(plugin_act), action); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7823 g_object_set_data_full(G_OBJECT(menuitem), "plugin_action", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7824 action, |
15823 | 7825 (GDestroyNotify)purple_plugin_action_free); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7826 gtk_widget_show(menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7827 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7828 else |
15507 | 7829 pidgin_separator(menu); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7830 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7831 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7832 g_list_free(actions); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7833 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7834 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7835 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7836 modify_account_cb(GtkWidget *widget, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7837 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7838 pidgin_account_dialog_show(PIDGIN_MODIFY_ACCOUNT_DIALOG, data); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7839 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7840 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7841 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7842 enable_account_cb(GtkCheckMenuItem *widget, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7843 { |
15823 | 7844 PurpleAccount *account = data; |
7845 const PurpleSavedStatus *saved_status; | |
7846 | |
7847 saved_status = purple_savedstatus_get_current(); | |
7848 purple_savedstatus_activate_for_account(saved_status, account); | |
7849 | |
7850 purple_account_set_enabled(account, PIDGIN_UI, TRUE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7851 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7852 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7853 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7854 disable_account_cb(GtkCheckMenuItem *widget, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7855 { |
15823 | 7856 PurpleAccount *account = data; |
7857 | |
7858 purple_account_set_enabled(account, PIDGIN_UI, FALSE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7859 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7860 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7861 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7862 pidgin_blist_update_accounts_menu(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7863 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7864 GtkWidget *menuitem = NULL, *submenu = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7865 GtkAccelGroup *accel_group = NULL; |
18063
926ccb104da0
disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents:
18058
diff
changeset
|
7866 GList *l = NULL, *accounts = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7867 gboolean disabled_accounts = FALSE; |
24850
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7868 gboolean enabled_accounts = FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7869 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7870 if (accountmenu == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7871 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7872 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7873 /* Clear the old Accounts menu */ |
18646
05cab350d1fb
Fix memory leak by freeing the list returned by gtk_container_get_children.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18435
diff
changeset
|
7874 for (l = gtk_container_get_children(GTK_CONTAINER(accountmenu)); l; l = g_list_delete_link(l, l)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7875 menuitem = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7876 |
23312
a3759c05cc5b
Bring back the unintentionally hidden 'Manage Accounts' dialog. Thanks to
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23309
diff
changeset
|
7877 if (menuitem != gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts/Manage Accounts"))) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7878 gtk_widget_destroy(menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7879 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7880 |
23969
5045f2ce9cff
disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents:
23967
diff
changeset
|
7881 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7882 char *buf = NULL; |
23346
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7883 GtkWidget *image = NULL; |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7884 PurpleAccount *account = NULL; |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7885 GdkPixbuf *pixbuf = NULL; |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7886 |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7887 account = accounts->data; |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7888 |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7889 if(!purple_account_get_enabled(account, PIDGIN_UI)) { |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7890 if (!disabled_accounts) { |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7891 menuitem = gtk_menu_item_new_with_label(_("Enable Account")); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7892 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7893 |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7894 submenu = gtk_menu_new(); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7895 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7896 gtk_menu_set_accel_path(GTK_MENU(submenu), N_("<PurpleMain>/Accounts/Enable Account")); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7897 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7898 |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7899 disabled_accounts = TRUE; |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7900 } |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7901 |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7902 buf = g_strconcat(purple_account_get_username(account), " (", |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7903 purple_account_get_protocol_name(account), ")", NULL); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7904 menuitem = gtk_image_menu_item_new_with_label(buf); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7905 g_free(buf); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7906 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7907 if (pixbuf != NULL) |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7908 { |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7909 if (!purple_account_is_connected(account)) |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7910 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7911 image = gtk_image_new_from_pixbuf(pixbuf); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7912 g_object_unref(G_OBJECT(pixbuf)); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7913 gtk_widget_show(image); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7914 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7915 } |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7916 g_signal_connect(G_OBJECT(menuitem), "activate", |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7917 G_CALLBACK(enable_account_cb), account); |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7918 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
24850
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7919 } else { |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7920 enabled_accounts = TRUE; |
23346
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7921 } |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7922 } |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7923 |
24850
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7924 if (!enabled_accounts) |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7925 return; |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7926 |
23346
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7927 pidgin_separator(accountmenu); |
24850
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7928 accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu)); |
23346
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7929 |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7930 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) { |
e96502c0262e
Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents:
23326
diff
changeset
|
7931 char *buf = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7932 char *accel_path_buf = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7933 GtkWidget *image = NULL; |
15823 | 7934 PurpleConnection *gc = NULL; |
7935 PurpleAccount *account = NULL; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7936 GdkPixbuf *pixbuf = NULL; |
15980
f61113b26032
sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents:
15921
diff
changeset
|
7937 PurplePlugin *plugin = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7938 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7939 account = accounts->data; |
24850
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7940 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7941 if (!purple_account_get_enabled(account, PIDGIN_UI)) |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7942 continue; |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7943 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7944 buf = g_strconcat(purple_account_get_username(account), " (", |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7945 purple_account_get_protocol_name(account), ")", NULL); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7946 menuitem = gtk_image_menu_item_new_with_label(buf); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7947 accel_path_buf = g_strconcat(N_("<PurpleMain>/Accounts/"), buf, NULL); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7948 g_free(buf); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7949 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7950 if (pixbuf != NULL) { |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7951 if (!purple_account_is_connected(account)) |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7952 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7953 0.0, FALSE); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7954 image = gtk_image_new_from_pixbuf(pixbuf); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7955 g_object_unref(G_OBJECT(pixbuf)); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7956 gtk_widget_show(image); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7957 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7958 } |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7959 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7960 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7961 submenu = gtk_menu_new(); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7962 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7963 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7964 g_free(accel_path_buf); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7965 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7966 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7967 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7968 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account")); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7969 g_signal_connect(G_OBJECT(menuitem), "activate", |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7970 G_CALLBACK(modify_account_cb), account); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7971 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7972 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7973 pidgin_separator(submenu); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7974 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7975 gc = purple_account_get_connection(account); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7976 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL; |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7977 if (plugin && PURPLE_PLUGIN_HAS_ACTIONS(plugin)) { |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7978 build_plugin_actions(submenu, plugin, gc); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7979 } else { |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7980 menuitem = gtk_menu_item_new_with_label(_("No actions available")); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7981 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7982 gtk_widget_set_sensitive(menuitem, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7983 } |
24850
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7984 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7985 pidgin_separator(submenu); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7986 |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7987 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable")); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7988 g_signal_connect(G_OBJECT(menuitem), "activate", |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7989 G_CALLBACK(disable_account_cb), account); |
289227f729ec
Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24830
diff
changeset
|
7990 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
25076
008f186c7bc7
Fix from "oopepe" to make menus more reliably responsive.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
24987
diff
changeset
|
7991 } |
008f186c7bc7
Fix from "oopepe" to make menus more reliably responsive.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
24987
diff
changeset
|
7992 gtk_widget_show_all(accountmenu); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7993 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7994 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7995 static GList *plugin_submenus = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7996 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7997 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
7998 pidgin_blist_update_plugin_actions(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7999 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8000 GtkWidget *menuitem, *submenu; |
15823 | 8001 PurplePlugin *plugin = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8002 GList *l; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8003 GtkAccelGroup *accel_group; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8004 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8005 GtkWidget *pluginmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8006 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8007 g_return_if_fail(pluginmenu != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8008 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8009 /* Remove old plugin action submenus from the Tools menu */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8010 for (l = plugin_submenus; l; l = l->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8011 gtk_widget_destroy(GTK_WIDGET(l->data)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8012 g_list_free(plugin_submenus); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8013 plugin_submenus = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8014 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8015 accel_group = gtk_menu_get_accel_group(GTK_MENU(pluginmenu)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8016 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8017 /* Add a submenu for each plugin with custom actions */ |
15823 | 8018 for (l = purple_plugins_get_loaded(); l; l = l->next) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8019 char *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8020 |
15823 | 8021 plugin = (PurplePlugin *) l->data; |
8022 | |
8023 if (PURPLE_IS_PROTOCOL_PLUGIN(plugin)) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8024 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8025 |
15823 | 8026 if (!PURPLE_PLUGIN_HAS_ACTIONS(plugin)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8027 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8028 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8029 menuitem = gtk_image_menu_item_new_with_label(_(plugin->info->name)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8030 gtk_menu_shell_append(GTK_MENU_SHELL(pluginmenu), menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8031 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8032 plugin_submenus = g_list_append(plugin_submenus, menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8033 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8034 submenu = gtk_menu_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8035 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8036 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8037 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8038 path = g_strdup_printf("%s/Tools/%s", gtkblist->ift->path, plugin->info->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8039 gtk_menu_set_accel_path(GTK_MENU(submenu), path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8040 g_free(path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8041 |
15980
f61113b26032
sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents:
15921
diff
changeset
|
8042 build_plugin_actions(submenu, plugin, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8043 } |
25076
008f186c7bc7
Fix from "oopepe" to make menus more reliably responsive.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
24987
diff
changeset
|
8044 gtk_widget_show_all(pluginmenu); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8045 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8046 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8047 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8048 sortmethod_act(GtkCheckMenuItem *checkmenuitem, char *id) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8049 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8050 if (gtk_check_menu_item_get_active(checkmenuitem)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8051 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
8052 pidgin_set_cursor(gtkblist->window, GDK_WATCH); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8053 /* This is redundant. I think. */ |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
8054 /* pidgin_blist_sort_method_set(id); */ |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
8055 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/blist/sort_type", id); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8056 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
8057 pidgin_clear_cursor(gtkblist->window); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8058 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8059 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8060 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8061 void |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
8062 pidgin_blist_update_sort_methods(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8063 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8064 GtkWidget *menuitem = NULL, *activeitem = NULL; |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
8065 PidginBlistSortMethod *method = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8066 GList *l; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8067 GSList *sl = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8068 GtkWidget *sortmenu; |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
16010
diff
changeset
|
8069 const char *m = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/sort_type"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8070 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8071 if ((gtkblist == NULL) || (gtkblist->ift == NULL)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8072 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8073 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8074 sortmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Sort Buddies")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8075 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8076 if (sortmenu == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8077 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8078 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8079 /* Clear the old menu */ |
18646
05cab350d1fb
Fix memory leak by freeing the list returned by gtk_container_get_children.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18435
diff
changeset
|
8080 for (l = gtk_container_get_children(GTK_CONTAINER(sortmenu)); l; l = g_list_delete_link(l, l)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8081 menuitem = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8082 gtk_widget_destroy(GTK_WIDGET(menuitem)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8083 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8084 |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
8085 for (l = pidgin_blist_sort_methods; l; l = l->next) { |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15500
diff
changeset
|
8086 method = (PidginBlistSortMethod *) l->data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8087 menuitem = gtk_radio_menu_item_new_with_label(sl, _(method->name)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8088 if (!strcmp(m, method->id)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8089 activeitem = menuitem; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8090 sl = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8091 gtk_menu_shell_append(GTK_MENU_SHELL(sortmenu), menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8092 g_signal_connect(G_OBJECT(menuitem), "toggled", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8093 G_CALLBACK(sortmethod_act), method->id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8094 gtk_widget_show(menuitem); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8095 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8096 if (activeitem) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8097 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(activeitem), TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8098 } |
18004
d40fd7106ebf
merge of '1c5a391126b5b506a29f0b9e34160d239cb783c6'
Sadrul Habib Chowdhury <imadil@gmail.com>
diff
changeset
|
8099 |