annotate pidgin/gtkblist.c @ 32138:e2c6e4fc3c84

Start looking at the GError parameter every time we call these functions: - gdk_pixbuf_loader_write - gdk_pixbuf_loader_close - gdk_pixbuf_new_from_file - gdk_pixbuf_new_from_file_at_size - gdk_pixbuf_new_from_file_at_scale There are times when gdkpixbuf returns a semi-invalid GdkPixbuf object and also sets the GError. If this happens we want to discard and ignore the GdkPixbuf object because it can cause problems. For example, calling gdk_pixbuf_scale_simple() causes gdkpixbuf to rapidly consume memory in an infinite loop. And that's bad. This commit adds some helper functions to gtkutils.[c|h] that make it a little easier to check the GError value. We should use them everywhere we call any of the above functions.
author Mark Doliner <mark@kingant.net>
date Wed, 22 Jun 2011 07:07:28 +0000
parents 1551c9a140fd
children accce7b79737 4bdf4e5e6d67
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
535f002e7b0f More pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15510
diff changeset
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
73 typedef struct
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
74 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
75 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
76 GtkWidget *window;
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
77 GtkBox *vbox;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
78 GtkWidget *account_menu;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
79 GtkSizeGroup *sg;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
80 } PidginBlistRequestData;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
81
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
82 typedef struct
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
83 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
84 PidginBlistRequestData rq_data;
15374
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;
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
88 GtkWidget *entry_for_invite;
15374
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 {
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
94 PidginBlistRequestData rq_data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
95 gchar *default_chat_name;
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
96 GList *entries;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
97 } PidginChatData;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
98
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
99 typedef struct
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
100 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
101 PidginChatData chat_data;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
102
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
103 GtkWidget *alias_entry;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
104 GtkWidget *group_combo;
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
105 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
106 GtkWidget *persistent;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
107 } PidginAddChatData;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
108
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
109 typedef struct
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110 {
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
111 /** 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
112 * 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
113 */
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
114 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
115
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
116 /** 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
117 * 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
118 */
21410
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
119 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
120
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
121 PidginBlistTheme *current_theme;
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 } 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
123
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
124 #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
125 ((PidginBuddyListPrivate *)((list)->priv))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
126
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
127 static GtkWidget *accountmenu = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
128
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
129 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
130 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
131 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
132 static gboolean editing_blist = FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
134 static GList *pidgin_blist_sort_methods = NULL;
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
135 static struct pidgin_blist_sort_method *current_sort_method = NULL;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
136 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
137
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
138 static void sort_method_alphabetical(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
139 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
140 static void sort_method_log_activity(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter);
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
141 static PidginBuddyList *gtkblist = NULL;
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
142
20028
a2b4eac83902 Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19680
diff changeset
143 static GList *groups_tree(void);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
144 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
145 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
146 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
147 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
148 static void pidgin_blist_update_group(PurpleBuddyList *list, PurpleBlistNode *node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
149 static void pidgin_blist_update_contact(PurpleBuddyList *list, PurpleBlistNode *node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
150 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
151 static const char *item_factory_translate_func (const char *path, gpointer func_data);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
152 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
153 static gboolean buddy_is_displayable(PurpleBuddy *buddy);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
154 static void redo_buddy_list(PurpleBuddyList *list, gboolean remove, gboolean rerender);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
155 static void pidgin_blist_collapse_contact_cb(GtkWidget *w, PurpleBlistNode *node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
156 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
157 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
158 static void set_urgent(void);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
159
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
160 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
161 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
162 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
163 } 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
164
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
165 typedef struct _pidgin_blist_node {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
166 GtkTreeRowReference *row;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
167 gboolean contact_expanded;
23969
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
168 gboolean recent_signonoff;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
169 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
170 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
171 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
172 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
173 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
174 } 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
175 } PidginBlistNode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
176
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
177 /***************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
178 * Callbacks *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
179 ***************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
180 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
181 {
21041
094bbbe89d0d Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents: 21040
diff changeset
182 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
183 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
184
094bbbe89d0d Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents: 21040
diff changeset
185 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
186 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
187
094bbbe89d0d Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents: 21040
diff changeset
188 /* 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
189 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
190 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
191
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
192 /* continue to handle event normally */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
193 return FALSE;
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 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
197 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
198 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
199 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
200 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
201 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
202 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/list_visible", TRUE);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
203 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
204 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
205 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
206
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
207 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
208 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
209 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
210 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
211 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
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 /* Refresh gtkblist if un-iconifying */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
215 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
216 if (!(event->new_window_state & GDK_WINDOW_STATE_ICONIFIED))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
217 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
218 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
219
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
220 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
222
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
223 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
224 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
225 if(visibility_manager_count)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
226 purple_blist_set_visible(FALSE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
227 else
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
228 purple_core_quit();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
229
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
230 /* 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
231 return TRUE;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
234 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
235 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
236 /* unfortunately GdkEventConfigure ignores the window gravity, but *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
237 * 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
238 * 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
239 * 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
240 * to work correctly. - Robot101 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
241 gint x, y;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
242
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
243 /* 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
244 * give us bogus (0,0) coordinates. - xOr */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
245 if (GTK_WIDGET_VISIBLE(w))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
246 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
247 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
248 return FALSE; /* carry on normally */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
249
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 #ifdef _WIN32
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
251 /* 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
252 * when the window is being maximized */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
253 if (gdk_window_get_state(w->window)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
254 & GDK_WINDOW_STATE_MAXIMIZED) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
255 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
256 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
257 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
258
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259 /* 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
260 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
261 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
262 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
263 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
264
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
265 return FALSE; /* carry on normally */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
267
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
268 /* don't save off-screen positioning */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
269 if (x + event->width < 0 ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
270 y + event->height < 0 ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
271 x > gdk_screen_width() ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
272 y > gdk_screen_height()) {
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 return FALSE; /* carry on normally */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
275 }
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 /* 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
278 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
279 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
280
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
281 /* 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
282 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
283 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
284 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
285 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
286
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
287 /* continue to handle event normally */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
288 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
290
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
291 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
292 {
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
293 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
294
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
295 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
296 purple_buddy_get_name(b));
15374
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
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
299 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
300 {
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
301 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
302 purple_buddy_get_name(b));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
303 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
304
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
305 #ifdef USE_VV
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
306 static void gtk_blist_menu_audio_call_cb(GtkWidget *w, PurpleBuddy *b)
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
307 {
26122
5d9a97a23d6e Remove some of the deprecated API.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26110
diff changeset
308 purple_prpl_initiate_media(purple_buddy_get_account(b),
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
309 purple_buddy_get_name(b), PURPLE_MEDIA_AUDIO);
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
310 }
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
311
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
312 static void gtk_blist_menu_video_call_cb(GtkWidget *w, PurpleBuddy *b)
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
313 {
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
314 /* if the buddy supports both audio and video, start a combined call,
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
315 otherwise start a pure video session */
26190
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
316 if (purple_prpl_get_media_caps(purple_buddy_get_account(b),
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
317 purple_buddy_get_name(b)) &
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
318 PURPLE_MEDIA_CAPS_AUDIO_VIDEO) {
26122
5d9a97a23d6e Remove some of the deprecated API.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26110
diff changeset
319 purple_prpl_initiate_media(purple_buddy_get_account(b),
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
320 purple_buddy_get_name(b), PURPLE_MEDIA_AUDIO | PURPLE_MEDIA_VIDEO);
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
321 } else {
26122
5d9a97a23d6e Remove some of the deprecated API.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26110
diff changeset
322 purple_prpl_initiate_media(purple_buddy_get_account(b),
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
323 purple_buddy_get_name(b), PURPLE_MEDIA_VIDEO);
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
324 }
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
325 }
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
326
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
327 #endif
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
328
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
329 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
330 {
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
331 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
332
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
333 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
334 purple_buddy_get_name(b), NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
335 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
336
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
337 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
338 {
20099
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
339 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
340 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
341
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
342 }
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
343
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
344 static void gtk_blist_menu_autojoin_cb(GtkWidget *w, PurpleChat *chat)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
345 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
346 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
347 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
348 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
349
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
350 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
351 {
ee5b3ac0d41d "We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19899
diff changeset
352 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
353 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
354 }
ee5b3ac0d41d "We are going to destroy the conversations immediately only if the 'close immediately'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19899
diff changeset
355
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
356 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
357 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
358 {
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
359 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
360 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
361 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
362 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
363 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
364 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
365 }
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
366
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
367 static void gtk_blist_join_chat(PurpleChat *chat)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
368 {
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
369 PurpleAccount *account;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
370 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
371 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
372 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
373 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
374 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
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 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
377 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
378
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
379 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
380
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
381 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
382 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
383 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
384 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
385
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
386 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
387 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
388 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
389 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
390
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 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
392 account);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
393
19415
2128daf52d31 Reattach the gtk-ui to a conversation when the user wants to
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19363
diff changeset
394 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
395 pidgin_conv_attach_to_conversation(conv);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
396 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
397 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
398
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 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
400 g_free(chat_name);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
401 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
402
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
403 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
404 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
405 gtk_blist_join_chat(chat);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
406 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
407
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
408 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
409 {
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
410 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
411 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
412 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
413 }
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
414
16275
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
415 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
416 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
417 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
418 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
419 {
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
420 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
421 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
422 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
423 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
424
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
425 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
426 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
427 gtk_tree_path_free (path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
428 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
16275
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
429
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
430 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
431 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
432 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
433 break;
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
434 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
435 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
436 break;
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
437 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
438 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
439 break;
29309
2930170ca3c0 We allow aliasing chats. So don't show an error message when we try to.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28807
diff changeset
440 case PURPLE_BLIST_CHAT_NODE:
2930170ca3c0 We allow aliasing chats. So don't show an error message when we try to.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28807
diff changeset
441 text = purple_chat_get_name(PURPLE_CHAT(node));
2930170ca3c0 We allow aliasing chats. So don't show an error message when we try to.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28807
diff changeset
442 break;
16275
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
443 default:
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
444 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
445 }
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
446
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
447 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
448 GtkEntry *entry = GTK_ENTRY (editable);
17046
0be41b604566 Patch #702, Info not reset on URL redirect
Sean Egan <seanegan@gmail.com>
parents: 17044
diff changeset
449 gtk_entry_set_text(entry, text);
0be41b604566 Patch #702, Info not reset on URL redirect
Sean Egan <seanegan@gmail.com>
parents: 17044
diff changeset
450 }
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
451 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
452 }
9a4854d71234 Patch #205, from SuperMMX. Fix a bug related to using F2 to alias
Mark Doliner <mark@kingant.net>
parents: 16222
diff changeset
453
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
454 static void
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
455 gtk_blist_do_personize(GList *merges)
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
456 {
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
457 PurpleBlistNode *contact = NULL;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
458 int max = 0;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
459 GList *tmp;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
460
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
461 /* 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
462 * 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
463 * by which contact is higher in the list
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
464 */
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
465 for (tmp = merges; tmp; tmp = tmp->next) {
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
466 PurpleBlistNode *node = tmp->data;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
467 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
468 PurpleBlistNodeType type;
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
469 int i = 0;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
470
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
471 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
472
28448
572073acf8e7 I think this was the optimization they wanted when this first broke.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28443
diff changeset
473 if (type == 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
474 node = purple_blist_node_get_parent(node);
28448
572073acf8e7 I think this was the optimization they wanted when this first broke.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28443
diff changeset
475 type = purple_blist_node_get_type(node);
572073acf8e7 I think this was the optimization they wanted when this first broke.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28443
diff changeset
476 }
572073acf8e7 I think this was the optimization they wanted when this first broke.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28443
diff changeset
477
572073acf8e7 I think this was the optimization they wanted when this first broke.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28443
diff changeset
478 if (type != PURPLE_BLIST_CONTACT_NODE)
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
479 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
480
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
481 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
482 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
483 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
484 {
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
485 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
486 }
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
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
488 if (i > max) {
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
489 contact = node;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
490 max = i;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
491 }
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
492 }
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
493
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
494 if (contact == NULL)
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
495 return;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
496
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
497 /* Merge all those buddies into this contact */
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
498 for (tmp = merges; tmp; tmp = tmp->next) {
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
499 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
500 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
501 node = purple_blist_node_get_parent(node);
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
502
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
503 if (node == contact)
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
504 continue;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
505
20099
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
506 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
507 }
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
508
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
509 /* 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
510 pidgin_blist_expand_contact_cb(NULL, contact);
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
511 g_list_free(merges);
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
512 }
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 static void
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
515 gtk_blist_auto_personize(PurpleBlistNode *group, const char *alias)
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
516 {
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
517 PurpleBlistNode *contact;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
518 PurpleBlistNode *buddy;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
519 GList *merges = NULL;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
520 int i = 0;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
521 char *a = g_utf8_casefold(alias, -1);
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
522
25311
43aeab2bb50e A totally untested struct hiding fix.
Richard Laager <rlaager@wiktel.com>
parents: 25296
diff changeset
523 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
524 contact != NULL;
43aeab2bb50e A totally untested struct hiding fix.
Richard Laager <rlaager@wiktel.com>
parents: 25296
diff changeset
525 contact = purple_blist_node_get_sibling_next(contact)) {
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
526 char *node_alias;
25311
43aeab2bb50e A totally untested struct hiding fix.
Richard Laager <rlaager@wiktel.com>
parents: 25296
diff changeset
527 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
528 continue;
20099
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
529
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
530 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
531 if (node_alias && !g_utf8_collate(node_alias, a)) {
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
532 merges = g_list_append(merges, contact);
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
533 i++;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
534 g_free(node_alias);
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
535 continue;
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
536 }
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
537 g_free(node_alias);
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
538
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
539 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
540 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
541 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
542 {
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
543 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
544 continue;
20099
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
545
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
546 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
547 if (node_alias && !g_utf8_collate(node_alias, a)) {
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
548 merges = g_list_append(merges, buddy);
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
549 i++;
21932
f82c94a72f5f Do not prompt for an already merged contact. Fixes #4285.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21931
diff changeset
550 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
551 break;
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
552 }
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
553 g_free(node_alias);
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
554 }
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
555 }
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
556 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
557
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
558 if (i > 1)
20082
90b5255f0a30 In the auto-personize code:
Richard Laager <rlaager@wiktel.com>
parents: 20059
diff changeset
559 {
20158
f76246d669c6 More Hylke icons
Sean Egan <seanegan@gmail.com>
parents: 20138
diff changeset
560 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
561 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
562 "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
563 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
564 g_free(msg);
20099
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
565 } else
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
566 g_list_free(merges);
20043
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
567 }
4d278e98b5ac Auto-personization. Closes #44
Sean Egan <seanegan@gmail.com>
parents: 20042
diff changeset
568
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
569 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
570 char *arg2, PurpleBuddyList *list)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
571 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
572 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
573 GtkTreePath *path;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
574 PurpleBlistNode *node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
575 PurpleGroup *dest;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
576
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
577 editing_blist = FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
578 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
579 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
580 gtk_tree_path_free (path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
581 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
582 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
583 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
584
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
585 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
586 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
587 case PURPLE_BLIST_CONTACT_NODE:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
588 {
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
589 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
590 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
591 (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
592
28266
6b05a0e36ffb Fix setting the alias on a metacontact when it's not expanded. This is a patch.
Paul Aurich <paul@darkrain42.org>
parents: 28138
diff changeset
593 /*
6b05a0e36ffb Fix setting the alias on a metacontact when it's not expanded. This is a patch.
Paul Aurich <paul@darkrain42.org>
parents: 28138
diff changeset
594 * XXX Using purple_contact_get_alias here breaks because we
6b05a0e36ffb Fix setting the alias on a metacontact when it's not expanded. This is a patch.
Paul Aurich <paul@darkrain42.org>
parents: 28138
diff changeset
595 * specifically want to check the contact alias only (i.e. not
6b05a0e36ffb Fix setting the alias on a metacontact when it's not expanded. This is a patch.
Paul Aurich <paul@darkrain42.org>
parents: 28138
diff changeset
596 * the priority buddy, which purple_contact_get_alias does).
6b05a0e36ffb Fix setting the alias on a metacontact when it's not expanded. This is a patch.
Paul Aurich <paul@darkrain42.org>
parents: 28138
diff changeset
597 * Adding yet another get_alias is evil, so figure this out
6b05a0e36ffb Fix setting the alias on a metacontact when it's not expanded. This is a patch.
Paul Aurich <paul@darkrain42.org>
parents: 28138
diff changeset
598 * later :-P
6b05a0e36ffb Fix setting the alias on a metacontact when it's not expanded. This is a patch.
Paul Aurich <paul@darkrain42.org>
parents: 28138
diff changeset
599 */
6b05a0e36ffb Fix setting the alias on a metacontact when it's not expanded. This is a patch.
Paul Aurich <paul@darkrain42.org>
parents: 28138
diff changeset
600 if (contact->alias || gtknode->contact_expanded) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
601 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
602 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
603 } else {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
604 PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
605 purple_blist_alias_buddy(buddy, arg2);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
606 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
607 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
608 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
609 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
610 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
611
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
612 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
613 {
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
614 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
615
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
616 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
617 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
618 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
619 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
620 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
621 case PURPLE_BLIST_GROUP_NODE:
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
622 dest = purple_find_group(arg2);
25381
43b721aa4b76 explicit merge of '32d4ce0b6cfc9ccb9a6e7ed661423b9260a0bead'
Richard Laager <rlaager@wiktel.com>
parents: 25362 24830
diff changeset
623 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
624 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
625 } 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
626 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
627 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
628 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
629 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
630 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
631 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
632 default:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
633 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
634 }
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
635 pidgin_blist_refresh(list);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
636 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
637
22760
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
638 static void
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
639 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
640 {
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
641 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
642
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
643 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
644 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
645 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
646 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
647 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
648 char *val;
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
649
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
650 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
651 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
652 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
653 else
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
654 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
655
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
656 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
657 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
658 } 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
659 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
660 }
22760
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
661 }
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 }
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
664
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
665 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
666 {
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
667 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
668 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
669 PurpleRequestField *field;
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
670 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
671 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
672 PurpleConnection *gc;
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
673 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
674
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
675 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
676
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
677 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
678 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
679
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
680 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
681 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
682 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
683 int val;
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
684 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
685 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
686 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
687 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
688 } else {
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
689 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
690 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
691 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
692 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
693 }
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
694
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
695 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
696 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
697
22760
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
698 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
699 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
700 }
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
701
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
702 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
703
22789
b4a0f4b32ba5 Tweak some strings in the Edit Chat dialog.
Will Thompson <will.thompson@collabora.co.uk>
parents: 22770
diff changeset
704 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
705 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
706 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
707 chat);
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
708 }
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
709
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
710 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
711 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
712 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
713 GtkTreePath *path;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
714
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
715 if (!(get_iter_from_node(node, &iter))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
716 /* 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
717 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
718 if (!get_iter_from_node(node, &iter))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
719 /* Now it's definitely a bug */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
720 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
721 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
722
21175
4ce3e1f998f6 Don't allow tooltips to interfere with editing blist entries. Fixes #3830.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 21041
diff changeset
723 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
724
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
725 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
726 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
727 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
728 gtk_widget_grab_focus(gtkblist->treeview);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
729 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
730 gtkblist->text_column, gtkblist->text_rend, TRUE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
731 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
732 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
733
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
734 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
735 {
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
736 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
737 purple_buddy_get_name(b), NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
738 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
739
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
740 static void gtk_blist_menu_showlog_cb(GtkWidget *w, PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
741 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
742 PurpleLogType type;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
743 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
744 char *name = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
745
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
746 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
747
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
748 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
749 PurpleBuddy *b = (PurpleBuddy*) node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
750 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
751 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
752 account = purple_buddy_get_account(b);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
753 } 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
754 PurpleChat *c = PURPLE_CHAT(node);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
755 PurplePluginProtocolInfo *prpl_info = NULL;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
756 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
757 account = purple_chat_get_account(c);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
758 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
759 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
760 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
761 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
762 } 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
763 pidgin_log_show_contact(PURPLE_CONTACT(node));
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
764 pidgin_clear_cursor(gtkblist->window);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
765 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
766 } else {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
767 pidgin_clear_cursor(gtkblist->window);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
768
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
769 /* 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
770 * 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
771 g_return_if_reached();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
772 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
773
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
774 if (name && account) {
21340
6c4de0d24eff Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents: 21227
diff changeset
775 pidgin_log_show(type, name, account);
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
776 pidgin_clear_cursor(gtkblist->window);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
777 }
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
778
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
779 g_free(name);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
780 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
781
20163
1971e13bb5f6 Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents: 20161
diff changeset
782 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
783 {
20164
7d9391b94b1c Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents: 20163
diff changeset
784 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
785 {
7d9391b94b1c Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents: 20163
diff changeset
786 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
787 !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
788 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
789 }
7d9391b94b1c Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents: 20163
diff changeset
790 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
791 {
7d9391b94b1c Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents: 20163
diff changeset
792 PurpleBlistNode *bnode;
7d9391b94b1c Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents: 20163
diff changeset
793 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
794
7d9391b94b1c Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents: 20163
diff changeset
795 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
796 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
797 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
798 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
799 {
20164
7d9391b94b1c Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents: 20163
diff changeset
800 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
801 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
802 }
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
803 } 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
804 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
805 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
806
df336908dd15 Make "Show when offline" work on group nodes too, which sets the flag for
Stu Tomlinson <stu@nosnilmot.com>
parents: 22313
diff changeset
807 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
808 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
809 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
810 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
811 {
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
812 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
813 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
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 {
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
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);
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
819 }
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 }
20164
7d9391b94b1c Fix the whitespace/tab/space junk I just created
Stu Tomlinson <stu@nosnilmot.com>
parents: 20163
diff changeset
821 }
20163
1971e13bb5f6 Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents: 20161
diff changeset
822 }
1971e13bb5f6 Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents: 20161
diff changeset
823
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21960
diff changeset
824 static void gtk_blist_show_systemlog_cb(void)
21340
6c4de0d24eff Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents: 21227
diff changeset
825 {
6c4de0d24eff Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents: 21227
diff changeset
826 pidgin_syslog_show();
6c4de0d24eff Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents: 21227
diff changeset
827 }
6c4de0d24eff Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@wiktel.com>
parents: 21227
diff changeset
828
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21960
diff changeset
829 static void gtk_blist_show_onlinehelp_cb(void)
17432
0bbc08d41234 disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents: 17431
diff changeset
830 {
17880
9e0aec946cd0 use pidgin.im/documentation as the help url (which redirects already)
Stu Tomlinson <stu@nosnilmot.com>
parents: 17879
diff changeset
831 purple_notify_uri(NULL, PURPLE_WEBSITE "documentation");
17432
0bbc08d41234 disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents: 17431
diff changeset
832 }
0bbc08d41234 disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents: 17431
diff changeset
833
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
834 static void
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
835 do_join_chat(PidginChatData *data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
836 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
837 if (data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
838 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
839 GHashTable *components =
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
840 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
841 GList *tmp;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
842 PurpleChat *chat;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
843
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
844 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
845 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
846 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
847 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
848 g_hash_table_replace(components,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
849 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
850 g_strdup_printf("%d",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
851 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
852 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
853 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
854 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
855 g_hash_table_replace(components,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
856 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
857 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
858 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
859 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
860
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
861 chat = purple_chat_new(data->rq_data.account, NULL, components);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
862 gtk_blist_join_chat(chat);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
863 purple_blist_remove_chat(chat);
15374
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 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
866
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
867 static void
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
868 do_joinchat(GtkWidget *dialog, int id, PidginChatData *info)
15374
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 switch(id)
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 case GTK_RESPONSE_OK:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
873 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
874 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
875
ebe79cae6d83 Add 'Room List' buttons to Join Chat and Add Chat dialogs to ease access
Stu Tomlinson <stu@nosnilmot.com>
parents: 21662
diff changeset
876 case 1:
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
877 pidgin_roomlist_dialog_show_with_account(info->rq_data.account);
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
878 return;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
879
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
880 break;
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 gtk_widget_destroy(GTK_WIDGET(dialog));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
884 g_list_free(info->entries);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
885 g_free(info);
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
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 * 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
890 * 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
891 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
892 static void
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
893 set_sensitive_if_input_cb(GtkWidget *entry, gpointer user_data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
894 {
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
895 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
896 PurpleConnection *gc;
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
897 PidginChatData *data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
898 GList *tmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
899 const char *text;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
900 gboolean required;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
901 gboolean sensitive = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
902
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
903 data = user_data;
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 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
906 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
907 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
908 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
909 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
910 text = gtk_entry_get_text(tmp->data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
911 if (required && (*text == '\0'))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
912 sensitive = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
913 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
914 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
915
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
916 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->rq_data.window), GTK_RESPONSE_OK, sensitive);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
917
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
918 gc = purple_account_get_connection(data->rq_data.account);
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
919 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
920 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
921
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
922 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->rq_data.window), 1, sensitive);
15374
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
925 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
926 pidgin_blist_update_privacy_cb(PurpleBuddy *buddy)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
927 {
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
928 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
929 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
930 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
931 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
932 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
933
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
934 static gboolean
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
935 chat_account_filter_func(PurpleAccount *account)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
936 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
937 PurpleConnection *gc = purple_account_get_connection(account);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
938 PurplePluginProtocolInfo *prpl_info = NULL;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
939
30376
39c1720db373 Prevent a null pointer dereference in chat_account_filter_func() if called
Stu Tomlinson <stu@nosnilmot.com>
parents: 30165
diff changeset
940 if (gc == NULL)
39c1720db373 Prevent a null pointer dereference in chat_account_filter_func() if called
Stu Tomlinson <stu@nosnilmot.com>
parents: 30165
diff changeset
941 return FALSE;
39c1720db373 Prevent a null pointer dereference in chat_account_filter_func() if called
Stu Tomlinson <stu@nosnilmot.com>
parents: 30165
diff changeset
942
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
943 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
944
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
945 return (prpl_info->chat_info != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
946 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
947
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
948 gboolean
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
949 pidgin_blist_joinchat_is_showable()
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
950 {
18063
926ccb104da0 disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents: 18058
diff changeset
951 GList *c;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
952 PurpleConnection *gc;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
953
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
954 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
955 gc = c->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
956
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
957 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
958 return 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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
961 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
962 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
963
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
964 static GtkWidget *
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
965 make_blist_request_dialog(PidginBlistRequestData *data, PurpleAccount *account,
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
966 const char *title, const char *window_role, const char *label_text,
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
967 GCallback callback_func, PurpleFilterAccountFunc filter_func,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
968 GCallback response_cb)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
969 {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
970 GtkWidget *label;
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
971 GtkWidget *img;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
972 GtkWidget *hbox;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
973 GtkWidget *vbox;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
974 GtkWindow *blist_window;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
975 PidginBuddyList *gtkblist;
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
976
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
977 data->account = account;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
978
15436
9c0cf4db1f4d Dialog icon changes
Sean Egan <seanegan@gmail.com>
parents: 15435
diff changeset
979 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
980 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
981
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
982 gtkblist = PIDGIN_BLIST(purple_get_blist());
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
983 blist_window = gtkblist ? GTK_WINDOW(gtkblist->window) : NULL;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
984
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
985 data->window = gtk_dialog_new_with_buttons(title,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
986 blist_window, GTK_DIALOG_NO_SEPARATOR,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
987 NULL);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
988
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
989 gtk_window_set_transient_for(GTK_WINDOW(data->window), blist_window);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
990 gtk_dialog_set_default_response(GTK_DIALOG(data->window), GTK_RESPONSE_OK);
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
991 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
992 gtk_window_set_resizable(GTK_WINDOW(data->window), FALSE);
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
993 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BORDER);
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
994 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(data->window)->vbox), PIDGIN_HIG_BOX_SPACE);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
995 gtk_window_set_role(GTK_WINDOW(data->window), window_role);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
996
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
997 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
998 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
999 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
1000 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
1001
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1002 vbox = gtk_vbox_new(FALSE, 5);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1003 gtk_container_add(GTK_CONTAINER(hbox), vbox);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1004
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1005 label = gtk_label_new(label_text);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1006
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1007 gtk_widget_set_size_request(label, 400, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1008 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
1009 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
1010 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
1011
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1012 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
1013
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1014 data->account_menu = pidgin_account_option_menu_new(account, FALSE,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1015 callback_func, filter_func, data);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1016 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("A_ccount"), data->sg, data->account_menu, TRUE, NULL);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1017
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1018 data->vbox = GTK_BOX(gtk_vbox_new(FALSE, 5));
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1019 gtk_container_set_border_width(GTK_CONTAINER(data->vbox), 0);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1020 gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(data->vbox), FALSE, FALSE, 0);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1021
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1022 g_signal_connect(G_OBJECT(data->window), "response", response_cb, data);
15374
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 g_object_unref(data->sg);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1025
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1026 return vbox;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1027 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1028
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1029 static void
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1030 rebuild_chat_entries(PidginChatData *data, const char *default_chat_name)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1031 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1032 PurpleConnection *gc;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1033 GList *list = NULL, *tmp;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1034 GHashTable *defaults = NULL;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1035 struct proto_chat_entry *pce;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1036 gboolean focus = TRUE;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1037
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1038 g_return_if_fail(data->rq_data.account != NULL);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1039
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1040 gc = purple_account_get_connection(data->rq_data.account);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1041
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1042 gtk_container_foreach(GTK_CONTAINER(data->rq_data.vbox), (GtkCallback)gtk_widget_destroy, NULL);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1043
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1044 g_list_free(data->entries);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1045 data->entries = NULL;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1046
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1047 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info != NULL)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1048 list = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info(gc);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1049
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1050 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1051 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, default_chat_name);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1052
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1053 for (tmp = list; tmp; tmp = tmp->next)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1054 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1055 GtkWidget *input;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1056
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1057 pce = tmp->data;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1058
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1059 if (pce->is_int)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1060 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1061 GtkObject *adjust;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1062 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1063 1, 10, 10);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1064 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1065 gtk_widget_set_size_request(input, 50, -1);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1066 pidgin_add_widget_to_vbox(GTK_BOX(data->rq_data.vbox), pce->label, data->rq_data.sg, input, FALSE, NULL);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1067 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1068 else
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1069 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1070 char *value;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1071 input = gtk_entry_new();
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1072 gtk_entry_set_activates_default(GTK_ENTRY(input), TRUE);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1073 value = g_hash_table_lookup(defaults, pce->identifier);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1074 if (value != NULL)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1075 gtk_entry_set_text(GTK_ENTRY(input), value);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1076 if (pce->secret)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1077 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1078 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1079 #if !GTK_CHECK_VERSION(2,16,0)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1080 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*')
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1081 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1082 #endif /* Less than GTK+ 2.16 */
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1083 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1084 pidgin_add_widget_to_vbox(data->rq_data.vbox, pce->label, data->rq_data.sg, input, TRUE, NULL);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1085 g_signal_connect(G_OBJECT(input), "changed",
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1086 G_CALLBACK(set_sensitive_if_input_cb), data);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1087 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1088
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1089 /* Do the following for any type of input widget */
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1090 if (focus)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1091 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1092 gtk_widget_grab_focus(input);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1093 focus = FALSE;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1094 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1095 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1096 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int));
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1097 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required));
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1098 data->entries = g_list_append(data->entries, input);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1099
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1100 g_free(pce);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1101 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1102
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1103 g_list_free(list);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1104 g_hash_table_destroy(defaults);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1105
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1106 /* Set whether the "OK" button should be clickable initially */
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1107 set_sensitive_if_input_cb(NULL, data);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1108
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1109 gtk_widget_show_all(GTK_WIDGET(data->rq_data.vbox));
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1110 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1111
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1112 static void
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1113 chat_select_account_cb(GObject *w, PurpleAccount *account,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1114 PidginChatData *data)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1115 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1116 if (strcmp(purple_account_get_protocol_id(data->rq_data.account),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1117 purple_account_get_protocol_id(account)) == 0)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1118 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1119 data->rq_data.account = account;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1120 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1121 else
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1122 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1123 data->rq_data.account = account;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1124 rebuild_chat_entries(data, data->default_chat_name);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1125 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1126 }
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1127
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1128 void
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1129 pidgin_blist_joinchat_show(void)
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1130 {
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1131 PidginChatData *data = NULL;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1132
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1133 data = g_new0(PidginChatData, 1);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1134
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1135 make_blist_request_dialog((PidginBlistRequestData *)data, NULL,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1136 _("Join a Chat"), "join_chat",
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1137 _("Please enter the appropriate information about the chat "
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1138 "you would like to join.\n"),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1139 G_CALLBACK(chat_select_account_cb),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1140 chat_account_filter_func, (GCallback)do_joinchat);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1141 gtk_dialog_add_buttons(GTK_DIALOG(data->rq_data.window),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1142 _("Room _List"), 1,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1143 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1144 PIDGIN_STOCK_CHAT, GTK_RESPONSE_OK, NULL);
27705
5d75276a575f Make OK default for Add Buddy, Add Chat, and Join Chat.
Paul Aurich <paul@darkrain42.org>
parents: 27664
diff changeset
1145 gtk_dialog_set_default_response(GTK_DIALOG(data->rq_data.window),
5d75276a575f Make OK default for Add Buddy, Add Chat, and Join Chat.
Paul Aurich <paul@darkrain42.org>
parents: 27664
diff changeset
1146 GTK_RESPONSE_OK);
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1147 data->default_chat_name = NULL;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1148 data->rq_data.account = pidgin_account_option_menu_get_selected(data->rq_data.account_menu);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1149
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1150 rebuild_chat_entries(data, NULL);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1151
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
1152 gtk_widget_show_all(data->rq_data.window);
15374
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
17139
17117b8cfbb7 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17046
diff changeset
1155 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
1156 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1157 PurpleBlistNode *node;
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
1158
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
1159 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1160
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1161 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
1162 char *title;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1163
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
1164 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
1165
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1166 gtk_tree_store_set(gtkblist->treemodel, iter,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1167 NAME_COLUMN, title,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1168 -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1169
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1170 g_free(title);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1171
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1172 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
1173 pidgin_blist_tooltip_destroy();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1174 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1175 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1176
17139
17117b8cfbb7 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17046
diff changeset
1177 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
1178 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1179 PurpleBlistNode *node;
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
1180
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
1181 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1182
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1183 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
1184 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
1185 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
1186 PurpleBlistNode *cnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1187
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
1188 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
1189
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1190 gtk_tree_store_set(gtkblist->treemodel, iter,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1191 NAME_COLUMN, title,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1192 -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1193
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1194 g_free(title);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1195
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1196 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
1197
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1198 for(cnode = purple_blist_node_get_first_child(node); cnode; cnode = purple_blist_node_get_sibling_next(cnode)) {
17139
17117b8cfbb7 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17046
diff changeset
1199 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1200 gtknode = purple_blist_node_get_ui_data(cnode);
17139
17117b8cfbb7 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17046
diff changeset
1201 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
1202 continue;
17117b8cfbb7 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17046
diff changeset
1203 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
1204 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
1205 }
17117b8cfbb7 Patch from SuperMMX to correctly update the expand state of contacts
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17046
diff changeset
1206 }
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
1207 pidgin_blist_tooltip_destroy();
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1208 } 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
1209 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
1210 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1211 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1212
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1213 static void gtk_blist_row_activated_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1214 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1215 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1216
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1217 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
1218 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1219
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1220 if(PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1221 PurpleBuddy *buddy;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1222
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1223 if(PURPLE_BLIST_NODE_IS_CONTACT(node))
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1224 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
1225 else
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1226 buddy = (PurpleBuddy*)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1227
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1228 pidgin_dialogs_im_with_user(purple_buddy_get_account(buddy), purple_buddy_get_name(buddy));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1229 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1230 gtk_blist_join_chat((PurpleChat *)node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1231 } 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
1232 /* 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
1233 gtk_tree_view_collapse_row(tv, path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1234 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1235 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
1236 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1237 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1238
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21960
diff changeset
1239 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
1240 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1241 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
1242 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1243 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1244
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1245 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
1246 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1247 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1248 purple_blist_request_add_chat(NULL, purple_buddy_get_group(PURPLE_BUDDY(node)), NULL, NULL);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1249 if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node))
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1250 purple_blist_request_add_chat(NULL, purple_contact_get_group(PURPLE_CONTACT(node)), NULL, NULL);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1251 else if (PURPLE_BLIST_NODE_IS_GROUP(node))
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1252 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
1253 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1254 else {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1255 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
1256 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1257 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1258
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21960
diff changeset
1259 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
1260 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1261 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
1262 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1263 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1264
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1265 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
1266 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1267 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1268 PurpleGroup *group = purple_buddy_get_group(PURPLE_BUDDY(node));
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1269 purple_blist_request_add_buddy(NULL, NULL, purple_group_get_name(group), NULL);
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1270 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node)) {
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1271 PurpleGroup *group = purple_contact_get_group(PURPLE_CONTACT(node));
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1272 purple_blist_request_add_buddy(NULL, NULL, purple_group_get_name(group), NULL);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1273 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1274 purple_blist_request_add_buddy(NULL, NULL, purple_group_get_name(PURPLE_GROUP(node)), NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1275 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1276 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1277 else {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1278 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
1279 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1280 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1281
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1282 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1283 pidgin_blist_remove_cb (GtkWidget *w, PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1284 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1285 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
1286 pidgin_dialogs_remove_buddy((PurpleBuddy*)node);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1287 } 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
1288 pidgin_dialogs_remove_chat((PurpleChat*)node);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1289 } 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
1290 pidgin_dialogs_remove_group((PurpleGroup*)node);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1291 } 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
1292 pidgin_dialogs_remove_contact((PurpleContact*)node);
15374
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 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1295
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1296 struct _expand {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1297 GtkTreeView *treeview;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1298 GtkTreePath *path;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1299 PurpleBlistNode *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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1302 static gboolean
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1303 scroll_to_expanded_cell(gpointer data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1304 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1305 struct _expand *ex = data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1306 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
1307 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
1308
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1309 gtk_tree_path_free(ex->path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1310 g_free(ex);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1311
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1312 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1313 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1314
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1315 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1316 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
1317 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1318 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1319 GtkTreeIter iter, parent;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1320 PurpleBlistNode *bnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1321 GtkTreePath *path;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1322
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1323 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
1324 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1325
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1326 gtknode = purple_blist_node_get_ui_data(node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1327
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1328 gtknode->contact_expanded = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1329
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1330 for(bnode = purple_blist_node_get_first_child(node); bnode; bnode = purple_blist_node_get_sibling_next(bnode)) {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1331 pidgin_blist_update(NULL, bnode);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1332 }
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 /* 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
1335 if (get_iter_from_node(node, &parent)) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1336 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
1337
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1338 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
1339 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
1340 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
1341
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1342 /* 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
1343 ex->treeview = GTK_TREE_VIEW(gtkblist->treeview);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1344 ex->path = path;
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1345 ex->node = purple_blist_node_get_first_child(node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1346 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
1347 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1348 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1349
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1350 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1351 pidgin_blist_collapse_contact_cb(GtkWidget *w, PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1352 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1353 PurpleBlistNode *bnode;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1354 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1355
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1356 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
1357 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1358
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1359 gtknode = purple_blist_node_get_ui_data(node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1360
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1361 gtknode->contact_expanded = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1362
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1363 for(bnode = purple_blist_node_get_first_child(node); bnode; bnode = purple_blist_node_get_sibling_next(bnode)) {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1364 pidgin_blist_update(NULL, bnode);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1365 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1366 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1367
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1368 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1369 toggle_privacy(GtkWidget *widget, PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1370 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1371 PurpleBuddy *buddy;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1372 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1373 gboolean permitted;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1374 const char *name;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1375
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1376 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
1377 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1378
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1379 buddy = (PurpleBuddy *)node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1380 account = purple_buddy_get_account(buddy);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1381 name = purple_buddy_get_name(buddy);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1382
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1383 permitted = purple_privacy_check(account, name);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1384
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1385 /* 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
1386
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1387 if (permitted)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1388 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
1389 else
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1390 purple_privacy_allow(account, name, FALSE, FALSE);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1391
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1392 pidgin_blist_update(purple_get_blist(), node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1393 }
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1394
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1395 void pidgin_append_blist_node_privacy_menu(GtkWidget *menu, PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1396 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1397 PurpleBuddy *buddy = (PurpleBuddy *)node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1398 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1399 gboolean permitted;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1400
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1401 account = purple_buddy_get_account(buddy);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1402 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
1403
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1404 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
1405 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
1406 node, 0 ,0, NULL);
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1409 void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1410 pidgin_append_blist_node_proto_menu(GtkWidget *menu, PurpleConnection *gc,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1411 PurpleBlistNode *node)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1412 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1413 GList *l, *ll;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1414 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
1415
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1416 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
1417 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1418
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1419 for(l = ll = prpl_info->blist_node_menu(node); l; l = l->next) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1420 PurpleMenuAction *act = (PurpleMenuAction *) l->data;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1421 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
1422 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1423 g_list_free(ll);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1424 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1425
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1426 void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1427 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
1428 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1429 GList *l, *ll;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1430
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1431 for(l = ll = purple_blist_node_get_extended_menu(node); l; l = l->next) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1432 PurpleMenuAction *act = (PurpleMenuAction *) l->data;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1433 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
1434 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1435 g_list_free(ll);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1436 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1437
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
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
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 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
1441 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
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 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
1444 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
1445 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
1446
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 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
1448 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
1449 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
1450
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
1451 submenu = gtk_menu_new();
20099
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
1452 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
1453
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1454 for (group = purple_blist_get_root(); group; group = purple_blist_node_get_sibling_next(group)) {
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1455 if (!PURPLE_BLIST_NODE_IS_GROUP(group))
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
1456 continue;
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1457 if (group == purple_blist_node_get_parent(node))
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
1458 continue;
20099
ac6bf49cd5ba Various warning fixes and a small leak fix.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20084
diff changeset
1459 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
1460 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
1461 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
1462 }
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
1463 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
1464 }
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
1465
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1466 void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1467 pidgin_blist_make_buddy_menu(GtkWidget *menu, PurpleBuddy *buddy, gboolean sub) {
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1468 PurpleAccount *account = NULL;
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1469 PurpleConnection *pc = NULL;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1470 PurplePluginProtocolInfo *prpl_info;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1471 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
1472 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1473 gboolean contact_expanded = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1474
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1475 g_return_if_fail(menu);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1476 g_return_if_fail(buddy);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1477
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1478 account = purple_buddy_get_account(buddy);
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1479 pc = purple_account_get_connection(account);
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1480 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(pc));
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1481
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1482 node = PURPLE_BLIST_NODE(buddy);
20163
1971e13bb5f6 Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents: 20161
diff changeset
1483
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1484 contact = purple_buddy_get_contact(buddy);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1485 if (contact) {
29731
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1486 PidginBlistNode *node = purple_blist_node_get_ui_data(PURPLE_BLIST_NODE(contact));
3420370e4dfb a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 29613
diff changeset
1487 contact_expanded = node->contact_expanded;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1488 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1489
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1490 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
1491 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
1492 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
1493 }
15560
442128853bdb toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents: 15559
diff changeset
1494 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
1495 G_CALLBACK(gtk_blist_menu_im_cb), buddy, 0, 0, NULL);
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
1496
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1497 #ifdef USE_VV
26190
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
1498 if (prpl_info && prpl_info->get_media_caps) {
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
1499 PurpleAccount *account = purple_buddy_get_account(buddy);
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1500 const gchar *who = purple_buddy_get_name(buddy);
26190
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
1501 PurpleMediaCaps caps = purple_prpl_get_media_caps(account, who);
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
1502 if (caps & PURPLE_MEDIA_CAPS_AUDIO) {
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1503 pidgin_new_item_from_stock(menu, _("_Audio Call"),
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1504 PIDGIN_STOCK_TOOLBAR_AUDIO_CALL,
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1505 G_CALLBACK(gtk_blist_menu_audio_call_cb), buddy, 0, 0, NULL);
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1506 }
26190
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
1507 if (caps & PURPLE_MEDIA_CAPS_AUDIO_VIDEO) {
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1508 pidgin_new_item_from_stock(menu, _("Audio/_Video Call"),
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1509 PIDGIN_STOCK_TOOLBAR_VIDEO_CALL,
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1510 G_CALLBACK(gtk_blist_menu_video_call_cb), buddy, 0, 0, NULL);
26190
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26150
diff changeset
1511 } else if (caps & PURPLE_MEDIA_CAPS_VIDEO) {
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1512 pidgin_new_item_from_stock(menu, _("_Video Call"),
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1513 PIDGIN_STOCK_TOOLBAR_VIDEO_CALL,
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1514 G_CALLBACK(gtk_blist_menu_video_call_cb), buddy, 0, 0, NULL);
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1515 }
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1516 }
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
1517
26035
e5da7110bec9 Added menu items to buddy list context menu to start voice and video sessions
Marcus Lundblad <ml@update.uu.se>
parents: 24302
diff changeset
1518 #endif
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
1519
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1520 if (prpl_info && prpl_info->send_file) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1521 if (!prpl_info->can_receive_file ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1522 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
1523 {
20546
4195e0a93b1e Ellipsize some menu actions that require further input. Fixes #1770
Sean Egan <seanegan@gmail.com>
parents: 20543
diff changeset
1524 pidgin_new_item_from_stock(menu, _("_Send File..."),
16839
d6ccf170148e New Send File icon
Hylke Bons <hylkebons@gmail.com>
parents: 16837
diff changeset
1525 PIDGIN_STOCK_TOOLBAR_SEND_FILE,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1526 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
1527 buddy, 0, 0, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1528 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1529 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1530
20546
4195e0a93b1e Ellipsize some menu actions that require further input. Fixes #1770
Sean Egan <seanegan@gmail.com>
parents: 20543
diff changeset
1531 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
1532 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
1533
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
1534 if (node->parent && node->parent->child->next &&
18671
30b6f8bc47cf Tooltips in infopanes
Sean Egan <seanegan@gmail.com>
parents: 18658
diff changeset
1535 !sub && !contact_expanded) {
15560
442128853bdb toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents: 15559
diff changeset
1536 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
1537 G_CALLBACK(gtk_blist_menu_showlog_cb),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1538 contact, 0, 0, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1539 } else if (!sub) {
15559
dad51c0e3bc6 context menu cleanup
Sean Egan <seanegan@gmail.com>
parents: 15558
diff changeset
1540 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
1541 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
1542 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1543
27490
71e8748bc408 Close up scope on a variable and use PURPLE_BLIST_NODE_HAS_FLAG.
Etan Reisner <pidgin@unreliablesource.net>
parents: 27429
diff changeset
1544 if (!PURPLE_BLIST_NODE_HAS_FLAG(node, PURPLE_BLIST_NODE_FLAG_NO_SAVE)) {
71e8748bc408 Close up scope on a variable and use PURPLE_BLIST_NODE_HAS_FLAG.
Etan Reisner <pidgin@unreliablesource.net>
parents: 27429
diff changeset
1545 gboolean show_offline = purple_blist_node_get_bool(node, "show_offline");
27415
b0c20567913b Title Case some blist right-click menu items.
Etan Reisner <pidgin@unreliablesource.net>
parents: 27112
diff changeset
1546 pidgin_new_item_from_stock(menu, show_offline ? _("Hide When Offline") : _("Show When Offline"),
20163
1971e13bb5f6 Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents: 20161
diff changeset
1547 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
1548 }
1971e13bb5f6 Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents: 20161
diff changeset
1549
1971e13bb5f6 Merge the plugin pack's showoffline plugin's functionality to pidgin proper
Stu Tomlinson <stu@nosnilmot.com>
parents: 20161
diff changeset
1550 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
1551 pidgin_append_blist_node_extended_menu(menu, node);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1552
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
1553 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
1554 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
1555
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
1556 if (node->parent && node->parent->child->next &&
18671
30b6f8bc47cf Tooltips in infopanes
Sean Egan <seanegan@gmail.com>
parents: 18658
diff changeset
1557 !sub && !contact_expanded) {
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1558 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
1559 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
1560 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
1561 G_CALLBACK(gtk_blist_menu_alias_cb),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1562 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
1563 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
1564 G_CALLBACK(pidgin_blist_remove_cb),
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1565 contact, 0, 0, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1566 } else if (!sub || contact_expanded) {
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1567 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
1568 pidgin_append_blist_node_privacy_menu(menu, node);
15509
23ca11f8a8c4 stock to pidgin
Sean Egan <seanegan@gmail.com>
parents: 15508
diff changeset
1569 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
1570 G_CALLBACK(gtk_blist_menu_alias_cb), buddy, 0, 0, NULL);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1571 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
1572 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
1573 0, 0, NULL);
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 }
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 static gboolean
17275
319bcb73eb4e Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17139
diff changeset
1578 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
1579 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1580 PurpleBlistNode *node;
27111
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1581 GtkTreeIter iter, parent;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1582 GtkTreeSelection *sel;
27111
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1583 GtkTreePath *path;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1584
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1585 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
1586 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
1587 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1588
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
1589 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1590
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1591 if(event->state & GDK_CONTROL_MASK &&
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1592 (event->keyval == 'o' || event->keyval == 'O')) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1593 PurpleBuddy *buddy;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1594
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1595 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1596 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1597 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1598 buddy = (PurpleBuddy*)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1599 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1600 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1601 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1602 if(buddy)
17275
319bcb73eb4e Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17139
diff changeset
1603 pidgin_retrieve_user_info(buddy->account->gc, buddy->name);
27111
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1604 } else {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1605 switch (event->keyval) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1606 case GDK_F2:
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1607 gtk_blist_menu_alias_cb(tv, node);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1608 break;
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1609
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1610 case GDK_Left:
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1611 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1612 if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(tv), path)) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1613 /* Collapse the Group */
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1614 gtk_tree_view_collapse_row(GTK_TREE_VIEW(tv), path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1615 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1616 return TRUE;
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1617 } else {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1618 /* Select the Parent */
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1619 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path)) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1620 if (gtk_tree_model_iter_parent(GTK_TREE_MODEL(gtkblist->treemodel), &parent, &iter)) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1621 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1622 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1623 gtk_tree_view_set_cursor(GTK_TREE_VIEW(tv), path, NULL, FALSE);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1624 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1625 return TRUE;
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1626 }
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1627 }
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1628 }
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1629 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1630 break;
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1631
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1632 case GDK_Right:
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1633 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1634 if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(tv), path)) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1635 /* Expand the Group */
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1636 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1637 pidgin_blist_expand_contact_cb(NULL, node);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1638 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1639 return TRUE;
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1640 } else if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1641 gtk_tree_view_expand_row(GTK_TREE_VIEW(tv), path, FALSE);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1642 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1643 return TRUE;
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1644 }
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1645 } else {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1646 /* Select the First Child */
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1647 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &parent, path)) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1648 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(gtkblist->treemodel), &iter, &parent, 0)) {
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1649 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1650 path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1651 gtk_tree_view_set_cursor(GTK_TREE_VIEW(tv), path, NULL, FALSE);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1652 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1653 return TRUE;
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1654 }
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1655 }
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1656 }
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1657 gtk_tree_path_free(path);
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1658 break;
e6031586fd1b Apply patch from Peter to handle the left and right arrow keys in the buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27073
diff changeset
1659 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1660 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1661
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1662 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1663 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1664
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1665 static void
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1666 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
1667 {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1668 if (filename) {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1669 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
1670
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1671 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
1672 filename);
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1673 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1674 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1675
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1676 static void
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1677 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
1678 {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1679 /* 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
1680 * 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
1681 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
1682 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
1683 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1684
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1685 static void
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1686 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
1687 {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1688 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
1689 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1690
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1691 static void
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1692 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
1693 {
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
1694 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
1695
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1696 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
1697 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
1698 0, NULL);
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1699
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
1700 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
1701 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
1702 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
1703 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
1704 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
1705 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1706
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1707 static GtkWidget *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1708 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
1709 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1710 GtkWidget *menu;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1711 GtkWidget *item;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1712
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1713 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
1714 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
1715 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
1716 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
1717 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
1718 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
1719 gtk_widget_set_sensitive(item, pidgin_blist_joinchat_is_showable());
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1720 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
1721 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1722 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
1723 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
1724 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
1725 gboolean show_offline = purple_blist_node_get_bool(node, "show_offline");
27415
b0c20567913b Title Case some blist right-click menu items.
Etan Reisner <pidgin@unreliablesource.net>
parents: 27112
diff changeset
1726 pidgin_new_item_from_stock(menu, show_offline ? _("Hide When Offline") : _("Show When Offline"),
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
1727 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
1728 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1729
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1730 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
1731
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1732 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
1733
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1734 return menu;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1735 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1736
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1737 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
1738 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
1739 {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1740 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
1741 gboolean autojoin, persistent;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1742
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1743 menu = gtk_menu_new();
31705
43f75716a233 Stop trying to get "gtk-autojoin" as a string from chat rooms in the buddy
Mark Doliner <mark@kingant.net>
parents: 31544
diff changeset
1744 autojoin = purple_blist_node_get_bool(node, "gtk-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
1745 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
1746
15509
23ca11f8a8c4 stock to pidgin
Sean Egan <seanegan@gmail.com>
parents: 15508
diff changeset
1747 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
1748 G_CALLBACK(gtk_blist_menu_join_cb), node, 0, 0, NULL);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1749 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
1750 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
1751 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
1752 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
1753 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
1754 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
1755
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1756 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
1757 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
1758
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1759 pidgin_separator(menu);
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1760
22760
cf88a302fa88 'Edit Settings' in the context menu for chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22695
diff changeset
1761 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
1762 G_CALLBACK(chat_components_edit), node, 0, 0, NULL);
15509
23ca11f8a8c4 stock to pidgin
Sean Egan <seanegan@gmail.com>
parents: 15508
diff changeset
1763 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
1764 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1765 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
1766 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
1767
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1768 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
1769
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1770 return menu;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1771 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1772
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1773 static GtkWidget *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1774 create_contact_menu (PurpleBlistNode *node)
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 GtkWidget *menu;
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 menu = gtk_menu_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1779
15560
442128853bdb toolbar/menu icons. reduce the imhtmltoolbar spacing. more gaimstock pruning
Sean Egan <seanegan@gmail.com>
parents: 15559
diff changeset
1780 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
1781 G_CALLBACK(gtk_blist_menu_showlog_cb),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1782 node, 0, 0, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1783
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1784 pidgin_separator(menu);
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1785
15509
23ca11f8a8c4 stock to pidgin
Sean Egan <seanegan@gmail.com>
parents: 15508
diff changeset
1786 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
1787 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1788 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
1789 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
1790
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
1791 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
1792
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1793 pidgin_separator(menu);
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1794
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1795 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
1796 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
1797 node, 0, 0, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1798
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1799 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
1800 return menu;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1803 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
1804 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
1805 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1806 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
1807 GtkWidget *menu;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1808 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
1809 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
1810
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1811 menu = gtk_menu_new();
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1812 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
1813
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1814 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1815 pidgin_separator(menu);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1816
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
1817 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
1818
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1819 if(gtknode->contact_expanded) {
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1820 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
1821 GTK_STOCK_ZOOM_OUT,
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1822 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
1823 node, 0, 0, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1824 } else {
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
1825 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
1826 GTK_STOCK_ZOOM_IN,
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1827 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
1828 0, 0, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1829 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1830 if(node->child->next) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1831 PurpleBlistNode *bnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1832
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1833 for(bnode = node->child; bnode; bnode = bnode->next) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1834 PurpleBuddy *buddy = (PurpleBuddy*)bnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1835 GdkPixbuf *buf;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1836 GtkWidget *submenu;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1837 GtkWidget *image;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1838
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1839 if(buddy == b)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1840 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1841 if(!buddy->account->gc)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1842 continue;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1843 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
1844 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1845
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1846 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
1847 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
1848 image = gtk_image_new_from_pixbuf(buf);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1849 g_object_unref(G_OBJECT(buf));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1850 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
1851 image);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1852 gtk_widget_show(image);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1853 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
1854 gtk_widget_show(menuitem);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1855
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1856 submenu = gtk_menu_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1857 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
1858 gtk_widget_show(submenu);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1859
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1860 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
1861 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1862 }
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 return menu;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1865 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1866
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1867 static gboolean
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1868 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
1869 GtkMenuPositionFunc func,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1870 GtkWidget *tv,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1871 guint button,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1872 guint32 time)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1873 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1874 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1875 GtkWidget *menu = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1876 gboolean handled = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1877
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1878 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
1879
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1880 /* Create a menu based on the thing we right-clicked on */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1881 if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1882 PurpleGroup *g = (PurpleGroup *)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1883
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1884 menu = create_group_menu(node, g);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1885 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1886 PurpleChat *c = (PurpleChat *)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1887
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1888 menu = create_chat_menu(node, c);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1889 } 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
1890 menu = create_contact_menu(node);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1891 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1892 PurpleBuddy *b;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1893
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1894 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1895 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
1896 else
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1897 b = (PurpleBuddy *)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1898
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1899 menu = create_buddy_menu(node, b);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1900 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1901
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1902 #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
1903 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
1904
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1905 /* 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
1906 * 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
1907 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
1908 if (gtkblist->timeout) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1909 g_source_remove(gtkblist->timeout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1910 gtkblist->timeout = 0;
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 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1913
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1914 /* Now display the menu */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1915 if (menu != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1916 gtk_widget_show_all(menu);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1917 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
1918 handled = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1919 }
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 return handled;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1922 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1923
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
1924 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
1925 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
1926 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1927 GtkTreePath *path;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1928 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1929 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1930 GtkTreeSelection *sel;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1931 PurplePlugin *prpl = NULL;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1932 PurplePluginProtocolInfo *prpl_info = NULL;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1933 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1934 gboolean handled = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1935
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1936 /* 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
1937 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
1938 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1939 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
1940 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1941 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
1942
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1943 /* Right click draws a context menu */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1944 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
1945 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
1946
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1947 /* 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
1948 } else if ((event->button == 2) && (event->type == GDK_BUTTON_PRESS) &&
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1949 (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
1950 if (gtknode->contact_expanded)
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1951 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
1952 else
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1953 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
1954 handled = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1955
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1956 /* Double middle click gets info */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1957 } else if ((event->button == 2) && (event->type == GDK_2BUTTON_PRESS) &&
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1958 ((PURPLE_BLIST_NODE_IS_CONTACT(node)) || (PURPLE_BLIST_NODE_IS_BUDDY(node)))) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1959 PurpleBuddy *b;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1960 if(PURPLE_BLIST_NODE_IS_CONTACT(node))
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1961 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
1962 else
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1963 b = (PurpleBuddy *)node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1964
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1965 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
1966 if (prpl != NULL)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1967 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
1968
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1969 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
1970 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
1971 handled = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1972 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1973
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1974 #if (1)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1975 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1976 * 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
1977 * 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
1978 * 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
1979 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1980 * 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
1981 * was handled? --Mark
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1982 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1983 if(handled) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1984 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
1985 gtk_tree_selection_select_path(sel, path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1986 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1987 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1988 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1989 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1990 gtk_tree_path_free(path);
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 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1993 }
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 static gboolean
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
1996 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
1997 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1998 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1999 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2000 GtkTreeSelection *sel;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2001 gboolean handled = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2002
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2003 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
2004 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
2005 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2006
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2007 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2008
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2009 /* Shift+F10 draws a context menu */
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2010 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
2011
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2012 return handled;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2013 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2014
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2015 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
2016 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2017 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
2018
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
2019 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
2020 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
2021
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2022 pidgin_clear_cursor(gtkblist->window);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2023 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2024
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2025 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
2026 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2027 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
2028
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
2029 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
2030 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
2031
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2032 pidgin_clear_cursor(gtkblist->window);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2033 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2034
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
2035 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
2036 {
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
2037 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
2038 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
2039 }
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
2040
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2041 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
2042 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2043 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
2044
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
2045 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
2046 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
2047
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2048 pidgin_clear_cursor(gtkblist->window);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2049 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2050
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2051 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
2052 GtkWidget *checkitem)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2053 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2054 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
2055
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
2056 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
2057 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
2058
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2059 pidgin_clear_cursor(gtkblist->window);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2060 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2061
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2062 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
2063 {
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
2064 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
2065 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2066
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2067 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2068 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
2069 gconstpointer value, gpointer data)
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 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
2072 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
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 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2076 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
2077 gconstpointer value, gpointer data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2078 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2079 gboolean sensitive = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2080
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2081 if(!strcmp(value, "none"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2082 sensitive = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2083
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2084 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
2085 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2086
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2087 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2088 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
2089 const char *alias)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2090 {
18063
926ccb104da0 disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents: 18058
diff changeset
2091 GList *l;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2092 PurpleAccount *account = NULL;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2093 PurpleConnection *gc;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2094
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2095 if (list == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2096 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2097
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2098 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
2099 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2100 gc = (PurpleConnection *)l->data;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2101 account = purple_connection_get_account(gc);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2102
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2103 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
2104 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2105
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2106 account = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2107 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2108
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2109 if (account != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2110 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2111 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
2112 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2113 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
2114 (group ? group->name : NULL),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2115 alias);
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 }
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 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
2120 g_list_free(list);
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2123 static gboolean
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2124 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
2125 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2126 char *temp_vcard;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2127 char *s, *c;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2128 char *alias = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2129 GList *aims = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2130 GList *icqs = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2131 GList *yahoos = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2132 GList *msns = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2133 GList *jabbers = NULL;
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 s = temp_vcard = g_strdup(vcard);
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 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
2138 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2139 char *field, *value;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2140
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2141 field = s;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2142
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2143 /* Grab the field */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2144 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
2145 s++;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2146
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2147 if (*s == '\r') s++;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2148 if (*s == '\n')
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2149 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2150 s++;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2151 continue;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2154 if (*s != '\0') *s++ = '\0';
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2155
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2156 if ((c = strchr(field, ';')) != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2157 *c = '\0';
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2158
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2159 /* Proceed to the end of the line */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2160 value = s;
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 while (*s != '\r' && *s != '\n' && *s != '\0')
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2163 s++;
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 if (*s == '\r') *s++ = '\0';
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2166 if (*s == '\n') *s++ = '\0';
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2167
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2168 /* 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
2169 if (!strcmp(field, "FN"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2170 alias = g_strdup(value);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2171 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
2172 !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
2173 !strcmp(field, "X-JABBER"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2174 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2175 char **values = g_strsplit(value, ":", 0);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2176 char **im;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2177
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2178 for (im = values; *im != NULL; im++)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2179 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2180 if (!strcmp(field, "X-AIM"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2181 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
2182 else if (!strcmp(field, "X-ICQ"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2183 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
2184 else if (!strcmp(field, "X-YAHOO"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2185 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
2186 else if (!strcmp(field, "X-MSN"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2187 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
2188 else if (!strcmp(field, "X-JABBER"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2189 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
2190 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2191
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2192 g_strfreev(values);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2193 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2194 }
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 g_free(temp_vcard);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2197
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2198 if (aims == NULL && icqs == NULL && yahoos == NULL &&
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2199 msns == NULL && jabbers == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2200 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2201 g_free(alias);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2202
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2203 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2204 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2205
30053
0646207f360f Remove a bunch of old references to prpl-oscar
Mark Doliner <mark@kingant.net>
parents: 30043
diff changeset
2206 add_buddies_from_vcard("prpl-aim", group, aims, alias);
0646207f360f Remove a bunch of old references to prpl-oscar
Mark Doliner <mark@kingant.net>
parents: 30043
diff changeset
2207 add_buddies_from_vcard("prpl-icq", group, icqs, alias);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2208 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
2209 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
2210 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
2211
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2212 g_free(alias);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2213
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2214 return TRUE;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2217 #ifdef _WIN32
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2218 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
2219 GdkDragContext *drag_context, gpointer user_data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2220 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2221 pidgin_blist_tooltip_destroy();
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2224 /* 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
2225 * to appear and obscure the dragging operation.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2226 * 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
2227 if (gtkblist->timeout) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2228 g_source_remove(gtkblist->timeout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2229 gtkblist->timeout = 0;
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 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2233
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2234 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
2235 GdkDragContext *dc,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2236 GtkSelectionData *data,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2237 guint info,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2238 guint time,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2239 gpointer null)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2240 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2241
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2242 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
2243 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2244 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
2245 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
2246 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2247 PurpleBlistNode *node = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2248 if(!sourcerow)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2249 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2250 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, sourcerow);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2251 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2252 gtk_selection_data_set (data,
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2253 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
2254 8, /* bits */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2255 (void*)&node,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2256 sizeof (node));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2257
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2258 gtk_tree_path_free(sourcerow);
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 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
2261 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2262 GtkTreeRowReference *ref;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2263 GtkTreePath *sourcerow;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2264 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2265 PurpleBlistNode *node = NULL;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2266 PurpleBuddy *buddy;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2267 PurpleConnection *gc;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2268 GString *str;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2269 const char *protocol;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2270
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2271 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
2272 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
2273
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2274 if (!sourcerow)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2275 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2276
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2277 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
2278 sourcerow);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2279 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2280
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2281 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
2282 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2283 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
2284 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2285 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
2286 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2287 gtk_tree_path_free(sourcerow);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2288 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2289 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2290 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2291 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2292 buddy = (PurpleBuddy *)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2293 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2294
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2295 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
2296
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2297 if (gc == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2298 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2299 gtk_tree_path_free(sourcerow);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2300 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2301 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2302
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2303 protocol =
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2304 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
2305 buddy);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2306
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2307 str = g_string_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2308 g_string_printf(str,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2309 "MIME-Version: 1.0\r\n"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2310 "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
2311 "X-IM-Protocol: %s\r\n"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2312 "X-IM-Username: %s\r\n",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2313 protocol,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2314 buddy->name);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2315
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2316 if (buddy->alias != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2317 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2318 g_string_append_printf(str,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2319 "X-IM-Alias: %s\r\n",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2320 buddy->alias);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2321 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2322
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2323 g_string_append(str, "\r\n");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2324
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2325 gtk_selection_data_set(data,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2326 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
2327 8, /* bits */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2328 (const guchar *)str->str,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2329 strlen(str->str) + 1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2330
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2331 g_string_free(str, TRUE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2332 gtk_tree_path_free(sourcerow);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2333 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2334 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2335
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2336 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
2337 GtkSelectionData *sd, guint info, guint t)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2338 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2339 if (gtkblist->drag_timeout) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2340 g_source_remove(gtkblist->drag_timeout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2341 gtkblist->drag_timeout = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2342 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2343
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2344 if (sd->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE) && sd->data) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2345 PurpleBlistNode *n = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2346 GtkTreePath *path = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2347 GtkTreeViewDropPosition position;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2348 memcpy(&n, sd->data, sizeof(n));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2349 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
2350 /* 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
2351 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2352 PurpleBlistNode *node;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2353 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2354
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2355 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
2356 &iter, path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2357 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel),
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2358 &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2359 gtknode = node->ui_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2360
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2361 if (PURPLE_BLIST_NODE_IS_CONTACT(n)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2362 PurpleContact *c = (PurpleContact*)n;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2363 if (PURPLE_BLIST_NODE_IS_CONTACT(node) && gtknode->contact_expanded) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2364 purple_blist_merge_contact(c, node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2365 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2366 PURPLE_BLIST_NODE_IS_CHAT(node)) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2367 switch(position) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2368 case GTK_TREE_VIEW_DROP_AFTER:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2369 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2370 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
2371 node);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2372 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2373 case GTK_TREE_VIEW_DROP_BEFORE:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2374 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2375 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
2376 node->prev);
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2379 } else if(PURPLE_BLIST_NODE_IS_GROUP(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2380 purple_blist_add_contact(c, (PurpleGroup*)node, NULL);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2381 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2382 purple_blist_merge_contact(c, node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2383 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2384 } else if (PURPLE_BLIST_NODE_IS_BUDDY(n)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2385 PurpleBuddy *b = (PurpleBuddy*)n;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2386 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
2387 switch(position) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2388 case GTK_TREE_VIEW_DROP_AFTER:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2389 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2390 purple_blist_add_buddy(b, (PurpleContact*)node->parent,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2391 (PurpleGroup*)node->parent->parent, node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2392 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2393 case GTK_TREE_VIEW_DROP_BEFORE:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2394 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2395 purple_blist_add_buddy(b, (PurpleContact*)node->parent,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2396 (PurpleGroup*)node->parent->parent,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2397 node->prev);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2398 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2399 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2400 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2401 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
2402 NULL);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2403 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2404 purple_blist_add_buddy(b, NULL, (PurpleGroup*)node, NULL);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2405 } 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
2406 if(gtknode->contact_expanded) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2407 switch(position) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2408 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
2409 case GTK_TREE_VIEW_DROP_AFTER:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2410 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2411 purple_blist_add_buddy(b, (PurpleContact*)node,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2412 (PurpleGroup*)node->parent, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2413 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2414 case GTK_TREE_VIEW_DROP_BEFORE:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2415 purple_blist_add_buddy(b, NULL,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2416 (PurpleGroup*)node->parent, node->prev);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2417 break;
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 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2420 switch(position) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2421 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
2422 case GTK_TREE_VIEW_DROP_AFTER:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2423 purple_blist_add_buddy(b, NULL,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2424 (PurpleGroup*)node->parent, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2425 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2426 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
2427 case GTK_TREE_VIEW_DROP_BEFORE:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2428 purple_blist_add_buddy(b, NULL,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2429 (PurpleGroup*)node->parent, node->prev);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2430 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2431 }
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 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2434 } else if (PURPLE_BLIST_NODE_IS_CHAT(n)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2435 PurpleChat *chat = (PurpleChat *)n;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2436 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
2437 switch(position) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2438 case GTK_TREE_VIEW_DROP_AFTER:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2439 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
2440 case GTK_TREE_VIEW_DROP_BEFORE:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2441 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2442 purple_blist_add_chat(chat,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2443 (PurpleGroup*)node->parent->parent,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2444 node->parent);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2445 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2446 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2447 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node) ||
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2448 PURPLE_BLIST_NODE_IS_CHAT(node)) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2449 switch(position) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2450 case GTK_TREE_VIEW_DROP_AFTER:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2451 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2452 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
2453 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2454 case GTK_TREE_VIEW_DROP_BEFORE:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2455 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2456 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
2457 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2458 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2459 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2460 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
2461 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2462 } else if (PURPLE_BLIST_NODE_IS_GROUP(n)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2463 PurpleGroup *g = (PurpleGroup*)n;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2464 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
2465 switch (position) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2466 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
2467 case GTK_TREE_VIEW_DROP_AFTER:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2468 purple_blist_add_group(g, node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2469 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2470 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
2471 case GTK_TREE_VIEW_DROP_BEFORE:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2472 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
2473 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2474 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2475 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2476 purple_blist_add_group(g, node->parent->parent);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2477 } else if(PURPLE_BLIST_NODE_IS_CONTACT(node) ||
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2478 PURPLE_BLIST_NODE_IS_CHAT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2479 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
2480 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2481 }
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_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2484 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
2485 }
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 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
2488 FALSE) && sd->data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2489 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2490 PurpleGroup *group = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2491 GtkTreePath *path = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2492 GtkTreeViewDropPosition position;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2493 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2494 char *protocol = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2495 char *username = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2496 char *alias = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2497
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2498 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
2499 x, y, &path, &position))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2500 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2501 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2502 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2503
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2504 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
2505 &iter, path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2506 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel),
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2507 &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2508
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2509 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
2510 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2511 group = (PurpleGroup *)node->parent->parent;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2512 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2513 else if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2514 PURPLE_BLIST_NODE_IS_CONTACT(node))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2515 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2516 group = (PurpleGroup *)node->parent;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2517 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2518 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
2519 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2520 group = (PurpleGroup *)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2521 }
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
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2524 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
2525 &protocol, &username, &alias))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2526 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2527 if (account == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2528 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2529 purple_notify_error(NULL, NULL,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2530 _("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
2531 "can add that buddy."), NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2532 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2533 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2534 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2535 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
2536 (group ? group->name : NULL),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2537 alias);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2538 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2539 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2540
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2541 g_free(username);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2542 g_free(protocol);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2543 g_free(alias);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2544
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2545 if (path != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2546 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2547
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2548 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
2549 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2550 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
2551 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2552 gboolean result;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2553 PurpleGroup *group = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2554 GtkTreePath *path = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2555 GtkTreeViewDropPosition position;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2556
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2557 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
2558 x, y, &path, &position))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2559 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2560 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2561 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2562
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2563 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
2564 &iter, path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2565 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel),
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2566 &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2567
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2568 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
2569 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2570 group = (PurpleGroup *)node->parent->parent;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2571 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2572 else if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2573 PURPLE_BLIST_NODE_IS_CONTACT(node))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2574 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2575 group = (PurpleGroup *)node->parent;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2576 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2577 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
2578 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2579 group = (PurpleGroup *)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2580 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2581 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2582
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2583 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
2584
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2585 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
2586 } 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
2587 GtkTreePath *path = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2588 GtkTreeViewDropPosition position;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2589
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2590 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
2591 x, y, &path, &position))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2592 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2593 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2594 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2595
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2596 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
2597 &iter, path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2598 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel),
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
2599 &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2600
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2601 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
2602 PurpleBuddy *b = PURPLE_BLIST_NODE_IS_BUDDY(node) ? PURPLE_BUDDY(node) : purple_contact_get_priority_buddy(PURPLE_CONTACT(node));
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
2603 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
2604 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
2605 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2606 gtk_drag_finish(dc, FALSE, FALSE, t);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2607 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2608 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2609 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2610 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2611
15491
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2612 /* 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
2613 static void
29878
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2614 do_alphashift(GdkPixbuf *pixbuf, int shift)
15491
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2615 {
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2616 gint i, j;
29878
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2617 gint width, height, padding;
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2618 guchar *pixels;
15491
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2619 int val;
29878
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2620
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2621 if (!gdk_pixbuf_get_has_alpha(pixbuf))
15491
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2622 return;
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2623
29878
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2624 width = gdk_pixbuf_get_width(pixbuf);
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2625 height = gdk_pixbuf_get_height(pixbuf);
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2626 padding = gdk_pixbuf_get_rowstride(pixbuf) - width * 4;
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2627 pixels = gdk_pixbuf_get_pixels(pixbuf);
15491
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2628
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2629 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
2630 for (j = 0; j < width; j++) {
29878
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2631 pixels++;
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2632 pixels++;
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2633 pixels++;
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2634 val = *pixels - shift;
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2635 *(pixels++) = CLAMP(val, 0, 255);
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2636 }
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
2637 pixels += padding;
15491
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2638 }
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2639 }
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2640
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
2641
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2642 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
2643 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
2644 {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2645 gsize len;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2646 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
2647 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
2648 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
2649 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
2650 PurpleBuddyIcon *icon = NULL;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2651 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
2652 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
2653 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
2654 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
2655 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
2656
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2657 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2658 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
2659 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
2660 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2661 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
2662 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
2663 } 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
2664 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
2665 } 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
2666 /* 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
2667 * into the else block and return. */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2668 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2669 return NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2670 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2671
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2672 if (buddy) {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2673 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
2674 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2675
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2676 if(account && account->gc) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2677 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
2678 }
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
2679
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2680 #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
2681 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
2682 return NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2683 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2684
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2685 /* 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
2686 * 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
2687 * 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
2688 * 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
2689 if (contact) {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2690 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
2691 } else {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2692 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
2693 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2694
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2695 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
2696 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
2697 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
2698 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2699
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2700 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
2701 if (buddy) {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2702 /* 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
2703 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
2704 return NULL;
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2705 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
2706 }
16564
26fb9b308cc1 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@wiktel.com>
parents: 16483
diff changeset
2707
26fb9b308cc1 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@wiktel.com>
parents: 16483
diff changeset
2708 if(data == NULL)
26fb9b308cc1 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@wiktel.com>
parents: 16483
diff changeset
2709 return NULL;
26fb9b308cc1 This is Sadrul's icon-migrate.patch from ticket #314.
Richard Laager <rlaager@wiktel.com>
parents: 16483
diff changeset
2710 }
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
2711
32138
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2712 buf = pidgin_pixbuf_from_data(data, len);
16828
56823a55581a Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@wiktel.com>
parents: 16777
diff changeset
2713 purple_buddy_icon_unref(icon);
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2714 if (!buf) {
32138
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2715 purple_debug_warning("gtkblist", "Couldn't load buddy icon "
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2716 "on account %s (%s) buddyname=%s "
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2717 "custom_img_data=%p\n",
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2718 account ? purple_account_get_username(account) : "(no account)",
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2719 account ? purple_account_get_protocol_id(account) : "(no account)",
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2720 buddy ? purple_buddy_get_name(buddy) : "(no buddy)",
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2721 custom_img ? purple_imgstore_get_data(custom_img) : NULL);
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2722 purple_imgstore_unref(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
2723 return NULL;
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2724 }
32138
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
2725 purple_imgstore_unref(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
2726
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2727 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
2728 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
2729
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2730 if (buddy) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2731 PurplePresence *presence = purple_buddy_get_presence(buddy);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2732 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
2733 offline = TRUE;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2734 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
2735 idle = TRUE;
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2736 } 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
2737 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
2738 offline = TRUE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2739 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2740
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2741 if (offline)
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2742 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
2743
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2744 if (idle)
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2745 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
2746 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2747
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2748 /* 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
2749 * 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
2750 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
2751 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
2752
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2753 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
2754 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
2755
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2756 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
2757 GdkPixbuf *tmpbuf;
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2758 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
2759 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
2760 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
2761 scale_height = scale_size;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2762 } else {
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2763 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
2764 scale_width = scale_size;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2765 }
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2766 /* 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
2767 * 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
2768 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
2769 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
2770 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
2771 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
2772 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
2773 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
2774 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
2775 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
2776 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
2777 } else {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2778 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
2779 }
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2780 g_object_unref(G_OBJECT(buf));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2781
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2782 return ret;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2783 }
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
2784
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2785 /* # - Status Icon
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2786 * P - Protocol Icon
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2787 * A - Buddy Icon
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2788 * [ - SMALL_SPACE
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2789 * = - LARGE_SPACE
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2790 * +--- STATUS_SIZE +--- td->avatar_width
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2791 * | +-- td->name_width |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2792 * +----+ +-------+ +---------+
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2793 * | | | | | |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2794 * +-------------------------------------------+
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2795 * | [ = [ |--- TOOLTIP_BORDER
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2796 *name_height --+-| ######[BuddyName = PP [ AAAAAAAAAAA |--+
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2797 * | | ######[ = PP [ AAAAAAAAAAA | |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2798 * STATUS SIZE -| | ######[[[[[[[[[[[[[[[[[[[[[ AAAAAAAAAAA | |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2799 * +--+-| ######[Account: So-and-so [ AAAAAAAAAAA | |-- td->avatar_height
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2800 * | | [Idle: 4h 15m [ AAAAAAAAAAA | |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2801 * height --+ | [Foo: Bar, Baz [ AAAAAAAAAAA | |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2802 * | | [Status: Awesome [ AAAAAAAAAAA |--+
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2803 * +----| [Stop: Hammer Time [ |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2804 * | [ [ |--- TOOLTIP_BORDER
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2805 * +-------------------------------------------+
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2806 * | | | |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2807 * | +----------------+ |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2808 * | | |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2809 * | +-- td->width |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2810 * | |
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2811 * +---- TOOLTIP_BORDER +---- TOOLTIP_BORDER
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2812 *
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
2813 *
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2814 */
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
2815 #define STATUS_SIZE 16
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2816 #define TOOLTIP_BORDER 12
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2817 #define SMALL_SPACE 6
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2818 #define LARGE_SPACE 12
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
2819 #define PRPL_SIZE 16
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2820 struct tooltip_data {
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2821 PangoLayout *layout;
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2822 PangoLayout *name_layout;
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2823 GdkPixbuf *prpl_icon;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2824 GdkPixbuf *status_icon;
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2825 GdkPixbuf *avatar;
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2826 gboolean avatar_is_prpl_icon;
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2827 int avatar_width;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2828 int avatar_height;
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2829 int name_height;
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2830 int name_width;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2831 int width;
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2832 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
2833 int padding;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2834 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2835
21986
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2836 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
2837 {
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2838 PangoLayout *layout;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2839 int w, h;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2840
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2841 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
2842 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
2843 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
2844 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
2845
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2846 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
2847 if (width)
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2848 *width = PANGO_PIXELS(w);
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2849 if (height)
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2850 *height = PANGO_PIXELS(h);
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2851 return layout;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2852 }
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2853
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2854 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
2855 {
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2856 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
2857 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
2858 /* 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
2859 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
2860 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
2861 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
2862 td->padding = SMALL_SPACE;
21986
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2863 return td;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2864 }
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2865
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2866 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
2867 {
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2868 struct tooltip_data *td = g_new0(struct tooltip_data, 1);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2869 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
2870 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
2871
2b6e6dd24a37 Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents: 21912
diff changeset
2872 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2873 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
2874 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2875 account = ((PurpleChat*)(node))->account;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2876 }
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2877
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
2878 td->padding = TOOLTIP_BORDER;
15508
94031a2b0aaa gtkblist changes to pidgin
Sean Egan <seanegan@gmail.com>
parents: 15507
diff changeset
2879 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
2880 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
2881 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
2882 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
2883 }
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
2884 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
2885 if (tooltip_text && *tooltip_text) {
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2886 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
2887 }
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2888
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
2889 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2890 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
2891 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
2892 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
2893 } 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
2894 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
2895 } 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
2896 /* 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
2897 * 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
2898 * 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
2899 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
2900 }
22936
5a359f6666c2 Fix a NULL printf. Fixes #5387.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22789
diff changeset
2901 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
2902 tmp ? tmp : "");
15921
6a5089fafd19 Fix a small tooltip-related memleak
Mark Doliner <mark@kingant.net>
parents: 15871
diff changeset
2903 g_free(tmp);
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2904
21986
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
2905 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
2906 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
2907 td->name_height = MAX(td->name_height, PRPL_SIZE + SMALL_SPACE);
15475
20cd2ea47648 tooltip tweaks
Sean Egan <seanegan@gmail.com>
parents: 15474
diff changeset
2908 #if 0 /* PRPL Icon as avatar */
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2909 if(!td->avatar && full) {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
2910 td->avatar = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_LARGE);
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2911 td->avatar_is_prpl_icon = TRUE;
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
2912 }
15475
20cd2ea47648 tooltip tweaks
Sean Egan <seanegan@gmail.com>
parents: 15474
diff changeset
2913 #endif
15708
c50358666110 Fix asserts when there is no buddy icon
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15632
diff changeset
2914
c50358666110 Fix asserts when there is no buddy icon
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15632
diff changeset
2915 if (td->avatar) {
c50358666110 Fix asserts when there is no buddy icon
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15632
diff changeset
2916 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
2917 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
2918 }
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2919
15489
29e8e230d1b6 A small memory leak in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15487
diff changeset
2920 g_free(node_name);
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2921 g_free(tooltip_text);
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2922 return td;
15397
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2923 }
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2924
21885
f5d961556972 Refactor some of the tooltip drawing functions. And add some pretend docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21877
diff changeset
2925 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
2926 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
2927 {
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2928 GtkStyle *style;
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2929 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
2930 int max_text_width;
15487
5369a4999f1c fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15486
diff changeset
2931 int max_avatar_width;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2932 GList *l;
15475
20cd2ea47648 tooltip tweaks
Sean Egan <seanegan@gmail.com>
parents: 15474
diff changeset
2933 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
2934 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
2935 int status_size = 0;
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
2936
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2937 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
2938 return FALSE;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2939
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2940 style = gtkblist->tipwindow->style;
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2941
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
2942 max_text_width = 0;
15487
5369a4999f1c fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15486
diff changeset
2943 max_avatar_width = 0;
15486
e9a869472b40 really fix that tooltip display glitch
Nathan Walp <nwalp@pidgin.im>
parents: 15485
diff changeset
2944
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2945 for(l = gtkblist->tooltipdata; l; l = l->next)
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2946 {
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2947 struct tooltip_data *td = l->data;
15487
5369a4999f1c fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15486
diff changeset
2948
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
2949 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
2950 MAX(td->width, td->name_width));
15487
5369a4999f1c fix the display bug a bit smarter
Nathan Walp <nwalp@pidgin.im>
parents: 15486
diff changeset
2951 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
2952 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
2953 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
2954 }
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
2955
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
2956 max_width = TOOLTIP_BORDER + status_size + SMALL_SPACE + max_text_width + SMALL_SPACE + max_avatar_width + TOOLTIP_BORDER;
15583
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2957 if (dir == GTK_TEXT_DIR_RTL)
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2958 prpl_col = TOOLTIP_BORDER + max_avatar_width + SMALL_SPACE;
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2959 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
2960 prpl_col = TOOLTIP_BORDER + status_size + SMALL_SPACE + max_text_width - PRPL_SIZE;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2961
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2962 current_height = 12;
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2963 for(l = gtkblist->tooltipdata; l; l = l->next)
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2964 {
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2965 struct tooltip_data *td = l->data;
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
2966
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
2967 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
2968 {
15583
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2969 if (dir == GTK_TEXT_DIR_RTL)
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2970 gtk_paint_flat_box(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT,
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2971 NULL, gtkblist->tipwindow, "tooltip",
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2972 TOOLTIP_BORDER -1, current_height -1, td->avatar_width +2, td->avatar_height + 2);
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2973 else
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2974 gtk_paint_flat_box(style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT,
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2975 NULL, gtkblist->tipwindow, "tooltip",
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2976 max_width - (td->avatar_width+ TOOLTIP_BORDER)-1,
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2977 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
2978 }
15397
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2979
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
2980 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
2981 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
2982 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
2983 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
2984 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
2985 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
2986 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
2987 }
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
2988
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
2989 if(td->avatar) {
15583
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2990 if (dir == GTK_TEXT_DIR_RTL)
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2991 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL,
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2992 td->avatar, 0, 0, TOOLTIP_BORDER, current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2993 else
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2994 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL,
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2995 td->avatar, 0, 0, max_width - (td->avatar_width + TOOLTIP_BORDER),
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
2996 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
2997 }
1dfa6945e13f Add some braces to eliminate a compiler warning about an ambiguous else.
Richard Laager <rlaager@wiktel.com>
parents: 15583
diff changeset
2998
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
2999 if (!td->avatar_is_prpl_icon && td->prpl_icon)
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
3000 gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->prpl_icon,
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
3001 0, 0,
15475
20cd2ea47648 tooltip tweaks
Sean Egan <seanegan@gmail.com>
parents: 15474
diff changeset
3002 prpl_col,
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
3003 current_height + ((td->name_height / 2) - (PRPL_SIZE / 2)),
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
3004 -1 , -1, GDK_RGB_DITHER_NONE, 0, 0);
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
3005
21986
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3006 if (td->name_layout) {
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3007 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
3008 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
3009 NULL, gtkblist->tipwindow, "tooltip",
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3010 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
3011 current_height, td->name_layout);
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3012 } else {
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3013 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
3014 NULL, gtkblist->tipwindow, "tooltip",
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3015 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
3016 }
15583
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
3017 }
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
3018
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
3019 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
3020 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
3021 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
3022 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
3023 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
3024 } 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
3025 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
3026 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
3027 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
3028 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
3029 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
3030 }
15583
ad1ddb31202d RTL Tooltips.
Sean Egan <seanegan@gmail.com>
parents: 15560
diff changeset
3031 }
15480
5551adcf8f97 fix overlapping in tooltips w/ large avatars
Nathan Walp <nwalp@pidgin.im>
parents: 15475
diff changeset
3032
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
3033 current_height += MAX(td->name_height + td->height, td->avatar_height) + td->padding;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
3034 }
21877
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3035 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
3036 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3037
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3038 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
3039 pidgin_blist_destroy_tooltip_data(void)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3040 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3041 while(gtkblist->tooltipdata) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3042 struct tooltip_data *td = gtkblist->tooltipdata->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3043
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3044 if(td->avatar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3045 g_object_unref(td->avatar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3046 if(td->status_icon)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3047 g_object_unref(td->status_icon);
15442
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
3048 if(td->prpl_icon)
2dc742344eb7 PRPL Icons in tooltips
Sean Egan <seanegan@gmail.com>
parents: 15437
diff changeset
3049 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
3050 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
3051 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
3052 if (td->name_layout)
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3053 g_object_unref(td->name_layout);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3054 g_free(td);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3055 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
3056 }
21877
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3057 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3058
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3059 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
3060 {
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3061 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
3062 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
3063 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3064
24412
558523cebd10 A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents: 24357
diff changeset
3065 static void
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3066 pidgin_blist_align_tooltip(struct tooltip_data *td, GtkWidget *widget)
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3067 {
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3068 GtkTextDirection dir = gtk_widget_get_direction(widget);
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3069
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3070 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
3071 {
558523cebd10 A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents: 24357
diff changeset
3072 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
3073 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
3074 if (dir == PANGO_DIRECTION_RTL || dir == PANGO_DIRECTION_NEUTRAL)
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3075 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
3076 g_free(layout_name);
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3077 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
3078 }
558523cebd10 A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents: 24357
diff changeset
3079 }
558523cebd10 A patch from db42 to fix right-to-left text in tooltips.
Richard Laager <rlaager@wiktel.com>
parents: 24357
diff changeset
3080
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 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
3082 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
3083 {
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3084 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
3085 int width, height;
21986
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3086 GList *list;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3087 int max_text_width = 0;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3088 int max_avatar_width = 0;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3089 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
3090
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
3091 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
3092 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
3093 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
3094 }
3fc5862b834a Use the new tooltip functions to draw the tooltips in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21933
diff changeset
3095
21877
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3096 gtkblist->tipwindow = widget;
21986
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3097 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
3098 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
3099 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
3100 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
3101 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
3102 } 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
3103 PurpleGroup *group = (PurpleGroup*)node;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3104 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
3105 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
3106 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
3107 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
3108
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3109 /* Accounts with buddies in group */
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3110 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
3111 for (; accounts != NULL;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3112 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
3113 PurpleAccount *account = accounts->data;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3114 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
3115 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
3116 }
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3117 } 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
3118 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
3119 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
3120
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3121 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
3122 {
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3123 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
3124 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
3125 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
3126 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
3127 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
3128 } else {
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3129 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
3130 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3131 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3132 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3133 } else {
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3134 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
3135 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3136
21986
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3137 height = width = 0;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3138 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
3139 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
3140 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
3141 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
3142 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
3143 if (td->status_icon)
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3144 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
3145 }
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3146 height += TOOLTIP_BORDER;
0eb3ea7e5784 Show prpl icons in the tooltip for groups.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21985
diff changeset
3147 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
3148
21877
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3149 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
3150 *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
3151 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
3152 *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
3153
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3154 return TRUE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3155 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3156
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
3157 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
3158 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3159 GtkTreePath *path;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3160 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3161 PurpleBlistNode *node;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
3162 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3163
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3164 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
3165 &path, NULL, NULL, NULL))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3166 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3167 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
3168 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3169
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3170 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
3171 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3172 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3173 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3174
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3175 gtknode = node->ui_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3176
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3177 if (!gtknode->contact_expanded) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3178 GtkTreeIter i;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3179
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
3180 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
3181
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3182 gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &gtkblist->contact_rect);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3183 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
3184 gtkblist->mouseover_contact = node;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3185 gtk_tree_path_down (path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3186 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
3187 GdkRectangle rect;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3188 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
3189 gtkblist->contact_rect.height += rect.height;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3190 gtk_tree_path_next(path);
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 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3194 return FALSE;
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
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3197 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
3198 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
3199 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3200
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3201 if(!buddy)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3202 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3203
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3204 gtknode = ((PurpleBlistNode*)buddy)->ui_data;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3205
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3206 return (purple_account_is_connected(buddy->account) &&
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3207 (purple_presence_is_online(buddy->presence) ||
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3208 (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
3209 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_offline_buddies") ||
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3210 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
3211 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3212
18671
30b6f8bc47cf Tooltips in infopanes
Sean Egan <seanegan@gmail.com>
parents: 18658
diff changeset
3213 void pidgin_blist_draw_tooltip(PurpleBlistNode *node, GtkWidget *widget)
30b6f8bc47cf Tooltips in infopanes
Sean Egan <seanegan@gmail.com>
parents: 18658
diff changeset
3214 {
21877
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3215 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
3216 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3217
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
3218 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
3219 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
3220 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3221 GtkTreePath *path;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3222 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
3223 GdkRectangle rect;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3224
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3225 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3226 * 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
3227 * the contact auto-expands.
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 delay = 900;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3230
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3231 if (gtkblist->drag_timeout) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3232 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
3233 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3234 /* 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
3235 g_source_remove(gtkblist->drag_timeout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3236 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3237
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3238 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
3239 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
3240
22313
42724bd41274 Plug some leaks caused by GtkTreePaths not being freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22299
diff changeset
3241 if (path)
42724bd41274 Plug some leaks caused by GtkTreePaths not being freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22299
diff changeset
3242 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
3243
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
3244 /* 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
3245 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
3246 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
3247 return FALSE;
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
3248
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
3249 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
3250 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
3251
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
3252 gtkblist->tip_rect = rect;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3253
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
3254 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
3255
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3256 if (gtkblist->mouseover_contact) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3257 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
3258 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
3259 gtkblist->mouseover_contact = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3260 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3261 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3262
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3263 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3264 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3265
21877
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3266 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
3267 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
3268 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
3269 {
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3270 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
3271 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
3272 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
3273
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3274 /* 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
3275 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
3276 if (editable)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3277 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3278
21877
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3279 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
3280 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
3281 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
3282 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3283
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3284 gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
3285 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
3286
21877
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3287 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
3288 }
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3289
6bf73aea6450 Some utility functions for showing tooltips. This is used by the buddylist,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21781
diff changeset
3290 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
3291 {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3292 if (gtkblist->mouseover_contact) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3293 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
3294 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
3295 gtkblist->mouseover_contact = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3296 }
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 return FALSE;
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
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
3302 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
3303 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3304 if (gtkblist->timeout) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3305 g_source_remove(gtkblist->timeout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3306 gtkblist->timeout = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3307 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3308
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3309 if (gtkblist->drag_timeout) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3310 g_source_remove(gtkblist->drag_timeout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3311 gtkblist->drag_timeout = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3312 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3313
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3314 if (gtkblist->mouseover_contact &&
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3315 !((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
3316 (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
3317 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
3318 gtkblist->mouseover_contact = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3319 }
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
3320 return FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3321 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3322
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3323 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3324 toggle_debug(void)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3325 {
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
3326 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
3327 !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
3328 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3329
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3330 static char *get_mood_icon_path(const char *mood)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3331 {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3332 char *path;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3333
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3334 if (!strcmp(mood, "busy")) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3335 path = g_build_filename(DATADIR, "pixmaps", "pidgin",
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3336 "status", "16", "busy.png", NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3337 } else if (!strcmp(mood, "hiptop")) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3338 path = g_build_filename(DATADIR, "pixmaps", "pidgin",
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3339 "emblems", "16", "hiptop.png", NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3340 } else {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3341 char *filename = g_strdup_printf("%s.png", mood);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3342 path = g_build_filename(DATADIR, "pixmaps", "pidgin",
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3343 "emotes", "small", filename, NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3344 g_free(filename);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3345 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3346 return path;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3347 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3348
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3349 static void
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3350 update_status_with_mood(PurpleAccount *account, const gchar *mood,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3351 const gchar *text)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3352 {
30042
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3353 if (mood && *mood) {
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3354 if (text) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3355 purple_account_set_status(account, "mood", TRUE,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3356 PURPLE_MOOD_NAME, mood,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3357 PURPLE_MOOD_COMMENT, text,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3358 NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3359 } else {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3360 purple_account_set_status(account, "mood", TRUE,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3361 PURPLE_MOOD_NAME, mood,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3362 NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3363 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3364 } else {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3365 purple_account_set_status(account, "mood", FALSE, NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3366 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3367 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3368
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3369 static void
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3370 edit_mood_cb(PurpleConnection *gc, PurpleRequestFields *fields)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3371 {
30042
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3372 PurpleRequestField *mood_field;
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3373 GList *l;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3374
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3375 mood_field = purple_request_fields_get_field(fields, "mood");
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3376 l = purple_request_field_list_get_selected(mood_field);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3377
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3378 if (l) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3379 const char *mood = purple_request_field_list_get_data(mood_field, l->data);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3380
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3381 if (gc) {
30042
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3382 const char *text;
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3383 PurpleAccount *account = purple_connection_get_account(gc);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3384
30042
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3385 if (gc->flags & PURPLE_CONNECTION_SUPPORT_MOOD_MESSAGES) {
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3386 PurpleRequestField *text_field;
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3387 text_field = purple_request_fields_get_field(fields, "text");
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3388 text = purple_request_field_string_get_value(text_field);
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3389 } else {
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3390 text = NULL;
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3391 }
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3392
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3393 update_status_with_mood(account, mood, text);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3394 } else {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3395 GList *accounts = purple_accounts_get_all_active();
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3396
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3397 for (; accounts ; accounts = g_list_delete_link(accounts, accounts)) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3398 PurpleAccount *account = (PurpleAccount *) accounts->data;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3399 PurpleConnection *gc = purple_account_get_connection(account);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3400
30540
66c3a4e7575c Fix a crash when setting a non account-specific mood and an enabled account is offline
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30401
diff changeset
3401 if (gc && gc->flags & PURPLE_CONNECTION_SUPPORT_MOODS) {
30042
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3402 update_status_with_mood(account, mood, NULL);
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3403 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3404 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3405 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3406 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3407 }
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
3408
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3409 static void
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3410 global_moods_for_each(gpointer key, gpointer value, gpointer user_data)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3411 {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3412 GList **out_moods = (GList **) user_data;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3413 PurpleMood *mood = (PurpleMood *) value;
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
3414
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3415 *out_moods = g_list_append(*out_moods, mood);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3416 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3417
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3418 static PurpleMood *
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3419 get_global_moods(void)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3420 {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3421 GHashTable *global_moods =
30042
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3422 g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3423 GHashTable *mood_counts =
30042
d98eee650379 Some fixes related to setting moods.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30038
diff changeset
3424 g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3425 GList *accounts = purple_accounts_get_all_active();
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3426 PurpleMood *result = NULL;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3427 GList *out_moods = NULL;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3428 int i = 0;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3429 int num_accounts = 0;
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
3430
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3431 for (; accounts ; accounts = g_list_delete_link(accounts, accounts)) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3432 PurpleAccount *account = (PurpleAccount *) accounts->data;
30401
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3433 if (purple_account_is_connected(account)) {
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3434 PurpleConnection *gc = purple_account_get_connection(account);
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3435
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3436 if (gc->flags & PURPLE_CONNECTION_SUPPORT_MOODS) {
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3437 PurplePluginProtocolInfo *prpl_info =
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3438 PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3439 PurpleMood *mood = NULL;
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3440
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3441 /* PURPLE_CONNECTION_SUPPORT_MOODS would not be set if the prpl doesn't
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3442 * have get_moods, so using PURPLE_PROTOCOL_PLUGIN_HAS_FUNC isn't necessary
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3443 * here */
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3444 for (mood = prpl_info->get_moods(account) ;
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3445 mood->mood != NULL ; mood++) {
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3446 int mood_count =
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3447 GPOINTER_TO_INT(g_hash_table_lookup(mood_counts, mood->mood));
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3448
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3449 if (!g_hash_table_lookup(global_moods, mood->mood)) {
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3450 g_hash_table_insert(global_moods, (gpointer)mood->mood, mood);
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3451 }
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3452 g_hash_table_insert(mood_counts, (gpointer)mood->mood,
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3453 GINT_TO_POINTER(mood_count + 1));
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3454 }
30401
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3455
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3456 num_accounts++;
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3457 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3458 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3459 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3460
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3461 g_hash_table_foreach(global_moods, global_moods_for_each, &out_moods);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3462 result = g_new0(PurpleMood, g_hash_table_size(global_moods) + 1);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3463
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3464 while (out_moods) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3465 PurpleMood *mood = (PurpleMood *) out_moods->data;
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
3466 int in_num_accounts =
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3467 GPOINTER_TO_INT(g_hash_table_lookup(mood_counts, mood->mood));
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3468
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3469 if (in_num_accounts == num_accounts) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3470 /* mood is present in all accounts supporting moods */
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3471 result[i].mood = mood->mood;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3472 result[i].description = mood->description;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3473 i++;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3474 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3475 out_moods = g_list_delete_link(out_moods, out_moods);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3476 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3477
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3478 g_hash_table_destroy(global_moods);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3479 g_hash_table_destroy(mood_counts);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3480
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3481 return result;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3482 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3483
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3484 /* get current set mood for all mood-supporting accounts, or NULL if not set
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3485 or not set to the same on all */
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3486 static const gchar *
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3487 get_global_mood_status(void)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3488 {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3489 GList *accounts = purple_accounts_get_all_active();
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3490 const gchar *found_mood = NULL;
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
3491
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3492 for (; accounts ; accounts = g_list_delete_link(accounts, accounts)) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3493 PurpleAccount *account = (PurpleAccount *) accounts->data;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3494
30401
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3495 if (purple_account_is_connected(account) &&
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3496 (purple_account_get_connection(account)->flags &
8e060965d69f pidgin: Fix a crash when accessing the Set Moods tool menu when having
Marcus Lundblad <ml@update.uu.se>
parents: 30376
diff changeset
3497 PURPLE_CONNECTION_SUPPORT_MOODS)) {
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3498 PurplePresence *presence = purple_account_get_presence(account);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3499 PurpleStatus *status = purple_presence_get_status(presence, "mood");
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3500 const gchar *curr_mood = purple_status_get_attr_string(status, PURPLE_MOOD_NAME);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3501
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3502 if (found_mood != NULL && !purple_strequal(curr_mood, found_mood)) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3503 /* found a different mood */
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3504 found_mood = NULL;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3505 break;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3506 } else {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3507 found_mood = curr_mood;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3508 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3509 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3510 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3511
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3512 return found_mood;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3513 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3514
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3515 static void
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3516 set_mood_cb(GtkWidget *widget, PurpleAccount *account)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3517 {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3518 const char *current_mood;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3519 PurpleRequestFields *fields;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3520 PurpleRequestFieldGroup *g;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3521 PurpleRequestField *f;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3522 PurpleConnection *gc = NULL;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3523 PurplePluginProtocolInfo *prpl_info = NULL;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3524 PurpleMood *mood;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3525 PurpleMood *global_moods = get_global_moods();
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
3526
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3527 if (account) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3528 PurplePresence *presence = purple_account_get_presence(account);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3529 PurpleStatus *status = purple_presence_get_status(presence, "mood");
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3530 gc = purple_account_get_connection(account);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3531 g_return_if_fail(gc->prpl != NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3532 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3533 current_mood = purple_status_get_attr_string(status, PURPLE_MOOD_NAME);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3534 } else {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3535 current_mood = get_global_mood_status();
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3536 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3537
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3538 fields = purple_request_fields_new();
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3539 g = purple_request_field_group_new(NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3540 f = purple_request_field_list_new("mood", _("Please select your mood from the list"));
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3541
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3542 purple_request_field_list_add(f, _("None"), "");
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3543 if (current_mood == NULL)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3544 purple_request_field_list_add_selected(f, _("None"));
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3545
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3546 /* TODO: rlaager wants this sorted. */
30648
53469b47d3f3 Add a comment noting the moods should be sorted post-translation.
Paul Aurich <paul@darkrain42.org>
parents: 30609
diff changeset
3547 /* TODO: darkrain wants it sorted post-translation */
53469b47d3f3 Add a comment noting the moods should be sorted post-translation.
Paul Aurich <paul@darkrain42.org>
parents: 30609
diff changeset
3548 if (account && PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, get_moods))
53469b47d3f3 Add a comment noting the moods should be sorted post-translation.
Paul Aurich <paul@darkrain42.org>
parents: 30609
diff changeset
3549 mood = prpl_info->get_moods(account);
53469b47d3f3 Add a comment noting the moods should be sorted post-translation.
Paul Aurich <paul@darkrain42.org>
parents: 30609
diff changeset
3550 else
53469b47d3f3 Add a comment noting the moods should be sorted post-translation.
Paul Aurich <paul@darkrain42.org>
parents: 30609
diff changeset
3551 mood = global_moods;
53469b47d3f3 Add a comment noting the moods should be sorted post-translation.
Paul Aurich <paul@darkrain42.org>
parents: 30609
diff changeset
3552 for ( ; mood->mood != NULL ; mood++) {
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3553 char *path;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3554
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3555 if (mood->mood == NULL || mood->description == NULL)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3556 continue;
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3557
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3558 path = get_mood_icon_path(mood->mood);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3559 purple_request_field_list_add_icon(f, _(mood->description),
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3560 path, (gpointer)mood->mood);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3561 g_free(path);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3562
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3563 if (current_mood && !strcmp(current_mood, mood->mood))
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3564 purple_request_field_list_add_selected(f, _(mood->description));
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3565 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3566 purple_request_field_group_add_field(g, f);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3567
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3568 purple_request_fields_add_group(fields, g);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3569
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3570 /* if the connection allows setting a mood message */
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3571 if (gc && (gc->flags & PURPLE_CONNECTION_SUPPORT_MOOD_MESSAGES)) {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3572 g = purple_request_field_group_new(NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3573 f = purple_request_field_string_new("text",
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3574 _("Message (optional)"), NULL, FALSE);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3575 purple_request_field_group_add_field(g, f);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3576 purple_request_fields_add_group(fields, g);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3577 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3578
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3579 purple_request_fields(gc, _("Edit User Mood"), _("Edit User Mood"),
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3580 NULL, fields,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3581 _("OK"), G_CALLBACK(edit_mood_cb),
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3582 _("Cancel"), NULL,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3583 gc ? purple_connection_get_account(gc) : NULL,
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3584 NULL, NULL, gc);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3585
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3586 g_free(global_moods);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3587 }
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3588
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3589 static void
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3590 set_mood_show(void)
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3591 {
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3592 set_mood_cb(NULL, NULL);
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
3593 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3594
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3595 /***************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3596 * Crap *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3597 ***************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3598 static GtkItemFactoryEntry blist_menu[] =
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3599 {
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
3600 /* NOTE: Do not set any accelerator to Control+O. It is mapped by
30890
1e684071fbeb Make a note not to use Control+O, since it's used elsewhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30863
diff changeset
3601 gtk_blist_key_press_cb to "Get User Info" on the selected buddy. */
1e684071fbeb Make a note not to use Control+O, since it's used elsewhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30863
diff changeset
3602
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3603 /* Buddies menu */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3604 { 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
3605 { 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
3606 { 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
3607 { 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
3608 { 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
3609 { "/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
3610 { 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
3611 { 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
3612 { 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
3613 { 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
3614 { 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
3615 { 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
3616 { 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
3617 { "/Buddies/sep2", NULL, NULL, 0, "<Separator>", NULL },
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
3618 { 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
3619 { N_("/Buddies/Add C_hat..."), NULL, pidgin_blist_add_chat_cb, 0, "<StockItem>", GTK_STOCK_ADD },
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3620 { 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
3621 { "/Buddies/sep3", NULL, NULL, 0, "<Separator>", NULL },
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3622 { 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
3623
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3624 /* Accounts menu */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3625 { 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
3626 { 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
3627
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3628 /* Tools */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3629 { 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>
parents: 21498 21354
diff changeset
3630 { 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
3631 { 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
3632 { 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>
parents: 21498 21354
diff changeset
3633 { 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
3634 { 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
3635 { N_("/Tools/Pr_ivacy"), NULL, pidgin_privacy_dialog_show, 0, "<Item>", NULL },
30892
c8d6a2cc3bfe Change the Set User Mood shortcut to Control+D. Control+O is in use
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30890
diff changeset
3636 { N_("/Tools/Set _Mood"), "<CTL>D", set_mood_show, 0, "<Item>", NULL },
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3637 { "/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
3638 { 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
3639 { 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>
parents: 21498 21354
diff changeset
3640 { 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
3641 { "/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
3642 { N_("/Tools/Mute _Sounds"), NULL, pidgin_blist_mute_sounds_cb, 0, "<CheckItem>", NULL },
17432
0bbc08d41234 disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents: 17431
diff changeset
3643 /* Help */
0bbc08d41234 disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents: 17431
diff changeset
3644 { N_("/_Help"), NULL, NULL, 0, "<Branch>", NULL },
0bbc08d41234 disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents: 17431
diff changeset
3645 { N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP },
29507
eae4883944ed Split the "Debugging Information" and translator info into "Build Information"
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 29500
diff changeset
3646 { "/Help/sep1", NULL, NULL, 0, "<Separator>", NULL },
eae4883944ed Split the "Debugging Information" and translator info into "Build Information"
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 29500
diff changeset
3647 { N_("/Help/_Build Information"), NULL, pidgin_dialogs_buildinfo, 0, "<Item>", NULL },
17432
0bbc08d41234 disapproval of revision '1fd9445b933f2f5ff2724778f9d18e47282745cd'
Stu Tomlinson <stu@nosnilmot.com>
parents: 17431
diff changeset
3648 { N_("/Help/_Debug Window"), NULL, toggle_debug, 0, "<Item>", NULL },
29510
a6b08260d631 Break the developer information out into its own dialog. I also bolded a few
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 29507
diff changeset
3649 { N_("/Help/De_veloper Information"), NULL, pidgin_dialogs_developers, 0, "<Item>", NULL },
a6b08260d631 Break the developer information out into its own dialog. I also bolded a few
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 29507
diff changeset
3650 { N_("/Help/_Translator Information"), NULL, pidgin_dialogs_translators, 0, "<Item>", NULL },
29507
eae4883944ed Split the "Debugging Information" and translator info into "Build Information"
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 29500
diff changeset
3651 { "/Help/sep2", NULL, NULL, 0, "<Separator>", NULL },
21560
665e04562de0 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@wiktel.com>
parents: 21498 21354
diff changeset
3652 { N_("/Help/_About"), NULL, pidgin_dialogs_about, 4, "<StockItem>", GTK_STOCK_ABOUT },
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3653 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3654
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3655 /*********************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3656 * Private Utility functions *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3657 *********************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3658
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3659 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
3660 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3661 GString *str = g_string_new("");
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3662 PurplePlugin *prpl;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3663 PurplePluginProtocolInfo *prpl_info = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3664 char *tmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3665
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3666 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
3667 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3668 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
3669 GList *connections;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3670 GList *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3671 struct proto_chat_entry *pce;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3672 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
3673 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
3674 PidginBlistNode *bnode = node->ui_data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3675
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3676 chat = (PurpleChat *)node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3677 prpl = purple_find_prpl(purple_account_get_protocol_id(chat->account));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3678 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3679
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
3680 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
3681 if (connections && connections->next)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3682 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3683 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
3684 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
3685 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3686 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3687
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
3688 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
3689 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
3690 } else {
22450
57fef22fa7a8 Fix a memory leak
Stu Tomlinson <stu@nosnilmot.com>
parents: 22437
diff changeset
3691 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
3692 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
3693 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
3694 else
22450
57fef22fa7a8 Fix a memory leak
Stu Tomlinson <stu@nosnilmot.com>
parents: 22437
diff changeset
3695 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
3696
8802eddbfedc Fix Topic in chat node tooltips, and turn on using the transient chat node
Stu Tomlinson <stu@nosnilmot.com>
parents: 22436
diff changeset
3697 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
3698 chat->account);
22450
57fef22fa7a8 Fix a memory leak
Stu Tomlinson <stu@nosnilmot.com>
parents: 22437
diff changeset
3699 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
3700 }
22594
3bf963b9c715 Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents: 22510
diff changeset
3701
3bf963b9c715 Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents: 22510
diff changeset
3702 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
3703 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
3704 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
3705
3bf963b9c715 Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents: 22510
diff changeset
3706 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
3707 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
3708 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
3709 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
3710 g_free(topic);
3bf963b9c715 Add number of occupants to the tooltip for chats. Fixes #3346
Stu Tomlinson <stu@nosnilmot.com>
parents: 22510
diff changeset
3711 }
21771
3303c02a46f5 Show the topic of a chat, when available, in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21757
diff changeset
3712 }
3303c02a46f5 Show the topic of a chat, when available, in the tooltip.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21757
diff changeset
3713
24357
34dcb702d0bb Fix CID #384
Richard Laager <rlaager@wiktel.com>
parents: 24302
diff changeset
3714 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
3715 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
3716 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3717 cur = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3718
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3719 while (cur != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3720 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3721 pce = cur->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3722
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3723 if (!pce->secret && (!pce->required &&
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3724 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
3725 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3726 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
3727 name = g_markup_escape_text(tmp, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3728 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3729 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
3730 chat->components, pce->identifier), -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3731 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
3732 name ? name : "",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3733 value ? value : "");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3734 g_free(name);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3735 g_free(value);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3736 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3737
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3738 g_free(pce);
28138
deecc1d663c4 Don't use pointers (even opaquely) once they're freed. Closes #9822.
Paul Aurich <paul@darkrain42.org>
parents: 27993
diff changeset
3739 cur = g_list_delete_link(cur, cur);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3740 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3741 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3742 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
3743 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3744 /* 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
3745 * 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
3746 */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3747 PurpleContact *c;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3748 PurpleBuddy *b;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3749 PurplePresence *presence;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3750 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
3751 GList *connections;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3752 char *tmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3753 time_t idle_secs, signon;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3754
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3755 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
3756 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3757 c = (PurpleContact *)node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3758 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
3759 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3760 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3761 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3762 b = (PurpleBuddy *)node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3763 c = purple_buddy_get_contact(b);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3764 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3765
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3766 prpl = purple_find_prpl(purple_account_get_protocol_id(b->account));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3767 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3768
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3769 presence = purple_buddy_get_presence(b);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3770 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
3771
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3772 /* 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
3773 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
3774 if (full && connections && connections->next)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3775 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3776 tmp = g_markup_escape_text(purple_account_get_username(
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3777 purple_buddy_get_account(b)), -1);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3778 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
3779 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3780 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3781
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3782 /* Alias */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3783 /* 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
3784 * 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
3785 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
3786 (c->alias != NULL && c->alias[0] != '\0') &&
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3787 strcmp(c->alias, b->alias) != 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3788 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3789 tmp = g_markup_escape_text(b->alias, -1);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3790 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
3791 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3792 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3793
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3794 /* Nickname/Server Alias */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3795 /* 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
3796 * 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
3797 * 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
3798 * to look at the tooltip. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3799 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
3800 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3801 tmp = g_markup_escape_text(b->server_alias, -1);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3802 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
3803 g_free(tmp);
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3806 /* Logged In */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3807 signon = purple_presence_get_login_time(presence);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3808 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
3809 {
18241
83ea1733979b This is a less dumb way to make sure we don't wrap
Mark Doliner <mark@kingant.net>
parents: 18217
diff changeset
3810 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
3811 /*
18241
83ea1733979b This is a less dumb way to make sure we don't wrap
Mark Doliner <mark@kingant.net>
parents: 18217
diff changeset
3812 * 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
3813 * 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
3814 * "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
3815 */
18b62b0fc253 Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <mark@kingant.net>
parents: 17789
diff changeset
3816 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
3817 } else
18b62b0fc253 Get outta my house. This adds a failsafe for the "Logged In"
Mark Doliner <mark@kingant.net>
parents: 17789
diff changeset
3818 tmp = purple_str_seconds_to_string(time(NULL) - signon);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3819 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
3820 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3821 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3822
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3823 /* Idle */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3824 if (purple_presence_is_idle(presence))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3825 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3826 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
3827 if (idle_secs > 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3828 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3829 tmp = purple_str_seconds_to_string(time(NULL) - idle_secs);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3830 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
3831 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3832 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3833 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3834
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3835 /* 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
3836 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
3837 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3838 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode *)c)->ui_data;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3839 PurpleBlistNode *bnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3840 int lastseen = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3841
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
3842 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
3843 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3844 /* 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
3845 * 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
3846 * (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
3847 * the contact. */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3848 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
3849 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3850 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
3851 if (value > lastseen)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3852 lastseen = value;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3853 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3854 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3855 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3856 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3857 /* 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
3858 * so we show the last_seen time for the buddy. */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3859 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
3860 }
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 if (lastseen > 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3863 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3864 tmp = purple_str_seconds_to_string(time(NULL) - lastseen);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3865 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
3866 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3867 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3868 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3869
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3870
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3871 /* Offline? */
29849
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
3872 /* FIXME: Why is this status special-cased by the core? --rlaager
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
3873 * FIXME: Alternatively, why not have the core do all of them? --rlaager */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3874 if (!PURPLE_BUDDY_IS_ONLINE(b)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3875 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
3876 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3877
19635
1481ea6bb805 Do not bother the prpl about a tooltip for a disconnected account.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19611
diff changeset
3878 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
3879 prpl_info && prpl_info->tooltip_text)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3880 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3881 /* Additional text from the PRPL */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3882 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
3883 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3884
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3885 /* 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
3886 if (!g_ascii_strcasecmp(b->name, "robflynn"))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3887 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
3888 if (!g_ascii_strcasecmp(b->name, "seanegn"))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3889 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
3890 if (!g_ascii_strcasecmp(b->name, "chipx86"))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3891 purple_notify_user_info_add_pair(user_info, _("Status"), _("Rockin'"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3892
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3893 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
3894 g_string_append(str, tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3895 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3896
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3897 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
3898 } 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
3899 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
3900 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
3901 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
3902
2b6e6dd24a37 Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents: 21912
diff changeset
3903 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
3904
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
3905 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
3906
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
3907 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
3908 /* 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
3909 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
3910 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
3911 _("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
3912 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
3913 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
3914 }
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
3915
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
3916 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
3917 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
3918 /* 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
3919 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
3920 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
3921 _("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
3922 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
3923 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
3924 }
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
3925
2b6e6dd24a37 Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents: 21912
diff changeset
3926 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
3927 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
3928 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
3929
2b6e6dd24a37 Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents: 21912
diff changeset
3930 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
3931 }
2b6e6dd24a37 Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents: 21912
diff changeset
3932
2b6e6dd24a37 Add tooltips to groups in the buddy list. The tooltips show the current online
Etan Reisner <pidgin@unreliablesource.net>
parents: 21912
diff changeset
3933 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
3934 node, str, full);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3935
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3936 return g_string_free(str, FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3937 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3938
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
3939 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
3940
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
3941 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
3942 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
3943 }
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
3944
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
3945 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
3946 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
3947
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
3948 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
3949 /* 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
3950 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
3951 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
3952 } else {
32138
e2c6e4fc3c84 Start looking at the GError parameter every time we call these functions:
Mark Doliner <mark@kingant.net>
parents: 31893
diff changeset
3953 pb = pidgin_pixbuf_new_from_file(path);
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
3954 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
3955 /* 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
3956 /* 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
3957 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
3958 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
3959 } 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
3960 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
3961 }
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
3962
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
3963 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
3964 }
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
3965
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
3966 GdkPixbuf *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3967 pidgin_blist_get_emblem(PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3968 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3969 PurpleBuddy *buddy = NULL;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
3970 struct _pidgin_blist_node *gtknode = node->ui_data;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3971 PurplePlugin *prpl;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3972 PurplePluginProtocolInfo *prpl_info;
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
3973 const char *name = NULL;
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
3974 char *filename, *path;
29854
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
3975 PurplePresence *p = NULL;
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
3976 PurpleStatus *tune;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3977
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3978 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
3979 if(!gtknode->contact_expanded) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3980 buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
3981 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3982 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3983 buddy = (PurpleBuddy*)node;
29854
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
3984 p = purple_buddy_get_presence(buddy);
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
3985 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) {
29849
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
3986 /* This emblem comes from the small emoticon set now,
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
3987 * to reduce duplication. */
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
3988 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emotes",
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
3989 "small", "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
3990 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
3991 }
9b3c2ba1a5c3 Mobile icon trumps prpl icon in expanded buddies. Fixes #515
Sean Egan <seanegan@gmail.com>
parents: 18309
diff changeset
3992
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
3993 if (((struct _pidgin_blist_node*)(node->parent->ui_data))->contact_expanded) {
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
3994 if (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
3995 return NULL;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
3996 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
3997 }
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
3998 } else {
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
3999 return NULL;
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4000 }
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
4001
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
4002 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
4003
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4004 if (!purple_privacy_check(buddy->account, purple_buddy_get_name(buddy))) {
15500
45ecefd0ce3a Blocked emblem
Sean Egan <seanegan@gmail.com>
parents: 15497
diff changeset
4005 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
4006 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
4007 }
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
4008
29829
11cb7f2bb6e8 Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
Richard Laager <rlaager@wiktel.com>
parents: 29828
diff changeset
4009 /* If we came through the contact code flow above, we didn't need
11cb7f2bb6e8 Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
Richard Laager <rlaager@wiktel.com>
parents: 29828
diff changeset
4010 * to get the presence until now. */
29854
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
4011 if (p == NULL)
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
4012 p = purple_buddy_get_presence(buddy);
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
4013
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
4014 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) {
29849
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4015 /* This emblem comes from the small emoticon set now, to reduce duplication. */
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4016 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emotes", "small", "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
4017 return _pidgin_blist_get_cached_emblem(path);
15500
45ecefd0ce3a Blocked emblem
Sean Egan <seanegan@gmail.com>
parents: 15497
diff changeset
4018 }
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4019
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
4020 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
4021 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
4022 /* 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
4023 * 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
4024 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
4025 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
4026 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
4027 }
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
4028 /* 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
4029 * 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
4030 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
4031 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
4032 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
4033 }
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
4034 /* Regular old "tune" is the only one in all protocols. */
29849
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4035 /* This emblem comes from the small emoticon set now, to reduce duplication. */
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4036 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emotes", "small", "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
4037 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
4038 }
d97c43dbc1ca Display a music emblem in the buddylist when appropriate.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20050
diff changeset
4039
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4040 prpl = purple_find_prpl(purple_account_get_protocol_id(buddy->account));
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4041 if (!prpl)
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4042 return NULL;
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4043
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4044 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4045 if (prpl_info && prpl_info->list_emblem)
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4046 name = prpl_info->list_emblem(buddy);
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4047
29828
1034b0d09398 Look at the mood status attribute on a buddy when picking the emblem.
Richard Laager <rlaager@wiktel.com>
parents: 24357
diff changeset
4048 if (name == NULL) {
29829
11cb7f2bb6e8 Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
Richard Laager <rlaager@wiktel.com>
parents: 29828
diff changeset
4049 PurpleStatus *status;
11cb7f2bb6e8 Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
Richard Laager <rlaager@wiktel.com>
parents: 29828
diff changeset
4050
29854
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
4051 if (!purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOOD))
29829
11cb7f2bb6e8 Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
Richard Laager <rlaager@wiktel.com>
parents: 29828
diff changeset
4052 return NULL;
11cb7f2bb6e8 Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
Richard Laager <rlaager@wiktel.com>
parents: 29828
diff changeset
4053
29854
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
4054 status = purple_presence_get_status(p, "mood");
29829
11cb7f2bb6e8 Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
Richard Laager <rlaager@wiktel.com>
parents: 29828
diff changeset
4055 name = purple_status_get_attr_string(status, PURPLE_MOOD_NAME);
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
4056
29829
11cb7f2bb6e8 Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
Richard Laager <rlaager@wiktel.com>
parents: 29828
diff changeset
4057 if (!(name && *name))
29828
1034b0d09398 Look at the mood status attribute on a buddy when picking the emblem.
Richard Laager <rlaager@wiktel.com>
parents: 24357
diff changeset
4058 return NULL;
29849
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4059
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4060 path = get_mood_icon_path(name);
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4061 } else {
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4062 filename = g_strdup_printf("%s.png", name);
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4063 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", filename, NULL);
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4064 g_free(filename);
93cb9f54df45 Now that the "Set Mood" UI is in Pidgin, it can do whatever it likes to
Richard Laager <rlaager@wiktel.com>
parents: 29837
diff changeset
4065 }
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
4066
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
4067 /* _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
4068 return _pidgin_blist_get_cached_emblem(path);
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4069 }
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
4070
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4071
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4072 GdkPixbuf *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4073 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
4074 {
15397
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
4075 GdkPixbuf *ret;
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
4076 const char *icon = NULL;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4077 struct _pidgin_blist_node *gtknode = node->ui_data;
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4078 struct _pidgin_blist_node *gtkbuddynode = NULL;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4079 PurpleBuddy *buddy = NULL;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4080 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
4081 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
4082 PIDGIN_ICON_SIZE_TANGO_MICROSCOPIC);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4083
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4084 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
4085 if(!gtknode->contact_expanded) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4086 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
4087 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
4088 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4089 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4090 } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4091 buddy = (PurpleBuddy*)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4092 gtkbuddynode = node->ui_data;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4093 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4094 chat = (PurpleChat*)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4095 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4096 return NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4097 }
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 if(buddy || chat) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4100 PurpleAccount *account;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4101 PurplePlugin *prpl;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4102
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4103 if(buddy)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4104 account = buddy->account;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4105 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4106 account = chat->account;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4107
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4108 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
4109 if(!prpl)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4110 return NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4111 }
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
4112
15397
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
4113 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
4114 PurpleConversation *conv = find_conversation_with_buddy(buddy);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4115 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
4116 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
4117
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
4118 if(conv != NULL) {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4119 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
19895
1fe1ac03e1fe Show the 'new message' icon correctly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19894
diff changeset
4120 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
4121 PidginBlistNode *ui = buddy->node.ui_data;
1fe1ac03e1fe Show the 'new message' icon correctly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19894
diff changeset
4122 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
4123 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
4124 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
4125 }
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
4126 }
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
4127
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4128 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
4129 trans = purple_presence_is_idle(p);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4130
23969
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
4131 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
4132 icon = PIDGIN_STOCK_STATUS_LOGIN;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
4133 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
4134 icon = PIDGIN_STOCK_STATUS_LOGOUT;
23969
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
4135 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
4136 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
4137 icon = PIDGIN_STOCK_STATUS_BUSY_I;
15493
fd4afe8bb584 Faded idle status icons
Sean Egan <seanegan@gmail.com>
parents: 15491
diff changeset
4138 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
4139 icon = PIDGIN_STOCK_STATUS_BUSY;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4140 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
4141 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
4142 icon = PIDGIN_STOCK_STATUS_AWAY_I;
15493
fd4afe8bb584 Faded idle status icons
Sean Egan <seanegan@gmail.com>
parents: 15491
diff changeset
4143 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
4144 icon = PIDGIN_STOCK_STATUS_AWAY;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4145 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
4146 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
4147 icon = PIDGIN_STOCK_STATUS_XA_I;
15493
fd4afe8bb584 Faded idle status icons
Sean Egan <seanegan@gmail.com>
parents: 15491
diff changeset
4148 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
4149 icon = PIDGIN_STOCK_STATUS_XA;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4150 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
4151 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
4152 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
4153 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
4154 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
4155 icon = PIDGIN_STOCK_STATUS_INVISIBLE;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
4156 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
4157 icon = PIDGIN_STOCK_STATUS_AVAILABLE;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
4158 } 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
4159 icon = PIDGIN_STOCK_STATUS_CHAT;
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
4160 } 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
4161 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
4162 }
712a448722b6 If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19538
diff changeset
4163
712a448722b6 If a conversation doesn't have UI-data, consider it a hidden conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19538
diff changeset
4164 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
4165 icon_size, "GtkTreeView");
15397
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
4166 return ret;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4167 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4168
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4169 static const char *
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4170 theme_font_get_color_default(PidginThemeFont *font, const char *def)
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4171 {
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4172 const char *ret;
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4173 if (!font || !(ret = pidgin_theme_font_get_color_describe(font)))
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4174 ret = def;
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4175 return ret;
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4176 }
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4177
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4178 static const char *
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4179 theme_font_get_face_default(PidginThemeFont *font, const char *def)
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4180 {
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4181 const char *ret;
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4182 if (!font || !(ret = pidgin_theme_font_get_font_face(font)))
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4183 ret = def;
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4184 return ret;
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4185 }
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4186
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
4187 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
4188 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
4189 {
23699
fc8047e1fa39 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23698
diff changeset
4190 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
4191 char *text = NULL;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4192 PurplePlugin *prpl;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4193 PurplePluginProtocolInfo *prpl_info = NULL;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4194 PurpleContact *contact;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4195 PurplePresence *presence;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4196 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
4197 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
4198 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
4199 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
4200 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4201 PidginThemeFont *statusfont = NULL, *namefont = 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
4202 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
4203
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
4204 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
4205 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
4206 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
4207 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
4208 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
4209 } 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
4210 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
4211 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
4212 }
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
4213 }
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
4214
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4215 /* 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
4216 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
4217 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
4218 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
4219
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
4220 /* 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
4221 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
4222 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
4223 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
4224 name = purple_buddy_get_alias(b);
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
4225
30038
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
4226 /* Raise a contact pre-draw signal here. THe callback will return an
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
4227 * escaped version of the name. */
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
4228 nametext = purple_signal_emit_return_1(pidgin_blist_get_handle(), "drawing-buddy", b);
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
4229
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
4230 if(!nametext)
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
4231 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
4232
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4233 presence = purple_buddy_get_presence(b);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4234
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
4235 /* Name is all that is needed */
26291
fb937c4c2a50 Fix displaying of status messages in the conversation infopane.
Paul Aurich <paul@darkrain42.org>
parents: 26288
diff changeset
4236 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
4237
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
4238 /* 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
4239 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
4240
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
4241 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
4242 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
4243
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
4244 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
4245 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
4246 const char *end;
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
4247
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
4248 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
4249 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
4250 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
4251 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
4252 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
4253 }
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
4254 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
4255 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
4256 purple_str_strip_char(tmp, '\r');
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4257 }
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
4258 statustext = tmp;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4259 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4260
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
4261 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
4262 statustext = g_strdup(_("Offline"));
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
4263
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
4264 /* 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
4265 if (purple_presence_is_idle(presence) && purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time")) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4266 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
4267
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4268 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
4269 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
4270 time_t t;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4271
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4272 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
4273 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
4274 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
4275 imin = ((t - idle_secs) / 60) % 60;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4276
25411
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
4277 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
4278 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
4279 else if (ihrs)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4280 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
4281 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4282 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
4283
25411
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
4284 } else
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4285 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
4286 }
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
4287 }
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
4288
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
4289 /* 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
4290 theme = pidgin_blist_get_theme();
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4291 name_color = NULL;
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4292
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4293 if (theme) {
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4294 if (purple_presence_is_idle(presence)) {
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4295 namefont = statusfont = pidgin_blist_theme_get_idle_text_info(theme);
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4296 name_color = "dim grey";
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4297 } else if (!purple_presence_is_online(presence)) {
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4298 namefont = pidgin_blist_theme_get_offline_text_info(theme);
28413
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
4299 name_color = "dim grey";
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4300 statusfont = pidgin_blist_theme_get_status_text_info(theme);
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4301 } else if (purple_presence_is_available(presence)) {
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4302 namefont = pidgin_blist_theme_get_online_text_info(theme);
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4303 statusfont = pidgin_blist_theme_get_status_text_info(theme);
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4304 } else {
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4305 namefont = pidgin_blist_theme_get_away_text_info(theme);
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4306 statusfont = pidgin_blist_theme_get_status_text_info(theme);
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4307 }
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
4308 } else {
28413
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
4309 if (!selected
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
4310 && (purple_presence_is_idle(presence)
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
4311 || !purple_presence_is_online(presence)))
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
4312 {
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
4313 name_color = "dim grey";
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
4314 }
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4315 }
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4316
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4317 name_color = theme_font_get_color_default(namefont, name_color);
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4318 name_font = theme_font_get_face_default(namefont, "");
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4319
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4320 status_color = theme_font_get_color_default(statusfont, "dim grey");
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
4321 status_font = theme_font_get_face_default(statusfont, "");
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
4322
23698
f76e9db37141 Fixes blist theme bug in buddy markup
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23697
diff changeset
4323 if (aliased && selected) {
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4324 if (theme) {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4325 name_color = "black";
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4326 status_color = "black";
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4327 } else {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4328 name_color = NULL;
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4329 status_color = NULL;
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4330 }
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
4331 }
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
4332
28807
876ffa0f5465 pidgin: Bold usernames with unread messages in the buddy list again. Closes #10068.
Paul Aurich <paul@darkrain42.org>
parents: 28570
diff changeset
4333 if (hidden_conv) {
876ffa0f5465 pidgin: Bold usernames with unread messages in the buddy list again. Closes #10068.
Paul Aurich <paul@darkrain42.org>
parents: 28570
diff changeset
4334 char *tmp = nametext;
876ffa0f5465 pidgin: Bold usernames with unread messages in the buddy list again. Closes #10068.
Paul Aurich <paul@darkrain42.org>
parents: 28570
diff changeset
4335 nametext = g_strdup_printf("<b>%s</b>", tmp);
876ffa0f5465 pidgin: Bold usernames with unread messages in the buddy list again. Closes #10068.
Paul Aurich <paul@darkrain42.org>
parents: 28570
diff changeset
4336 g_free(tmp);
876ffa0f5465 pidgin: Bold usernames with unread messages in the buddy list again. Closes #10068.
Paul Aurich <paul@darkrain42.org>
parents: 28570
diff changeset
4337 }
876ffa0f5465 pidgin: Bold usernames with unread messages in the buddy list again. Closes #10068.
Paul Aurich <paul@darkrain42.org>
parents: 28570
diff changeset
4338
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
4339 /* Put it all together */
26291
fb937c4c2a50 Fix displaying of status messages in the conversation infopane.
Paul Aurich <paul@darkrain42.org>
parents: 26288
diff changeset
4340 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
4341 /* using <span size='smaller'> breaks the status, so it must be seperated into <small><span>*/
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4342 if (name_color) {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4343 text = g_strdup_printf("<span font_desc='%s' foreground='%s'>%s</span>\n"
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4344 "<small><span font_desc='%s' foreground='%s'>%s%s%s</span></small>",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4345 name_font, name_color, nametext, status_font, status_color,
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4346 idletime != NULL ? idletime : "",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4347 (idletime != NULL && statustext != NULL) ? " - " : "",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4348 statustext != NULL ? statustext : "");
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4349 } else if (status_color) {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4350 text = g_strdup_printf("<span font_desc='%s'>%s</span>\n"
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4351 "<small><span font_desc='%s' foreground='%s'>%s%s%s</span></small>",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4352 name_font, nametext, status_font, status_color,
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4353 idletime != NULL ? idletime : "",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4354 (idletime != NULL && statustext != NULL) ? " - " : "",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4355 statustext != NULL ? statustext : "");
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4356 } else {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4357 text = g_strdup_printf("<span font_desc='%s'>%s</span>\n"
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4358 "<small><span font_desc='%s'>%s%s%s</span></small>",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4359 name_font, nametext, status_font,
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4360 idletime != NULL ? idletime : "",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4361 (idletime != NULL && statustext != NULL) ? " - " : "",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4362 statustext != NULL ? statustext : "");
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4363 }
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4364 } else {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4365 if (name_color) {
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
4366 text = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>",
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4367 name_font, name_color, nametext);
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4368 } else {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4369 text = g_strdup_printf("<span font_desc='%s'>%s</span>", name_font,
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4370 nametext);
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4371 }
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
4372 }
23699
fc8047e1fa39 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23698
diff changeset
4373 g_free(nametext);
25411
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
4374 g_free(statustext);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4375 g_free(idletime);
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
4376
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
4377 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
4378 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
4379 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
4380 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
4381 }
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
4382
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4383 return text;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4384 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4385
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21960
diff changeset
4386 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
4387 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4388 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
4389
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
4390 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
4391
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4392 /* 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
4393 * position is sane... */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4394 if (gtkblist && gtkblist->window &&
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4395 !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
4396
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
4397 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
4398 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
4399 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
4400
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4401 /* ...check position is on screen... */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4402 if (blist_x >= gdk_screen_width())
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4403 blist_x = gdk_screen_width() - 100;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4404 else if (blist_x + blist_width < 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4405 blist_x = 100;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4406
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4407 if (blist_y >= gdk_screen_height())
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4408 blist_y = gdk_screen_height() - 100;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4409 else if (blist_y + blist_height < 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4410 blist_y = 100;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4411
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4412 /* ...and move it back. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4413 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
4414 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
4415 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
4416 gtk_window_maximize(GTK_WINDOW(gtkblist->window));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4417 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4418 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4419
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4420 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4421 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4422 PurpleBlistNode *gnode, *cnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4423
21041
094bbbe89d0d Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents: 21040
diff changeset
4424 if (gtk_blist_visibility == GDK_VISIBILITY_FULLY_OBSCURED
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
4425 || !GTK_WIDGET_VISIBLE(gtkblist->window))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4426 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4427
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4428 for(gnode = list->root; gnode; gnode = gnode->next) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4429 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
4430 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4431 for(cnode = gnode->child; cnode; cnode = cnode->next) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4432 if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4433 PurpleBuddy *buddy;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4434
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4435 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
4436
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4437 if (buddy &&
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4438 purple_presence_is_idle(purple_buddy_get_presence(buddy)))
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4439 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
4440 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4441 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4442 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4443
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4444 /* keep on going */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4445 return TRUE;
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4448 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
4449 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4450 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
4451 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4452
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4453 if (!gtknode || !gtknode->row || !gtkblist)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4454 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4455
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4456 if(gtkblist->selected_node == node)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4457 gtkblist->selected_node = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4458 if (get_iter_from_node(node, &iter)) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4459 gtk_tree_store_remove(gtkblist->treemodel, &iter);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4460 if(update && (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4461 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
4462 pidgin_blist_update(list, node->parent);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4463 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4464 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4465 gtk_tree_row_reference_free(gtknode->row);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4466 gtknode->row = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4467 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4468
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4469 static const char *require_connection[] =
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4470 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4471 N_("/Buddies/New Instant Message..."),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4472 N_("/Buddies/Join a Chat..."),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4473 N_("/Buddies/Get User Info..."),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4474 N_("/Buddies/Add Buddy..."),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4475 N_("/Buddies/Add Chat..."),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4476 N_("/Buddies/Add Group..."),
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4479 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
4480 / sizeof(*require_connection);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4481
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4482 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4483 * 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
4484 * where appropriate.
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 static void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4487 update_menu_bar(PidginBuddyList *gtkblist)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4488 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4489 GtkWidget *widget;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4490 gboolean sensitive;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4491 int i;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4492
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4493 g_return_if_fail(gtkblist != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4494
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4495 pidgin_blist_update_accounts_menu();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4496
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4497 sensitive = (purple_connections_get_all() != NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4498
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4499 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
4500 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4501 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
4502 gtk_widget_set_sensitive(widget, sensitive);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4503 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4504
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4505 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
4506 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
4507
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4508 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
4509 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
4510
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4511 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
4512 gtk_widget_set_sensitive(widget, sensitive);
15374
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 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
4515 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
4516 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4517
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4518 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4519 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
4520 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4521 PidginBuddyList *gtkblist = PIDGIN_BLIST(blist);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4522
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4523 update_menu_bar(gtkblist);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4524 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4525
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4526 static void
30599
2a51b2c643d2 gpointer* is redundant.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30540
diff changeset
4527 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
4528 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4529 pidgin_blist_update_plugin_actions();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4530 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4531
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4532 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
4533 unseen_conv_menu(void)
15374
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 static GtkWidget *menu = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4536 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
4537 GList *chats, *ims;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4538
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4539 if (menu) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4540 gtk_widget_destroy(menu);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4541 menu = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4542 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4543
20960
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4544 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
4545 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
4546
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4547 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
4548 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
4549
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4550 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
4551 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
4552 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
4553 convs = ims;
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4554 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
4555 convs = chats;
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4556
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4557 if (!convs)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4558 /* 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
4559 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4560
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4561 menu = gtk_menu_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4562
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4563 pidgin_conversations_fill_menu(menu, convs);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4564 g_list_free(convs);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4565 gtk_widget_show_all(menu);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4566 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
4567 gtk_get_current_event_time());
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4568 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4569
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4570 static gboolean
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4571 menutray_press_cb(GtkWidget *widget, GdkEventButton *event)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4572 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4573 GList *convs;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4574
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4575 switch (event->button) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4576 case 1:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4577 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
4578 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
4579
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4580 if(!convs)
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4581 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
4582 PIDGIN_UNSEEN_NICK, FALSE, 1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4583 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
4584 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
4585 g_list_free(convs);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4586 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4587 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4588 case 3:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4589 unseen_conv_menu();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4590 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4591 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4592 return TRUE;
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 void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4596 conversation_updated_cb(PurpleConversation *conv, PurpleConvUpdateType type,
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4597 PidginBuddyList *gtkblist)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4598 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4599 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
4600 GList *ims, *chats;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4601 GList *l = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4602
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4603 if (type != PURPLE_CONV_UPDATE_UNSEEN)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4604 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4605
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4606 if(conv->account != NULL && conv->name != NULL) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4607 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
4608 if(buddy != NULL)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4609 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
4610 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4611
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4612 if (gtkblist->menutrayicon) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4613 gtk_widget_destroy(gtkblist->menutrayicon);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4614 gtkblist->menutrayicon = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4615 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4616
20960
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4617 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
4618 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
4619
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4620 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
4621 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
4622
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4623 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
4624 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
4625 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
4626 convs = ims;
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4627 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
4628 convs = chats;
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4629
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4630 if (convs) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4631 GtkWidget *img = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4632 GString *tooltip_text = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4633
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4634 tooltip_text = g_string_new("");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4635 l = convs;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4636 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
4637 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
4638 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
4639
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4640 if(gtkconv)
f9d1e6b138a7 Make the docklet and buddy list menutray agree on unread messages. Both
Casey Harkins <charkins@pidgin.im>
parents: 20937
diff changeset
4641 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
4642 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
4643 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
4644
19899
25f4be036a16 Make changes in the buddylist menutray icon for hidden conversations to work
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19895
diff changeset
4645 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
4646 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
4647 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
4648 l = l->next;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4649 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4650 if(tooltip_text->len > 0) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4651 /* get rid of the last newline */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4652 g_string_truncate(tooltip_text, tooltip_text->len -1);
15632
a830f9756f23 Some more pidgininfication
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15615
diff changeset
4653 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
4654 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
4655
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4656 gtkblist->menutrayicon = gtk_event_box_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4657 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
4658 gtk_widget_show(img);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4659 gtk_widget_show(gtkblist->menutrayicon);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4660 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
4661
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4662 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
4663 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4664 g_string_free(tooltip_text, TRUE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4665 g_list_free(convs);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4666 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4667 }
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 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4670 conversation_deleting_cb(PurpleConversation *conv, PidginBuddyList *gtkblist)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4671 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4672 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
4673 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4674
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
4675 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
4676 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
4677 {
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
4678 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
4679 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
4680 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
4681 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
4682 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
4683 }
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
4684
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
4685 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
4686 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
4687 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
4688 {
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
4689 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
4690 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
4691 !(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
4692 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
4693 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
4694 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
4695 && (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
4696 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
4697
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
4698 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
4699 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
4700 }
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
4701
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
4702 static void
21772
21371ea85970 Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21771
diff changeset
4703 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
4704 {
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
4705 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
4706 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
4707 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
4708 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
4709 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
4710 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
4711 }
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
4712
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
4713 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
4714 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
4715 {
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
4716 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
4717 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
4718 {
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
4719 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
4720 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
4721 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
4722 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
4723 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
4724 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
4725 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
4726 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
4727 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
4728 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
4729 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
4730 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
4731 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
4732 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
4733 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
4734 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
4735 }
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
4736 }
21772
21371ea85970 Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21771
diff changeset
4737 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
4738 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
4739 {
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
4740 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
4741 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
4742 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
4743 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
4744 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
4745 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
4746 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
4747 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
4748 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
4749 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
4750 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
4751 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
4752 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
4753 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
4754 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
4755 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
4756 }
21772
21371ea85970 Fix boldifying the chat entries in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21771
diff changeset
4757 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
4758 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
4759 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
4760 }
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
4761 }
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
4762
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4763 /**********************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4764 * Public API Functions *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4765 **********************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4766
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4767 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
4768 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4769 PidginBuddyList *gtkblist;
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4770
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4771 gtkblist = g_new0(PidginBuddyList, 1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4772 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
4773 g_direct_equal, NULL, g_free);
22108
e21cdaffbcdb Plug a small leak.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22087
diff changeset
4774 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
4775
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4776 blist->ui_data = gtkblist;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4777 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4778
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4779 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
4780 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4781 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
4782 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4783
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4784 gboolean pidgin_blist_node_is_contact_expanded(PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4785 {
17830
0e445e906cfd Fix pidgin_blist_node_is_contact_expanded() to not crash on buddy list
Stu Tomlinson <stu@nosnilmot.com>
parents: 17789
diff changeset
4786 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
4787 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
4788 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
4789 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
4790 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4791
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4792 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
4793
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4794 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
4795 }
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 enum {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4798 DRAG_BUDDY,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4799 DRAG_ROW,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4800 DRAG_VCARD,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4801 DRAG_TEXT,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4802 DRAG_URI,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4803 NUM_TARGETS
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4806 static const char *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4807 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
4808 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4809 return _((char *)path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4810 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4811
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4812 void pidgin_blist_setup_sort_methods()
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4813 {
27721
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4814 const char *id;
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4815
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4816 pidgin_blist_sort_method_reg("none", _("Manually"), sort_method_none);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4817 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
4818 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
4819 pidgin_blist_sort_method_reg("log_size", _("By recent log activity"), sort_method_log_activity);
27721
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4820
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4821 id = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/sort_type");
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4822 if (id == NULL) {
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4823 purple_debug_warning("gtkblist", "Sort method was NULL, resetting to alphabetical\n");
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4824 id = "alphabetical";
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4825 }
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
4826 pidgin_blist_sort_method_set(id);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4827 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4828
22011
76e0463db3aa Squash some compiler warnings, some from my -Wstrict-prototypes fixing.
Richard Laager <rlaager@wiktel.com>
parents: 22007
diff changeset
4829 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
4830 gconstpointer val, gpointer data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4831 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4832 GtkTreeSelection *sel;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4833 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4834 PurpleBlistNode *node = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4835
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4836 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
4837 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
4838 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4839 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
4840 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4841
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4842 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
4843 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
4844
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4845 if (node)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4846 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4847 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4848 GtkTreePath *path;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4849
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4850 gtknode = node->ui_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4851 if (gtknode && gtknode->row)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4852 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4853 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
4854 gtk_tree_selection_select_path(sel, path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4855 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
4856 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4857 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4858 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4859 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4860
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4861 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
4862 gconstpointer val, gpointer data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4863 {
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
4864 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
4865 pidgin_blist_sort_method_set(val);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4866 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4867
21583
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4868 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
4869 {
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4870 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
4871 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
4872 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
4873 PidginBuddyListPrivate *priv;
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4874
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4875 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
4876
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4877 /* 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
4878 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
4879 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
4880 }
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
4881 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
4882 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
4883 g_list_free(list);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4884 } else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4885 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
4886
21583
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4887 return FALSE;
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4888 }
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4889
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4890 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
4891 {
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4892 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
4893 }
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4894
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4895 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
4896 {
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4897 if (!gtkblist)
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4898 return;
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4899
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4900 pidgin_blist_select_notebook_page(gtkblist);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4901 update_menu_bar(gtkblist);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4902 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4903
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4904 static void
26776
83e6e710cbf3 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <paul@darkrain42.org>
parents: 26719
diff changeset
4905 account_actions_changed(PurpleAccount *account, gpointer data)
83e6e710cbf3 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <paul@darkrain42.org>
parents: 26719
diff changeset
4906 {
83e6e710cbf3 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <paul@darkrain42.org>
parents: 26719
diff changeset
4907 pidgin_blist_update_accounts_menu();
83e6e710cbf3 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <paul@darkrain42.org>
parents: 26719
diff changeset
4908 }
83e6e710cbf3 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <paul@darkrain42.org>
parents: 26719
diff changeset
4909
83e6e710cbf3 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <paul@darkrain42.org>
parents: 26719
diff changeset
4910 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4911 account_status_changed(PurpleAccount *account, PurpleStatus *old,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
4912 PurpleStatus *new, PidginBuddyList *gtkblist)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4913 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4914 if (!gtkblist)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4915 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4916
21583
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
4917 account_modified(account, gtkblist);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4918 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4919
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4920 static gboolean
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4921 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
4922 {
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
4923 GtkWidget *widget;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4924
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4925 if (!gtkblist)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4926 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4927
25103
33ceb2b708cf Close the tooltip window on a keypress event. Fixes #8150.
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 25076
diff changeset
4928 /* clear any tooltips */
33ceb2b708cf Close the tooltip window on a keypress event. Fixes #8150.
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 25076
diff changeset
4929 pidgin_blist_tooltip_destroy();
33ceb2b708cf Close the tooltip window on a keypress event. Fixes #8150.
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 25076
diff changeset
4930
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
4931 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
4932
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
4933 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
4934 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
4935 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
4936 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4937 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4938 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4939
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4940 static gboolean
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4941 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
4942 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4943 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
4944 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4945 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4946
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4947 static gboolean
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4948 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
4949 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4950 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
4951 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4952 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4953
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4954 static void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4955 reset_headline(PidginBuddyList *gtkblist)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4956 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4957 gtkblist->headline_callback = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4958 gtkblist->headline_data = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4959 gtkblist->headline_destroy = NULL;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4960 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
4961 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4962
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4963 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
4964 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
4965 {
84dc71e67a72 Fix a null pointer deref (hopefully). I haven't been able to consistently
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22646
diff changeset
4966 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
4967 ((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
4968 reset_headline(gtkblist);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4969 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4970 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4971
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4972 static gboolean
30016
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
4973 headline_close_press_cb(GtkButton *button, PidginBuddyList *gtkblist)
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
4974 {
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
4975 gtk_widget_hide(gtkblist->headline_hbox);
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
4976 return FALSE;
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
4977 }
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
4978
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
4979 static gboolean
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
4980 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
4981 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4982 gtk_widget_hide(gtkblist->headline_hbox);
30016
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
4983 if (gtkblist->headline_callback)
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
4984 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
4985 else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4986 if (gtkblist->headline_destroy)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4987 gtkblist->headline_destroy(gtkblist->headline_data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4988 reset_headline(gtkblist);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4989 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4990 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4991 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4992
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4993 /***********************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4994 /* Connection error handling stuff */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4995 /***********************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4996
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
4997 #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
4998 #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
4999
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
5000 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
5001 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
5002 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
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 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
5005 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
5006 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
5007 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
5008 }
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
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5010 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
5011 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
5012 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
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 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
5015 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
5016
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 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
5018 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
5019 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
5020 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
5021
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
5022 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
5023 }
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
5024 }
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
5025
21401
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5026 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
5027 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
5028 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
5029 {
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5030 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
5031 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
5032 }
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5033
21410
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5034 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
5035 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
5036 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
5037 {
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5038 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
5039 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
5040 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
5041 /* 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
5042 if (PIDGIN_IS_SCROLL_BOOK(container))
21622
1c139f0493b9 Squish a compile warning
Stu Tomlinson <stu@nosnilmot.com>
parents: 21618
diff changeset
5043 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
5044 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
5045 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
5046 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
5047 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
5048 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
5049 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
5050 }
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5051
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5052 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
5053 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
5054 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
5055 {
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5056 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
5057 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
5058 /* 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
5059 * 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
5060 */
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
5061 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
5062 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
5063 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
5064 }
21401
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5065 }
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5066
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
5067 /* 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
5068
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5069 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
5070 generic_error_modify_cb(PurpleAccount *account)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5071 {
21583
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
5072 purple_account_clear_current_error(account);
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
5073 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
5074 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5075
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5076 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
5077 generic_error_enable_cb(PurpleAccount *account)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5078 {
21583
21cbdaf265f6 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <stu@nosnilmot.com>
parents: 21582
diff changeset
5079 purple_account_clear_current_error(account);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5080 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
5081 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5082
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5083 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
5084 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
5085 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
5086 {
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
5087 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
5088 /* 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
5089 * 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
5090 * 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
5091 */
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
5092 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
5093 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
5094 }
a62b60a5745d * When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents: 21378
diff changeset
5095
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
5096 #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
5097
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
5098 static void
25986
c0115655a94e I have no idea how we've gone nearly 16 months with no one noticing that the
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 25454
diff changeset
5099 ssl_faq_clicked_cb(PidginMiniDialog *mini_dialog,
c0115655a94e I have no idea how we've gone nearly 16 months with no one noticing that the
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 25454
diff changeset
5100 GtkButton *button,
c0115655a94e I have no idea how we've gone nearly 16 months with no one noticing that the
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 25454
diff changeset
5101 gpointer ignored)
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
5102 {
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
5103 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
5104 }
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
5105
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
5106 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
5107 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
5108 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
5109 {
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 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
5111 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
5112 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
5113 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
5114 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
5115
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
5116 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
5117 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
5118 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
5119 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
5120
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
5121 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
5122 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
5123 (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
5124 (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
5125 : 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
5126 _("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
5127 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
5128
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5129 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
5130
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
5131 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
5132 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
5133
25986
c0115655a94e I have no idea how we've gone nearly 16 months with no one noticing that the
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 25454
diff changeset
5134 if(err->type == PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT)
31893
1551c9a140fd Finally merged the code that fixes #5038 to i.p.p.
ivan.komarov@pidgin.im
parents: 31852
diff changeset
5135 pidgin_mini_dialog_add_non_closing_button(PIDGIN_MINI_DIALOG(mini_dialog),
25986
c0115655a94e I have no idea how we've gone nearly 16 months with no one noticing that the
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 25454
diff changeset
5136 _("SSL FAQs"), ssl_faq_clicked_cb, NULL);
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
5137
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
5138 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
5139 (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
5140 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
5141
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
5142 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
5143 }
a62b60a5745d * When an account error changes, just recreate its button rather than every
Will Thompson <will.thompson@collabora.co.uk>
parents: 21378
diff changeset
5144
21373
cbf197042bad Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21369
diff changeset
5145 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
5146 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
5147 {
21401
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5148 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
5149 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
5150 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
5151 }
5c26dc790c71 Break creating and removing generic error boxes by account into their own
Will Thompson <will.thompson@collabora.co.uk>
parents: 21382
diff changeset
5152
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
5153
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
5154 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
5155 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
5156 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
5157 {
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
5158 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
5159 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
5160 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
5161 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
5162 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
5163 }
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
5164
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
5165
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
5166 /* 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
5167 * 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
5168 */
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
5169
21410
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5170 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
5171
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
5172 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
5173 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
5174 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
5175 {
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5176 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
5177 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
5178 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
5179 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
5180
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5181 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
5182 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
5183 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
5184 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
5185 else
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5186 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
5187 "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
5188 }
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5189 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
5190 }
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
5191
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
5192 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
5193 enable_account(PurpleAccount *account)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5194 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5195 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
5196 }
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 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
5199 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
5200 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
5201 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
5202 {
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5203 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
5204 }
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5205
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5206 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
5207 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
5208 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
5209 {
45d1e229fadd Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents: 21781
diff changeset
5210 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
5211 }
45d1e229fadd Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents: 21781
diff changeset
5212
45d1e229fadd Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents: 21781
diff changeset
5213 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
5214 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
5215 {
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
5216 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
5217 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
5218
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5219 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
5220 return;
21618
85fc97ffe538 Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21583
diff changeset
5221
21410
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5222 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
5223 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
5224
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5225 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
5226 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
5227
21845
45d1e229fadd Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents: 21781
diff changeset
5228 /* 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
5229 * 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
5230 */
45d1e229fadd Dismissing the signed on elsewhere minidialog should clear all the errors;
Will Thompson <will.thompson@collabora.co.uk>
parents: 21781
diff changeset
5231 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
5232 (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
5233
21410
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5234 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
5235
b089fd1ad059 Hide the description label of the PidginMiniDialog used for signed on elsewhere
Will Thompson <will.thompson@collabora.co.uk>
parents: 21410
diff changeset
5236 /* 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
5237 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
5238 (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
5239 }
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
5240
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
5241 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
5242 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
5243 {
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
5244 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
5245 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
5246 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
5247 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
5248
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5249 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
5250 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
5251
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5252 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
5253 if (accounts == 0) {
85fc97ffe538 Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21583
diff changeset
5254 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
5255 return;
85fc97ffe538 Workarounds to fix some issues with the minidialog and scrollbook.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21583
diff changeset
5256 }
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
5257
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
5258 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
5259 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
5260 "%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
5261 accounts),
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5262 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
5263 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
5264 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
5265 }
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
5266
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
5267 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
5268 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
5269 {
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
5270 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
5271 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
5272 char *markup;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5273
17044
c28f4593f723 Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@gmail.com>
parents: 17042
diff changeset
5274 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
5275 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
5276
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
5277 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
5278
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
5279 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
5280 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
5281 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
5282 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
5283 gtk_misc_set_alignment(GTK_MISC(label), 0, 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
5284 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
5285 #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
5286 { /* 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
5287 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
5288 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
5289 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
5290 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
5291 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5292 #endif
17044
c28f4593f723 Pack connection error buttons the same way the statusbox is. Fixes #120
Sean Egan <seanegan@gmail.com>
parents: 17042
diff changeset
5293 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
5294
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
5295 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
5296 }
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
5297
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
5298 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
5299 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
5300 {
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
5301 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
5302 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
5303 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
5304
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5305 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
5306 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
5307
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5308 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
5309 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
5310
21410
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5311 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
5312 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
5313 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
5314
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
5315 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
5316 }
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
5317
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
5318 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
5319 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
5320 {
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
5321 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
5322 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
5323 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
5324 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
5325
21410
4ccc4ad0a8b0 Use PidginMiniDialog to display signed in elsewhere errors in the blist.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21401
diff changeset
5326 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
5327
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
5328 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
5329 }
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
5330
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
5331
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
5332 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
5333 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
5334 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
5335 {
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
5336 #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
5337 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
5338 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
5339 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
5340 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
5341 #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
5342 }
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
5343
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
5344
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
5345 /* 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
5346 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
5347 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
5348 const PurpleConnectionErrorInfo *old,
c1033e943d2a The two PurpleConnectionErrorInfo parameters are meant to be const.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21377
diff changeset
5349 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
5350 PidginBuddyList *gtkblist)
cbf197042bad Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21369
diff changeset
5351 {
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
5352 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
5353 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
5354
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
5355 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
5356 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
5357
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
5358 /* 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
5359 if (new)
cbf197042bad Add the old error to the account-error-changed signal.
Will Thompson <will.thompson@collabora.co.uk>
parents: 21369
diff changeset
5360 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
5361 else
318b3f5d1516 Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents: 21368
diff changeset
5362 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
5363
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
5364 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
5365 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
5366
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
5367 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
5368 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
5369 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
5370 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
5371 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
5372 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
5373 }
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
5374
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
5375 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
5376 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
5377 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
5378 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
5379 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
5380 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
5381 }
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
5382
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
5383 /* 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
5384
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
5385 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
5386 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
5387
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
5388 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
5389 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
5390 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
5391 && 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
5392 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
5393 } 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
5394 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
5395 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
5396 }
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
5397 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
5398 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
5399 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
5400 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
5401 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
5402 } 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
5403 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
5404 }
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
5405 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
5406 }
21369
318b3f5d1516 Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents: 21368
diff changeset
5407 }
318b3f5d1516 Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents: 21368
diff changeset
5408
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
5409 /* 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
5410 * 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
5411 * 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
5412 */
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
5413 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
5414 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
5415 {
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
5416 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
5417 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
5418 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
5419
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
5420 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
5421 {
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
5422 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
5423 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
5424
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
5425 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
5426 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5427 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5428
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5429 void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5430 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
5431 {
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
5432 /* 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
5433 * 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
5434 */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5435 if (text == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5436 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
5437 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5438 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
5439 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5440
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5441 static gboolean
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5442 paint_headline_hbox (GtkWidget *widget,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5443 GdkEventExpose *event,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5444 gpointer user_data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5445 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5446 gtk_paint_flat_box (widget->style,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5447 widget->window,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5448 GTK_STATE_NORMAL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5449 GTK_SHADOW_OUT,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5450 NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5451 widget,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5452 "tooltip",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5453 widget->allocation.x + 1,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5454 widget->allocation.y + 1,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5455 widget->allocation.width - 2,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5456 widget->allocation.height - 2);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5457 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5458 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5459
15558
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5460 /* 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
5461 * 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
5462 */
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5463 static void
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5464 treeview_style_set (GtkWidget *widget,
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5465 GtkStyle *prev_style,
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5466 gpointer data)
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5467 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5468 PurpleBuddyList *list = data;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5469 PurpleBlistNode *node = list->root;
15558
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5470 while (node) {
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5471 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
5472 node = node->next;
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5473 }
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5474 }
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5475
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5476 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5477 headline_style_set (GtkWidget *widget,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5478 GtkStyle *prev_style)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5479 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5480 GtkTooltips *tooltips;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5481 GtkStyle *style;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5482
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5483 if (gtkblist->changing_style)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5484 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5485
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5486 tooltips = gtk_tooltips_new ();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5487 g_object_ref_sink (tooltips);
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 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
5490 #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
5491 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
5492 #endif
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5493 gtk_widget_ensure_style (tooltips->tip_window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5494 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
5495
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5496 gtkblist->changing_style = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5497 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
5498 gtkblist->changing_style = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5499
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5500 g_object_unref (tooltips);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5501 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5502
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5503 /******************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5504 /* End of connection error handling stuff */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5505 /******************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5506
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5507 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
5508 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
5509 {
5d833ca5a265 Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents: 22789
diff changeset
5510 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
5511 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
5512 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
5513 } else {
5d833ca5a265 Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents: 22789
diff changeset
5514 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
5515 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5516 return 0;
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 #if 0
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5520 static GtkWidget *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5521 kiosk_page()
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5522 {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
5523 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
5524 GtkWidget *label;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5525 GtkWidget *entry;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5526 GtkWidget *bbox;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5527 GtkWidget *button;
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 label = gtk_label_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5530 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
5531
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5532 label = gtk_label_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5533 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
5534 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
5535 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
5536 entry = gtk_entry_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5537 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
5538
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5539 label = gtk_label_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5540 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
5541 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
5542 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
5543 entry = gtk_entry_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5544 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
5545 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
5546
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5547 label = gtk_label_new(" ");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5548 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
5549
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5550 bbox = gtk_hbutton_box_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5551 button = gtk_button_new_with_mnemonic(_("_Login"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5552 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
5553 gtk_container_add(GTK_CONTAINER(bbox), button);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5554
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5555
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5556 label = gtk_label_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5557 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
5558
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
5559 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
5560
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5561 gtk_widget_show_all(ret);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5562 return ret;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5563 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5564 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5565
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5566 /* 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
5567 static void
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5568 pidgin_blist_build_layout(PurpleBuddyList *list)
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5569 {
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5570 GtkTreeViewColumn *column;
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5571 PidginBlistLayout *layout;
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5572 PidginBlistTheme *theme;
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5573 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
5574 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
5575
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5576
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5577 column = gtkblist->text_column;
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5578
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
5579 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
5580 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
5581 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
5582 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
5583 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
5584 buddy_icon = layout->buddy_icon;
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5585 }
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5586
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5587 gtk_tree_view_column_clear(column);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5588
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5589 /* group */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5590 rend = pidgin_cell_renderer_expander_new();
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5591 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
5592 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
5593 "visible", GROUP_EXPANDER_VISIBLE_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5594 "expander-visible", GROUP_EXPANDER_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5595 "sensitive", GROUP_EXPANDER_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5596 "cell-background-gdk", BGCOLOR_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5597 NULL);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5598
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5599 /* contact */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5600 rend = pidgin_cell_renderer_expander_new();
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5601 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
5602 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
5603 "visible", CONTACT_EXPANDER_VISIBLE_COLUMN,
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5604 "expander-visible", CONTACT_EXPANDER_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5605 "sensitive", CONTACT_EXPANDER_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5606 "cell-background-gdk", BGCOLOR_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5607 NULL);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5608
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5609 for (i = 0; i < 5; i++) {
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5610
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
5611 if (status_icon == i) {
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5612 /* status icons */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5613 rend = gtk_cell_renderer_pixbuf_new();
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5614 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
5615 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
5616 "pixbuf", STATUS_ICON_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5617 "visible", STATUS_ICON_VISIBLE_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5618 "cell-background-gdk", BGCOLOR_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5619 NULL);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5620 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
5621
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
5622 } else if (text == i) {
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5623 /* name */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5624 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
5625 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
5626 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
5627 "cell-background-gdk", BGCOLOR_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5628 "markup", NAME_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5629 NULL);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5630 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
5631 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
5632 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
5633 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
5634 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
5635
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5636 /* idle */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5637 rend = gtk_cell_renderer_text_new();
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5638 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
5639 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
5640 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
5641 "markup", IDLE_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5642 "visible", IDLE_VISIBLE_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5643 "cell-background-gdk", BGCOLOR_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5644 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
5645 } else if (emblem == i) {
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5646 /* emblem */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5647 rend = gtk_cell_renderer_pixbuf_new();
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5648 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
5649 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
5650 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
5651 "cell-background-gdk", BGCOLOR_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5652 "visible", EMBLEM_VISIBLE_COLUMN, NULL);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5653
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
5654 } else if (protocol_icon == i) {
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5655 /* protocol icon */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5656 rend = gtk_cell_renderer_pixbuf_new();
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5657 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
5658 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
5659 "pixbuf", PROTOCOL_ICON_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5660 "visible", PROTOCOL_ICON_VISIBLE_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5661 "cell-background-gdk", BGCOLOR_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5662 NULL);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5663 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
5664
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
5665 } else if (buddy_icon == i) {
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5666 /* buddy icon */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5667 rend = gtk_cell_renderer_pixbuf_new();
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5668 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
5669 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
5670 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
5671 "cell-background-gdk", BGCOLOR_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5672 "visible", BUDDY_ICON_VISIBLE_COLUMN,
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5673 NULL);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5674 }
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5675
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5676 }/* 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
5677
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5678 }
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5679
29312
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5680 static gboolean
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5681 pidgin_blist_search_equal_func(GtkTreeModel *model, gint column,
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5682 const gchar *key, GtkTreeIter *iter, gpointer data)
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5683 {
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5684 PurpleBlistNode *node = NULL;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5685 gboolean res = TRUE;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5686 const char *compare = NULL;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5687
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5688 if (!pidgin_tree_view_search_equal_func(model, column, key, iter, data))
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5689 return FALSE;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5690
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5691 /* If the search string does not match the displayed label, then look
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5692 * at the alternate labels for the nodes and search in them. Currently,
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5693 * alternate labels that make sense are usernames/email addresses for
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5694 * buddies (but only for the ones who don't have a local alias).
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5695 */
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5696
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5697 gtk_tree_model_get(model, iter, NODE_COLUMN, &node, -1);
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5698 if (!node)
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5699 return TRUE;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5700
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5701 compare = NULL;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5702 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5703 PurpleBuddy *b = purple_contact_get_priority_buddy(PURPLE_CONTACT(node));
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5704 if (!purple_buddy_get_local_buddy_alias(b))
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5705 compare = purple_buddy_get_name(b);
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5706 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5707 if (!purple_buddy_get_local_buddy_alias(PURPLE_BUDDY(node)))
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5708 compare = purple_buddy_get_name(PURPLE_BUDDY(node));
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5709 }
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5710
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5711 if (compare) {
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5712 char *tmp, *enteredstring;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5713 tmp = g_utf8_normalize(key, -1, G_NORMALIZE_DEFAULT);
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5714 enteredstring = g_utf8_casefold(tmp, -1);
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5715 g_free(tmp);
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5716
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5717 if (purple_str_has_prefix(compare, enteredstring))
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5718 res = FALSE;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5719 g_free(enteredstring);
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5720 }
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5721
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5722 return res;
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5723 }
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5724
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5725 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
5726 {
21401
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5727 PidginBuddyListPrivate *priv;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5728 void *handle;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5729 GtkTreeViewColumn *column;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5730 GtkWidget *menu;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5731 GtkWidget *ebox;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5732 GtkWidget *sep;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5733 GtkWidget *label;
30016
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
5734 GtkWidget *close;
16010
eae8e127e4fb make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16007
diff changeset
5735 char *pretty, *tmp;
26610
bd61f91e669a Fix assertion when the blist theme preference is empty.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26479
diff changeset
5736 const char *theme_name;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5737 GtkAccelGroup *accel_group;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5738 GtkTreeSelection *selection;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5739 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
5740 {"application/x-im-contact", 0, DRAG_BUDDY},
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5741 {"text/x-vcard", 0, DRAG_VCARD },
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5742 {"text/uri-list", 0, DRAG_URI},
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5743 {"text/plain", 0, DRAG_TEXT}};
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5744 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
5745 {"application/x-im-contact", 0, DRAG_BUDDY},
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5746 {"text/x-vcard", 0, DRAG_VCARD }};
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5747 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
5748 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
5749 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5750 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5751
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
5752 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
5753 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
5754
27073
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
5755 if (priv->current_theme)
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
5756 g_object_unref(priv->current_theme);
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
5757
26610
bd61f91e669a Fix assertion when the blist theme preference is empty.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26479
diff changeset
5758 theme_name = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/theme");
bd61f91e669a Fix assertion when the blist theme preference is empty.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26479
diff changeset
5759 if (theme_name && *theme_name)
27073
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
5760 priv->current_theme = g_object_ref(PIDGIN_BLIST_THEME(purple_theme_manager_find_theme(theme_name, "blist")));
26610
bd61f91e669a Fix assertion when the blist theme preference is empty.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26479
diff changeset
5761 else
bd61f91e669a Fix assertion when the blist theme preference is empty.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26479
diff changeset
5762 priv->current_theme = NULL;
23475
1242a922a4bc start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23395
diff changeset
5763
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
5764 gtkblist->empty_avatar = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 32, 32);
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
5765 gdk_pixbuf_fill(gtkblist->empty_avatar, 0x00000000);
15397
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
5766
17166
92c3c2eeba87 Added to gtkutils.c:
Gabriel Schulhof <nix@go-nix.ca>
parents: 17139
diff changeset
5767 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
5768 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
5769 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
5770 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
5771 G_CALLBACK(blist_focus_cb), gtkblist);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5772 GTK_WINDOW(gtkblist->window)->allow_shrink = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5773
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5774 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
5775 gtk_widget_show(gtkblist->main_vbox);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5776 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
5777
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5778 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
5779 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
5780 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
5781 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
5782 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
5783 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
5784
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5785 /******************************* Menu bar *************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5786 accel_group = gtk_accel_group_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5787 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
5788 g_object_unref(accel_group);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5789 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
5790 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
5791 (GtkTranslateFunc)item_factory_translate_func,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5792 NULL, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5793 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
5794 blist_menu, NULL);
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
5795 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
5796 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
5797
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
5798 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
5799 gtkblist->menutray = pidgin_menu_tray_new();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5800 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
5801 gtk_widget_show(gtkblist->menutray);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5802 gtk_widget_show(menu);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5803 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
5804
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5805 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
5806
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5807
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5808 /****************************** Notebook *************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5809 gtkblist->notebook = gtk_notebook_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5810 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
5811 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
5812 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
5813
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5814 #if 0
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5815 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
5816 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5817
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5818 /* 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
5819 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
5820
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5821 "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
5822 "<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
5823 "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
5824 "and talk to your friends."), PIDGIN_NAME);
eae8e127e4fb make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16007
diff changeset
5825 pretty = pidgin_make_pretty_arrows(tmp);
eae8e127e4fb make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 16007
diff changeset
5826 g_free(tmp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5827 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
5828 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
5829 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
5830 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
5831 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
5832 g_free(pretty);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5833 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
5834 gtkblist->vbox = gtk_vbox_new(FALSE, 0);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5835 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
5836 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
5837 pidgin_blist_select_notebook_page(gtkblist);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5838
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5839 ebox = gtk_event_box_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5840 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
5841 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
5842 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
5843 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
5844 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
5845 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
5846 gtkblist->headline_label = gtk_label_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5847 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
5848 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
5849 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
5850 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
5851 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
5852 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
5853 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
5854 "style-set",
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5855 G_CALLBACK(headline_style_set),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5856 NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5857 g_signal_connect (gtkblist->headline_hbox,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5858 "expose_event",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5859 G_CALLBACK (paint_headline_hbox),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5860 NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5861 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
5862
30017
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
5863 gtkblist->headline_close = gtk_widget_render_icon(ebox, GTK_STOCK_CLOSE,
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
5864 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
5865 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
5866 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
5867
30016
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
5868 /* Close button. */
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
5869 close = gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
30017
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
5870 close = pidgin_create_small_button(close);
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
5871 gtk_box_pack_start(GTK_BOX(gtkblist->headline_hbox), close, FALSE, FALSE, 0);
30016
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
5872 #if GTK_CHECK_VERSION(2,12,0)
30017
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
5873 gtk_widget_set_tooltip_text(close, _("Close"));
30016
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
5874 #endif
30017
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
5875 g_signal_connect(close, "clicked", G_CALLBACK(headline_close_press_cb), gtkblist);
30016
97005a2e99d7 Use a small GtkButton instead of the custom "X" for close in various
Kosta Arvanitis <karvanitis@hotmail.com>
parents: 29991
diff changeset
5876
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5877 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
5878 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
5879 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
5880
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5881 /****************************** GtkTreeView **********************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5882 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
5883 GDK_TYPE_PIXBUF, /* Status icon */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5884 G_TYPE_BOOLEAN, /* Status icon visible */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5885 G_TYPE_STRING, /* Name */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5886 G_TYPE_STRING, /* Idle */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5887 G_TYPE_BOOLEAN, /* Idle visible */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5888 GDK_TYPE_PIXBUF, /* Buddy icon */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5889 G_TYPE_BOOLEAN, /* Buddy icon visible */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5890 G_TYPE_POINTER, /* Node */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5891 GDK_TYPE_COLOR, /* bgcolor */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5892 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
5893 G_TYPE_BOOLEAN, /* Group expander visible */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5894 G_TYPE_BOOLEAN, /* Contact expander */
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
5895 G_TYPE_BOOLEAN, /* Contact expander visible */
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
5896 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
5897 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
5898 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
5899 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
5900 );
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5901
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5902 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
5903
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5904 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
5905 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
5906
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5907 g_signal_connect(gtkblist->treeview,
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5908 "style-set",
0324f69112f9 Make group background colors update when the theme changes.
Sean Egan <seanegan@gmail.com>
parents: 15553
diff changeset
5909 G_CALLBACK(treeview_style_set), list);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5910 /* Set up selection stuff */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5911 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
5912 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
5913
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5914 /* Set up dnd */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5915 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
5916 GDK_BUTTON1_MASK, ste, 3,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5917 GDK_ACTION_COPY);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5918 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
5919 dte, 5,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5920 GDK_ACTION_COPY | GDK_ACTION_MOVE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5921
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
5922 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
5923 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
5924 #ifdef _WIN32
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
5925 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
5926 #endif
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
5927 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
5928 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
5929 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
5930
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5931 /* 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
5932 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
5933 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
5934 pidgin_blist_paint_tip);
15374
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 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
5937
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5938 /* expander columns */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5939 column = gtk_tree_view_column_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5940 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
5941 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
5942 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
5943
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5944 /* everything else column */
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
5945 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
5946 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
5947 pidgin_blist_build_layout(list);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5948
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5949 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
5950 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
5951 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
5952 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
5953 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
5954 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
5955
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5956 /* Enable CTRL+F searching */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5957 gtk_tree_view_set_search_column(GTK_TREE_VIEW(gtkblist->treeview), NAME_COLUMN);
29312
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5958 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(gtkblist->treeview),
fff8cf8459c4 Search friends by email addresses in the buddylist.
Luoh Ren-Shan <lcamel@gmail.com>
parents: 29309
diff changeset
5959 pidgin_blist_search_equal_func, NULL, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5960
31816
917c597beb97 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31544
diff changeset
5961 gtk_box_pack_start(GTK_BOX(gtkblist->vbox),
917c597beb97 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31544
diff changeset
5962 pidgin_make_scrollable(gtkblist->treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_NONE, -1, -1),
917c597beb97 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31544
diff changeset
5963 TRUE, TRUE, 0);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5964
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5965 sep = gtk_hseparator_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5966 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
5967
15514
535f002e7b0f More pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15510
diff changeset
5968 gtkblist->scrollbook = pidgin_scroll_book_new();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5969 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
5970
21401
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5971 /* 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
5972 * 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
5973 * 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
5974 */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5975 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
5976 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
5977 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
5978
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
5979 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
5980 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
5981 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
5982
c1c7e28223f8 Display all connection errors in a scrollbook, which is packed inside
Will Thompson <will.thompson@collabora.co.uk>
parents: 21400
diff changeset
5983
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5984 /* Add the statusbox */
15514
535f002e7b0f More pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15510
diff changeset
5985 gtkblist->statusbox = pidgin_status_box_new();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5986 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
5987 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
5988 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
5989 gtk_widget_show(gtkblist->statusbox);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5990
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5991 /* 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
5992 * 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
5993 */
19611
ce971cf20f08 More typos.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19608
diff changeset
5994 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
5995 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
5996
19611
ce971cf20f08 More typos.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19608
diff changeset
5997 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
5998 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
5999
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6000 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
6001 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
6002
19611
ce971cf20f08 More typos.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19608
diff changeset
6003 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
6004 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
6005
19611
ce971cf20f08 More typos.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19608
diff changeset
6006 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
6007 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
6008
19611
ce971cf20f08 More typos.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19608
diff changeset
6009 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
6010 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
6011
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
6012 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
6013 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
6014
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6015 /* Update some dynamic things */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6016 update_menu_bar(gtkblist);
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6017 pidgin_blist_update_plugin_actions();
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6018 pidgin_blist_update_sort_methods();
15374
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 /* OK... let's show this bad boy. */
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6021 pidgin_blist_refresh(list);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6022 pidgin_blist_restore_position();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6023 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
6024 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
6025 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
6026
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6027 /* start the refresh timer */
26613
b162300ab1e7 A patch from Arunan Balasubramaniam to use timeouts in seconds instead of
foss@abala.me
parents: 26610
diff changeset
6028 gtkblist->refresh_timer = purple_timeout_add_seconds(30, (GSourceFunc)pidgin_blist_refresh_timer, list);
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6029
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6030 handle = pidgin_blist_get_handle();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6031
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6032 /* 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
6033 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
6034 _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
6035 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
6036 _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
6037 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
6038 _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
6039 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
6040 _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
6041 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
6042 _prefs_change_redo_list, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6043
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6044 /* 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
6045 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
6046 _prefs_change_sort_method, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6047
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6048 /* 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
6049 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
6050 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
6051 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
6052 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
6053
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6054 /* 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
6055
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6056 handle = purple_accounts_get_handle();
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6057 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
6058 PURPLE_CALLBACK(account_modified), gtkblist);
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6059 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
6060 PURPLE_CALLBACK(account_modified), gtkblist);
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6061 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
6062 PURPLE_CALLBACK(account_modified), gtkblist);
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6063 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
6064 PURPLE_CALLBACK(account_status_changed),
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6065 gtkblist);
21369
318b3f5d1516 Call pidgin_blist_update_account_error_state in response to
Will Thompson <will.thompson@collabora.co.uk>
parents: 21368
diff changeset
6066 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
6067 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
6068 gtkblist);
26776
83e6e710cbf3 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <paul@darkrain42.org>
parents: 26719
diff changeset
6069 purple_signal_connect(handle, "account-actions-changed", gtkblist,
83e6e710cbf3 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <paul@darkrain42.org>
parents: 26719
diff changeset
6070 PURPLE_CALLBACK(account_actions_changed), NULL);
21368
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6071
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6072 handle = pidgin_account_get_handle();
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6073 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
6074 PURPLE_CALLBACK(account_modified), gtkblist);
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6075
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6076 handle = purple_connections_get_handle();
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6077 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
6078 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
6079 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
6080 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
6081
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6082 handle = purple_plugins_get_handle();
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6083 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
6084 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
6085 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
6086 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
6087
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6088 handle = purple_conversations_get_handle();
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6089 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
6090 PURPLE_CALLBACK(conversation_updated_cb),
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6091 gtkblist);
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6092 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
6093 PURPLE_CALLBACK(conversation_deleting_cb),
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6094 gtkblist);
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6095 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
6096 PURPLE_CALLBACK(conversation_created_cb),
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6097 gtkblist);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6098
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6099 gtk_widget_hide(gtkblist->headline_hbox);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6100
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
6101 show_initial_account_errors(gtkblist);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6102
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6103 /* emit our created signal */
21368
089fc89b6996 Remove repeated calls to purple_*_get_handle().
Will Thompson <will.thompson@collabora.co.uk>
parents: 21244
diff changeset
6104 handle = pidgin_blist_get_handle();
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6105 purple_signal_emit(handle, "gtkblist-created", list);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6106 }
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6107
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6108 static void redo_buddy_list(PurpleBuddyList *list, gboolean remove, gboolean rerender)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6109 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6110 PurpleBlistNode *node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6111
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6112 gtkblist = PIDGIN_BLIST(list);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6113 if(!gtkblist || !gtkblist->treeview)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6114 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6115
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6116 node = list->root;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6117
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6118 while (node)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6119 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6120 /* 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
6121 * 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
6122 */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6123 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
6124 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
6125
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6126 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6127 pidgin_blist_update_buddy(list, node, rerender);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6128 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
6129 pidgin_blist_update(list, node);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6130 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
6131 pidgin_blist_update(list, node);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6132 node = purple_blist_node_next(node, FALSE);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6133 }
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6134
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6135 }
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6136
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6137 void pidgin_blist_refresh(PurpleBuddyList *list)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6138 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6139 redo_buddy_list(list, FALSE, TRUE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6140 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6141
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6142 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6143 pidgin_blist_update_refresh_timeout()
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6144 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6145 PurpleBuddyList *blist;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6146 PidginBuddyList *gtkblist;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6147
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6148 blist = purple_get_blist();
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6149 gtkblist = PIDGIN_BLIST(purple_get_blist());
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6150
26613
b162300ab1e7 A patch from Arunan Balasubramaniam to use timeouts in seconds instead of
foss@abala.me
parents: 26610
diff changeset
6151 gtkblist->refresh_timer = purple_timeout_add_seconds(30,(GSourceFunc)pidgin_blist_refresh_timer, blist);
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
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6154 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
6155 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
6156 GtkTreePath *path;
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 if (!gtknode) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6159 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6160 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6161
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6162 if (!gtkblist) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6163 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
6164 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6165 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6166
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6167 if (!gtknode->row)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6168 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6169
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 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
6172 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6173
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6174 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
6175 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6176 return FALSE;
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 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6179 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6180 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6181
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6182 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
6183 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6184 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
6185
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6186 purple_request_close_with_handle(node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6187
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6188 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
6189
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6190 if(node->parent)
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6191 pidgin_blist_update(list, node->parent);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6192
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6193 /* 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
6194 /* 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
6195 * 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
6196 * 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
6197 * comment it out again. Stu */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6198 /* 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
6199 * contacts, the dragged buddy mysteriously 'disappears'. Stu. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6200 /* I think it's fixed now. Stu. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6201
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6202 if(gtknode) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6203 if(gtknode->recent_signonoff_timer > 0)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6204 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
6205
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
6206 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
6207 g_free(node->ui_data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6208 node->ui_data = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6209 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6210 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6211
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6212 static gboolean do_selection_changed(PurpleBlistNode *new_selection)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6213 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6214 PurpleBlistNode *old_selection = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6215
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6216 /* 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
6217 if (gtkblist && new_selection != gtkblist->selected_node) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6218 old_selection = gtkblist->selected_node;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6219 gtkblist->selected_node = new_selection;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6220 if(new_selection)
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6221 pidgin_blist_update(NULL, new_selection);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6222 if(old_selection)
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6223 pidgin_blist_update(NULL, old_selection);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6224 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6225
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6226 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6227 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6228
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6229 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
6230 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6231 PurpleBlistNode *new_selection = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6232 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6233
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6234 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
6235 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
6236 NODE_COLUMN, &new_selection, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6237 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6238
17674
0e4a789cd027 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents: 17488
diff changeset
6239 /* 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
6240 * 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
6241 * 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
6242 */
0e4a789cd027 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents: 17488
diff changeset
6243 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
6244 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
6245 } else {
0e4a789cd027 We use a timeout in our blist selection changed callback to prevent buddy
Stu Tomlinson <stu@nosnilmot.com>
parents: 17488
diff changeset
6246 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
6247 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6248 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6249
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6250 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
6251 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6252 GtkTreeIter parent_iter, cur, *curptr = NULL;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6253 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
6254 GtkTreePath *newpath;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6255
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6256 if(!iter)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6257 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6258
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6259 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
6260 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6261
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6262 if(get_iter_from_node(node, &cur))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6263 curptr = &cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6264
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6265 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
6266 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
6267 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6268 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
6269 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6270
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6271 if(gtknode != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6272 gtk_tree_row_reference_free(gtknode->row);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6273 } else {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6274 pidgin_blist_new_node(node);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6275 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
6276 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6277
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6278 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
6279 iter);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6280 gtknode->row =
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6281 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
6282 newpath);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6283
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6284 gtk_tree_path_free(newpath);
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 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
6288 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
6289 -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6290
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6291 if(node->parent) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6292 GtkTreePath *expand = NULL;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6293 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
6294
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6295 if(PURPLE_BLIST_NODE_IS_GROUP(node->parent)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6296 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
6297 expand = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent_iter);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6298 } 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
6299 gtkparentnode->contact_expanded) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6300 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
6301 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6302 if(expand) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6303 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
6304 gtk_tree_path_free(expand);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6305 }
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6308 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6309 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6310
21582
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6311 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
6312 {
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6313 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
6314
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6315 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
6316 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
6317 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
6318 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
6319 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
6320 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
6321 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
6322 return TRUE;
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6323 }
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6324 }
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6325 }
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6326 return FALSE;
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6327 }
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6328
23158
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
6329 /* 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
6330 * 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
6331 */
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
6332 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
6333 PurpleBlistNode *node)
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
6334 {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
6335 gint count;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6336 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
6337 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
6338 gboolean show = FALSE, show_offline = FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6339
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6340 g_return_if_fail(node != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6341
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
6342 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
6343 return;
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
6344
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6345 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
6346 gnode = node;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6347 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
6348 gnode = node->parent->parent;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6349 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
6350 gnode = node->parent;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6351 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6352 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6353
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6354 group = (PurpleGroup*)gnode;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6355
21582
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6356 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
6357
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6358 if(show_offline)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6359 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
6360 else
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6361 count = purple_blist_get_group_online_count(group);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6362
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
6363 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
6364 show = TRUE;
27112
005d20d58ac7 Patch to change around some logic that should fix missing buddies that are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27111
diff changeset
6365 else if (PURPLE_BLIST_NODE_IS_BUDDY(node) && buddy_is_displayable((PurpleBuddy*)node)) { /* Or chat? */
005d20d58ac7 Patch to change around some logic that should fix missing buddies that are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27111
diff changeset
6366 show = TRUE;
005d20d58ac7 Patch to change around some logic that should fix missing buddies that are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27111
diff changeset
6367 } else if (!show_offline) {
21582
b00659aa0acf Fix showing groups that contain offline buddies that have the "Show when
Stu Tomlinson <stu@nosnilmot.com>
parents: 21560
diff changeset
6368 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
6369 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6370
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6371 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
6372 gchar *title;
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
6373 gboolean biglist;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6374 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6375 GtkTreePath *path;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6376 gboolean expanded;
23481
fc3600ba68f1 fixed group coloring
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23480
diff changeset
6377 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
6378 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
6379 PidginBlistTheme *theme = NULL;
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 if(!insert_node(list, gnode, &iter))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6382 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6383
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
6384 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
6385 bgcolor = NULL;
23481
fc3600ba68f1 fixed group coloring
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23480
diff changeset
6386 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
6387 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
6388 else
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
6389 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
6390
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6391 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
6392 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
6393 gtk_tree_path_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6394
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15738
diff changeset
6395 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
6396 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
6397
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
6398 if (biglist) {
da5d1ecc5c20 Add support for setting and removing custom buddy icons to contacts, chats,
Etan Reisner <pidgin@unreliablesource.net>
parents: 23131
diff changeset
6399 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
6400 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6401
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6402 gtk_tree_store_set(gtkblist->treemodel, &iter,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6403 STATUS_ICON_VISIBLE_COLUMN, FALSE,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6404 STATUS_ICON_COLUMN, NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6405 NAME_COLUMN, title,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6406 NODE_COLUMN, gnode,
23481
fc3600ba68f1 fixed group coloring
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23480
diff changeset
6407 BGCOLOR_COLUMN, bgcolor,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6408 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
6409 GROUP_EXPANDER_VISIBLE_COLUMN, TRUE,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6410 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
6411 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
6412 BUDDY_ICON_VISIBLE_COLUMN, biglist,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6413 IDLE_VISIBLE_COLUMN, FALSE,
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
6414 EMBLEM_VISIBLE_COLUMN, FALSE,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6415 -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6416 g_free(title);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6417 } else {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6418 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
6419 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6420 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6421
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6422 static char *pidgin_get_group_title(PurpleBlistNode *gnode, gboolean expanded)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6423 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6424 PurpleGroup *group;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6425 gboolean selected;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6426 char group_count[12] = "";
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6427 char *mark, *esc;
18309
c50e960e7086 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents: 18285
diff changeset
6428 PurpleBlistNode *selected_node = NULL;
c50e960e7086 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents: 18285
diff changeset
6429 GtkTreeIter iter;
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6430 PidginThemeFont *pair;
26636
548871664d3b PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents: 26613
diff changeset
6431 gchar const *text_color, *text_font;
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
6432 PidginBlistTheme *theme;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6433
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6434 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
6435
18309
c50e960e7086 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents: 18285
diff changeset
6436 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
6437 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
6438 NODE_COLUMN, &selected_node, -1);
c50e960e7086 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents: 18285
diff changeset
6439 }
c50e960e7086 Patch from SuperMMX to correct group colors. Fixes #1640
Sean Egan <seanegan@gmail.com>
parents: 18285
diff changeset
6440 selected = (gnode == selected_node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6441
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6442 if (!expanded) {
27416
9715022e8e35 De-emphasize the () around the collapsed group counts. I can't actually see
Etan Reisner <pidgin@unreliablesource.net>
parents: 27415
diff changeset
6443 g_snprintf(group_count, sizeof(group_count), "%d/%d",
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6444 purple_blist_get_group_online_count(group),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6445 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
6446 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6447
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
6448 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
6449 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
6450 pair = NULL;
25411
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
6451 else if (expanded)
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
6452 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
6453 else
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
6454 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
6455
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
6456
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6457 text_color = selected ? NULL : theme_font_get_color_default(pair, NULL);
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6458 text_font = theme_font_get_face_default(pair, "");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6459
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6460 esc = g_markup_escape_text(group->name, -1);
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6461 if (text_color) {
27416
9715022e8e35 De-emphasize the () around the collapsed group counts. I can't actually see
Etan Reisner <pidgin@unreliablesource.net>
parents: 27415
diff changeset
6462 mark = g_strdup_printf("<span foreground='%s' font_desc='%s'><b>%s</b>%s%s%s</span>",
9715022e8e35 De-emphasize the () around the collapsed group counts. I can't actually see
Etan Reisner <pidgin@unreliablesource.net>
parents: 27415
diff changeset
6463 text_color, text_font,
9715022e8e35 De-emphasize the () around the collapsed group counts. I can't actually see
Etan Reisner <pidgin@unreliablesource.net>
parents: 27415
diff changeset
6464 esc ? esc : "",
27493
b2106bf5a6b4 Apparently font_weight was only relatively recently added to pango, so use
Etan Reisner <pidgin@unreliablesource.net>
parents: 27490
diff changeset
6465 !expanded ? " <span weight='light'>(</span>" : "",
27416
9715022e8e35 De-emphasize the () around the collapsed group counts. I can't actually see
Etan Reisner <pidgin@unreliablesource.net>
parents: 27415
diff changeset
6466 group_count,
27493
b2106bf5a6b4 Apparently font_weight was only relatively recently added to pango, so use
Etan Reisner <pidgin@unreliablesource.net>
parents: 27490
diff changeset
6467 !expanded ? "<span weight='light'>)</span>" : "");
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6468 } else {
27416
9715022e8e35 De-emphasize the () around the collapsed group counts. I can't actually see
Etan Reisner <pidgin@unreliablesource.net>
parents: 27415
diff changeset
6469 mark = g_strdup_printf("<span font_desc='%s'><b>%s</b>%s%s%s</span>",
9715022e8e35 De-emphasize the () around the collapsed group counts. I can't actually see
Etan Reisner <pidgin@unreliablesource.net>
parents: 27415
diff changeset
6470 text_font, esc ? esc : "",
27493
b2106bf5a6b4 Apparently font_weight was only relatively recently added to pango, so use
Etan Reisner <pidgin@unreliablesource.net>
parents: 27490
diff changeset
6471 !expanded ? " <span weight='light'>(</span>" : "",
27416
9715022e8e35 De-emphasize the () around the collapsed group counts. I can't actually see
Etan Reisner <pidgin@unreliablesource.net>
parents: 27415
diff changeset
6472 group_count,
27493
b2106bf5a6b4 Apparently font_weight was only relatively recently added to pango, so use
Etan Reisner <pidgin@unreliablesource.net>
parents: 27490
diff changeset
6473 !expanded ? "<span weight='light'>)</span>" : "");
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6474 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6475
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6476 g_free(esc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6477 return mark;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6478 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6479
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6480 static void buddy_node(PurpleBuddy *buddy, GtkTreeIter *iter, PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6481 {
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
6482 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
6483 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
6484 GdkColor *color = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6485 char *mark;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6486 char *idle = NULL;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6487 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
6488 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
6489 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
6490 PidginBlistTheme *theme;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6491
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
6492 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
6493 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
6494
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6495 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
6496 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
6497
16905
aa87ecd650d2 Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16858
diff changeset
6498 /* 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
6499 if(biglist)
aa87ecd650d2 Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16858
diff changeset
6500 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
6501 else
aa87ecd650d2 Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16858
diff changeset
6502 avatar = NULL;
aa87ecd650d2 Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16858
diff changeset
6503
15397
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
6504 if (!avatar) {
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
6505 g_object_ref(G_OBJECT(gtkblist->empty_avatar));
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
6506 avatar = gtkblist->empty_avatar;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6507 } else if ((!PURPLE_BUDDY_IS_ONLINE(buddy) || purple_presence_is_idle(presence))) {
29878
bd28b8515eb2 Simplify: dest always equals src. No need to copy everything.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29867
diff changeset
6508 do_alphashift(avatar, 77);
15491
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
6509 }
88070d5f4c62 dim buddy icons on idle and offline. Still need to do status icons.
Sean Egan <seanegan@gmail.com>
parents: 15490
diff changeset
6510
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6511 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
6512 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
6513
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
6514 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
6515
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 16010
diff changeset
6516 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
6517 purple_presence_is_idle(presence) && !biglist)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6518 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6519 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
6520
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6521 if (idle_secs > 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6522 {
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6523 PidginThemeFont *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
6524 const gchar *textcolor;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6525 time_t t;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6526 int ihrs, imin;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6527 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
6528
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6529 ihrs = (t - idle_secs) / 3600;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6530 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
6531
28413
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
6532 if (selected)
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
6533 textcolor = NULL;
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
6534 else if (theme != NULL && (pair = pidgin_blist_theme_get_idle_text_info(theme)) != NULL)
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6535 textcolor = pidgin_theme_font_get_color_describe(pair);
25411
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
6536 else
28413
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
6537 /* If no theme them default to making idle buddy names grey */
f1a8a28432f4 Make idle and offline buddy names and the idle time in the small list grey
Mark Doliner <mark@kingant.net>
parents: 28349
diff changeset
6538 textcolor = "dim grey";
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6539
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6540 if (textcolor) {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6541 idle = g_strdup_printf("<span color='%s' font_desc='%s'>%d:%02d</span>",
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6542 textcolor, theme_font_get_face_default(pair, ""),
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6543 ihrs, imin);
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6544 } else {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6545 idle = g_strdup_printf("<span font_desc='%s'>%d:%02d</span>",
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
6546 theme_font_get_face_default(pair, ""),
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6547 ihrs, imin);
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6548 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6549 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6550 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6551
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
6552 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
6553
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
6554 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
6555 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
6556
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6557 gtk_tree_store_set(gtkblist->treemodel, iter,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6558 STATUS_ICON_COLUMN, status,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6559 STATUS_ICON_VISIBLE_COLUMN, TRUE,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6560 NAME_COLUMN, mark,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6561 IDLE_COLUMN, idle,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6562 IDLE_VISIBLE_COLUMN, !biglist && idle,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6563 BUDDY_ICON_COLUMN, avatar,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6564 BUDDY_ICON_VISIBLE_COLUMN, biglist,
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
6565 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
6566 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
6567 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
6568 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
6569 BGCOLOR_COLUMN, color,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6570 CONTACT_EXPANDER_COLUMN, NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6571 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
6572 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6573 -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6574
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6575 g_free(mark);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6576 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
6577 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
6578 g_object_unref(emblem);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6579 if(status)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6580 g_object_unref(status);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6581 if(avatar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6582 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
6583 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
6584 g_object_unref(prpl_icon);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6585 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6586
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6587 /* 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
6588 can know in advance which buddy has changed so we can just update that */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6589 static void pidgin_blist_update_contact(PurpleBuddyList *list, PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6590 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6591 PurpleBlistNode *cnode;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6592 PurpleContact *contact;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6593 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
6594 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
6595 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6596
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
6597 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
6598 return;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6599
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6600 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
6601 cnode = node->parent;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6602 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6603 cnode = node;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6604
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6605 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
6606
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6607 /* First things first, update the group */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6608 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6609 pidgin_blist_update_group(list, node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6610 else
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6611 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
6612
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6613 contact = (PurpleContact*)cnode;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6614 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
6615
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6616 if (buddy_is_displayable(buddy))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6617 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6618 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6619
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6620 if(!insert_node(list, cnode, &iter))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6621 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6622
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6623 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
6624
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6625 if(gtknode->contact_expanded) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6626 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
6627 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
6628 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
6629 GdkColor *color = NULL;
28570
0d9f5172ebc9 No need to call this twice.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28448
diff changeset
6630 PidginBlistTheme *theme;
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6631 PidginThemeFont *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
6632 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
6633
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
6634 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
6635
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
6636 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
6637 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
6638 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
6639 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
6640 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
6641 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
6642 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6643
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6644 font = theme_font_get_face_default(pair, "");
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6645 fg_color = selected ? NULL : theme_font_get_color_default(pair, NULL);
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6646
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6647 if (fg_color) {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6648 tmp = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>",
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
6649 font, fg_color, mark);
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6650 } else {
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
6651 tmp = g_strdup_printf("<span font_desc='%s'>%s</span>", font,
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6652 mark);
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6653 }
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
6654 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
6655 mark = tmp;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6656
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6657 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
6658 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
6659
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6660 gtk_tree_store_set(gtkblist->treemodel, &iter,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6661 STATUS_ICON_COLUMN, status,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6662 STATUS_ICON_VISIBLE_COLUMN, TRUE,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6663 NAME_COLUMN, mark,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6664 IDLE_COLUMN, NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6665 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
6666 BGCOLOR_COLUMN, color,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6667 BUDDY_ICON_COLUMN, NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6668 CONTACT_EXPANDER_COLUMN, TRUE,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6669 CONTACT_EXPANDER_VISIBLE_COLUMN, TRUE,
23969
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
6670 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6671 -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6672 g_free(mark);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6673 if(status)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6674 g_object_unref(status);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6675 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6676 buddy_node(buddy, &iter, cnode);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6677 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6678 } else {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6679 pidgin_blist_hide_node(list, cnode, TRUE);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6680 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6681 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6682
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6683
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6684
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
6685 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean status_change)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6686 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6687 PurpleBuddy *buddy;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6688 struct _pidgin_blist_node *gtkparentnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6689
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6690 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
6691
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6692 if (node->parent == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6693 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6694
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6695 buddy = (PurpleBuddy*)node;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6696
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6697 /* First things first, update the contact */
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6698 pidgin_blist_update_contact(list, node);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6699
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6700 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
6701
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6702 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
6703 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6704 GtkTreeIter iter;
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 if (!insert_node(list, node, &iter))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6707 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6708
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6709 buddy_node(buddy, &iter, node);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6710
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6711 } else {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6712 pidgin_blist_hide_node(list, node, TRUE);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6713 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6714
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6715 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6716
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6717 static void pidgin_blist_update_chat(PurpleBuddyList *list, PurpleBlistNode *node)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6718 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6719 PurpleChat *chat;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6720
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6721 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
6722
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
6723 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
6724 return;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6725
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6726 /* First things first, update the group */
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6727 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
6728
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6729 chat = (PurpleChat*)node;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6730
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6731 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
6732 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
6733 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
6734 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
6735 gchar *mark, *tmp;
16905
aa87ecd650d2 Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16858
diff changeset
6736 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
6737 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
6738 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
6739 PurpleConversation *conv;
26290
0a66afdd4706 hidden is never initialized
Ka-Hing Cheung <khc@hxbc.us>
parents: 26288
diff changeset
6740 gboolean hidden = 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
6741 GdkColor *bgcolor = NULL;
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6742 PidginThemeFont *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
6743 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
6744 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
6745 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
6746
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
6747 if (!insert_node(list, node, &iter))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6748 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6749
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
6750 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
6751 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
6752 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
6753 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
6754 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
6755 }
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
6756
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6757 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
6758 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
6759 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
6760
aa87ecd650d2 Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16858
diff changeset
6761 /* 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
6762 if(showicons)
aa87ecd650d2 Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16858
diff changeset
6763 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
6764 else
aa87ecd650d2 Speed up blist manipulations, by Scott Wolchok (EvilSporkMan)
Ethan Blanton <elb@pidgin.im>
parents: 16858
diff changeset
6765 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
6766
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6767 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
6768
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
6769 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
6770
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
6771 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
6772 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
6773 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
6774 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
6775 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
6776 pair = pidgin_blist_theme_get_unread_message_text_info(theme);
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
6777 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
6778
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
6779
26654
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6780 font = theme_font_get_face_default(pair, "");
f099e7f2739c Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26636
diff changeset
6781 if (selected || !(color = theme_font_get_color_default(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
6782 /* nick_said color is the same as gtkconv:tab-label-attention */
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6783 color = (nick_said ? "#006aff" : 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
6784
25454
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6785 if (color) {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6786 tmp = g_strdup_printf("<span font_desc='%s' color='%s' weight='%s'>%s</span>",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6787 font, color, hidden ? "bold" : "normal", mark);
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6788 } else {
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6789 tmp = g_strdup_printf("<span font_desc='%s' weight='%s'>%s</span>",
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6790 font, hidden ? "bold" : "normal", mark);
36f6f798e48a Use text colours from the GTK+ theme instead of black when no buddy list theme
Marcus Lundblad <ml@update.uu.se>
parents: 25438
diff changeset
6791 }
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
6792 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
6793 mark = tmp;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6794
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
6795 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
6796
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
6797 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
6798 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
6799
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6800 gtk_tree_store_set(gtkblist->treemodel, &iter,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6801 STATUS_ICON_COLUMN, status,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6802 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
6803 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
6804 BUDDY_ICON_VISIBLE_COLUMN, showicons,
19558
f902cd0dc925 Boldify the hidden chats in the buddylist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19540
diff changeset
6805 EMBLEM_COLUMN, emblem,
15463
0b6f337a46d5 Emblems in the blist
Sean Egan <seanegan@gmail.com>
parents: 15448
diff changeset
6806 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
6807 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
6808 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
6809 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
6810 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
6811 GROUP_EXPANDER_VISIBLE_COLUMN, FALSE,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6812 -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6813
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6814 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
6815 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
6816 g_object_unref(emblem);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6817 if(status)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6818 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
6819 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
6820 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
6821 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
6822 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
6823
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6824 } else {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6825 pidgin_blist_hide_node(list, node, TRUE);
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6826 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6827 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6828
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6829 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
6830 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6831 if (list)
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6832 gtkblist = PIDGIN_BLIST(list);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6833 if(!gtkblist || !gtkblist->treeview || !node)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6834 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6835
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6836 if (node->ui_data == NULL)
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6837 pidgin_blist_new_node(node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6838
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6839 switch(node->type) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6840 case PURPLE_BLIST_GROUP_NODE:
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6841 pidgin_blist_update_group(list, node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6842 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6843 case PURPLE_BLIST_CONTACT_NODE:
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6844 pidgin_blist_update_contact(list, node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6845 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6846 case PURPLE_BLIST_BUDDY_NODE:
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6847 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
6848 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6849 case PURPLE_BLIST_CHAT_NODE:
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6850 pidgin_blist_update_chat(list, node);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6851 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6852 case PURPLE_BLIST_OTHER_NODE:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6853 return;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6856 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6857
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6858 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
6859 {
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
6860 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
6861
27556
cbee8aecc90a Free the buddy list data some more at shutdown and some deprecations.
Paul Aurich <paul@darkrain42.org>
parents: 27493
diff changeset
6862 if (!list || !list->ui_data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6863 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6864
27590
381acdb3cedc Fix a reversed assertion.
Paul Aurich <paul@darkrain42.org>
parents: 27556
diff changeset
6865 g_return_if_fail(list->ui_data == gtkblist);
27556
cbee8aecc90a Free the buddy list data some more at shutdown and some deprecations.
Paul Aurich <paul@darkrain42.org>
parents: 27493
diff changeset
6866
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6867 purple_signals_disconnect_by_handle(gtkblist);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6868
30017
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
6869 if (gtkblist->headline_close)
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
6870 gdk_pixbuf_unref(gtkblist->headline_close);
0d613fa75e5f Maintain ABI compatibility by keeping headline_close a GdkPixbuf.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30016
diff changeset
6871
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6872 gtk_widget_destroy(gtkblist->window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6873
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6874 pidgin_blist_tooltip_destroy();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6875
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6876 if (gtkblist->refresh_timer)
26613
b162300ab1e7 A patch from Arunan Balasubramaniam to use timeouts in seconds instead of
foss@abala.me
parents: 26610
diff changeset
6877 purple_timeout_remove(gtkblist->refresh_timer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6878 if (gtkblist->timeout)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6879 g_source_remove(gtkblist->timeout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6880 if (gtkblist->drag_timeout)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6881 g_source_remove(gtkblist->drag_timeout);
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 g_hash_table_destroy(gtkblist->connection_errors);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6884 gtkblist->refresh_timer = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6885 gtkblist->timeout = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6886 gtkblist->drag_timeout = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6887 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
6888 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
6889 gtkblist->treemodel = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6890 g_object_unref(G_OBJECT(gtkblist->ift));
15397
a8ee645e7fb4 A lot of status icon changes:
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
6891 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
6892
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6893 gdk_cursor_unref(gtkblist->hand_cursor);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6894 gdk_cursor_unref(gtkblist->arrow_cursor);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6895 gtkblist->hand_cursor = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6896 gtkblist->arrow_cursor = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6897
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
6898 priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);
27073
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
6899 if (priv->current_theme)
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
6900 g_object_unref(priv->current_theme);
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
6901 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
6902
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6903 g_free(gtkblist);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6904 accountmenu = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6905 gtkblist = NULL;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6906 purple_prefs_disconnect_by_handle(pidgin_blist_get_handle());
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6907 }
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6908
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6909 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
6910 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6911 if (!(gtkblist && gtkblist->window))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6912 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6913
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6914 if (show) {
15510
567a499c3b06 dialogs
Sean Egan <seanegan@gmail.com>
parents: 15509
diff changeset
6915 if(!PIDGIN_WINDOW_ICONIFIED(gtkblist->window) && !GTK_WIDGET_VISIBLE(gtkblist->window))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6916 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
6917 pidgin_blist_restore_position();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6918 gtk_window_present(GTK_WINDOW(gtkblist->window));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6919 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6920 if(visibility_manager_count) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6921 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
6922 gtk_widget_hide(gtkblist->window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6923 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6924 if (!GTK_WIDGET_VISIBLE(gtkblist->window))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6925 gtk_widget_show(gtkblist->window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6926 gtk_window_iconify(GTK_WINDOW(gtkblist->window));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6927 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6928 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6929 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6930
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6931 static GList *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6932 groups_tree(void)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6933 {
20028
a2b4eac83902 Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19680
diff changeset
6934 static GList *list = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6935 char *tmp2;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6936 PurpleGroup *g;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6937 PurpleBlistNode *gnode;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6938
20028
a2b4eac83902 Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19680
diff changeset
6939 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
6940 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
6941
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6942 if (purple_get_blist()->root == NULL)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6943 {
20028
a2b4eac83902 Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19680
diff changeset
6944 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
6945 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6946 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6947 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6948 for (gnode = purple_get_blist()->root;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6949 gnode != NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6950 gnode = gnode->next)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6951 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6952 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
6953 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6954 g = (PurpleGroup *)gnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6955 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
6956 list = g_list_append(list, tmp2);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6957 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6958 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6959 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6960
20028
a2b4eac83902 Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19680
diff changeset
6961 return list;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6962 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6963
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6964 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6965 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
6966 PidginAddBuddyData *data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6967 {
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6968 PurpleConnection *pc = NULL;
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6969 PurplePlugin *prpl = NULL;
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6970 PurplePluginProtocolInfo *prpl_info = NULL;
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6971 gboolean invite_enabled = TRUE;
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6972
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6973 /* Save our account */
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
6974 data->rq_data.account = account;
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6975
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6976 if (account)
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6977 pc = purple_account_get_connection(account);
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6978 if (pc)
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6979 prpl = purple_connection_get_prpl(pc);
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6980 if (prpl)
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6981 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6982 if (prpl_info && !(prpl_info->options & OPT_PROTO_INVITE_MESSAGE))
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6983 invite_enabled = FALSE;
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6984
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6985 gtk_widget_set_sensitive(data->entry_for_invite, invite_enabled);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6986 }
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 static void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6989 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
6990 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6991 g_free(data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6992 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6993
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6994 static void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
6995 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
6996 {
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
6997 const char *grp, *who, *whoalias, *invite;
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
6998 PurpleAccount *account;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
6999 PurpleGroup *g;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7000 PurpleBuddy *b;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7001 PurpleConversation *c;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7002 PurpleBuddyIcon *icon;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7003
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7004 if (resp == GTK_RESPONSE_OK)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7005 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7006 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
7007 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
7008 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
7009 if (*whoalias == '\0')
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7010 whoalias = NULL;
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7011 invite = gtk_entry_get_text(GTK_ENTRY(data->entry_for_invite));
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7012 if (*invite == '\0')
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7013 invite = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7014
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7015 account = data->rq_data.account;
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7016
20161
0077c1f21f3d Patch from db42. Fixes #3191
Sean Egan <seanegan@gmail.com>
parents: 20158
diff changeset
7017 g = NULL;
25010
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7018 if ((grp != NULL) && (*grp != '\0'))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7019 {
25010
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7020 if ((g = purple_find_group(grp)) == NULL)
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7021 {
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7022 g = purple_group_new(grp);
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7023 purple_blist_add_group(g, NULL);
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7024 }
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7025
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7026 b = purple_find_buddy_in_group(account, who, g);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7027 }
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7028 else if ((b = purple_find_buddy(account, who)) != NULL)
25010
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7029 {
26288
e9b77a8bfde4 Remove an extra tab
Paul Aurich <paul@darkrain42.org>
parents: 26283
diff changeset
7030 g = purple_buddy_get_group(b);
25010
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7031 }
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7032
6eecd6ba2862 Fix situation in which group was not specified and
Paul Aurich <paul@darkrain42.org>
parents: 25005
diff changeset
7033 if (b == NULL)
24509
125cac3e24ee The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <paul@darkrain42.org>
parents: 24497
diff changeset
7034 {
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7035 b = purple_buddy_new(account, who, whoalias);
24509
125cac3e24ee The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <paul@darkrain42.org>
parents: 24497
diff changeset
7036 purple_blist_add_buddy(b, NULL, g, NULL);
125cac3e24ee The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <paul@darkrain42.org>
parents: 24497
diff changeset
7037 }
125cac3e24ee The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <paul@darkrain42.org>
parents: 24497
diff changeset
7038
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7039 purple_account_add_buddy_with_invite(account, b, invite);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7040
23326
aec041e8f3e0 Make the Add Buddy dialog cause the auto-personize prompt where appropriate.
Kevin Stange <kevin@simguy.net>
parents: 23312
diff changeset
7041 /* 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
7042 if (whoalias != NULL && g != NULL)
23347
dd146aa7d74d silence a warning
Ka-Hing Cheung <khc@hxbc.us>
parents: 23346
diff changeset
7043 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
7044
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7045 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7046 * XXX
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7047 * It really seems like it would be better if the call to
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7048 * purple_account_add_buddy() and purple_conversation_update() were done in
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7049 * blist.c, possibly in the purple_blist_add_buddy() function. Maybe
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7050 * purple_account_add_buddy() should be renamed to
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7051 * purple_blist_add_new_buddy() or something, and have it call
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7052 * 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
7053 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7054 * 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
7055 * local list. We need a new, non-gtk file that calls both
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7056 * 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
7057 * Or something. --Mark
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7058 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7059
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7060 c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, data->rq_data.account);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7061 if (c != NULL) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7062 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
7063 if (icon != NULL)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7064 purple_buddy_icon_update(icon);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7065 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7066 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7067
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7068 gtk_widget_destroy(data->rq_data.window);
15374
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7071 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7072 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
7073 const char *group, const char *alias)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7074 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7075 PidginAddBuddyData *data = g_new0(PidginAddBuddyData, 1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7076
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7077 if (account == NULL)
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7078 account = purple_connection_get_account(purple_connections_get_all()->data);
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7079
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7080 make_blist_request_dialog((PidginBlistRequestData *)data,
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7081 account,
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7082 _("Add Buddy"), "add_buddy",
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7083 _("Add a buddy.\n"),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7084 G_CALLBACK(add_buddy_select_account_cb), NULL,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7085 G_CALLBACK(add_buddy_cb));
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7086 gtk_dialog_add_buttons(GTK_DIALOG(data->rq_data.window),
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7087 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7088 GTK_STOCK_ADD, GTK_RESPONSE_OK,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7089 NULL);
27705
5d75276a575f Make OK default for Add Buddy, Add Chat, and Join Chat.
Paul Aurich <paul@darkrain42.org>
parents: 27664
diff changeset
7090 gtk_dialog_set_default_response(GTK_DIALOG(data->rq_data.window),
5d75276a575f Make OK default for Add Buddy, Add Chat, and Join Chat.
Paul Aurich <paul@darkrain42.org>
parents: 27664
diff changeset
7091 GTK_RESPONSE_OK);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7092
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7093 g_signal_connect(G_OBJECT(data->rq_data.window), "destroy",
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
7094 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
7095
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7096 data->entry = gtk_entry_new();
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7097
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7098 pidgin_add_widget_to_vbox(data->rq_data.vbox, _("Buddy's _username:"),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7099 data->rq_data.sg, data->entry, TRUE, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7100 gtk_widget_grab_focus(data->entry);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7101
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7102 if (username != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7103 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
7104 else
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7105 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->rq_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
7106 GTK_RESPONSE_OK, FALSE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7107
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7108 gtk_entry_set_activates_default (GTK_ENTRY(data->entry), TRUE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7109
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7110 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
7111 G_CALLBACK(pidgin_set_sensitive_if_input),
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7112 data->rq_data.window);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7113
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7114 data->entry_for_alias = gtk_entry_new();
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7115 pidgin_add_widget_to_vbox(data->rq_data.vbox, _("(Optional) A_lias:"),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7116 data->rq_data.sg, data->entry_for_alias, TRUE,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7117 NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7118
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7119 if (alias != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7120 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
7121
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7122 if (username != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7123 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
7124
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7125 data->entry_for_invite = gtk_entry_new();
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7126 pidgin_add_widget_to_vbox(data->rq_data.vbox, _("(Optional) _Invite message:"),
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7127 data->rq_data.sg, data->entry_for_invite, TRUE,
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7128 NULL);
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7129
20028
a2b4eac83902 Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19680
diff changeset
7130 data->combo = pidgin_text_combo_box_entry_new(group, groups_tree());
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7131 pidgin_add_widget_to_vbox(data->rq_data.vbox, _("Add buddy to _group:"),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7132 data->rq_data.sg, data->combo, TRUE, NULL);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7133
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7134 gtk_widget_show_all(data->rq_data.window);
31852
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7135
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7136 /* Force update of invite message entry sensitivity */
c0a122c22475 Show invite message entry in the Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31823
diff changeset
7137 add_buddy_select_account_cb(NULL, account, data);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7138 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7139
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7140 static void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7141 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
7142 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7143 GList *tmp;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7144 PurpleChat *chat;
27974
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7145 GHashTable *components;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7146
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7147 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
7148 g_free, g_free);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7149
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7150 for (tmp = data->chat_data.entries; tmp; tmp = tmp->next)
15374
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 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
7153 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7154 g_hash_table_replace(components,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7155 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
7156 g_strdup_printf("%d",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7157 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
7158 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7159 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7160 {
27974
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7161 const char *value = gtk_entry_get_text(tmp->data);
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7162
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7163 if (*value != '\0')
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7164 g_hash_table_replace(components,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7165 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
7166 g_strdup(value));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7167 }
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
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7170 chat = purple_chat_new(data->chat_data.rq_data.account,
27974
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7171 gtk_entry_get_text(GTK_ENTRY(data->alias_entry)),
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7172 components);
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7173
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7174 if (chat != NULL) {
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7175 PurpleGroup *group;
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7176 const char *group_name;
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7177
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7178 group_name = pidgin_text_combo_box_entry_get_text(data->group_combo);
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7179
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7180 group = NULL;
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7181 if ((group_name != NULL) && (*group_name != '\0') &&
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7182 ((group = purple_find_group(group_name)) == NULL))
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7183 {
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7184 group = purple_group_new(group_name);
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7185 purple_blist_add_group(group, NULL);
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7186 }
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7187
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7188 purple_blist_add_chat(chat, group, NULL);
27974
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7189
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7190 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->autojoin)))
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7191 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-autojoin", TRUE);
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7192
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7193 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->persistent)))
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7194 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-persistent", TRUE);
22dd196b9a0c Close up scope on some variables and more correctly handle the
Etan Reisner <pidgin@unreliablesource.net>
parents: 27493
diff changeset
7195 }
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
7196
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7197 gtk_widget_destroy(data->chat_data.rq_data.window);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7198 g_free(data->chat_data.default_chat_name);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7199 g_list_free(data->chat_data.entries);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7200 g_free(data);
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7203 static void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7204 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
7205 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7206 if (resp == GTK_RESPONSE_OK)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7207 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7208 add_chat_cb(NULL, data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7209 }
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
7210 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
7211 {
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7212 pidgin_roomlist_dialog_show_with_account(data->chat_data.rq_data.account);
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
7213 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7214 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7215 {
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7216 gtk_widget_destroy(data->chat_data.rq_data.window);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7217 g_free(data->chat_data.default_chat_name);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7218 g_list_free(data->chat_data.entries);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7219 g_free(data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7220 }
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7223 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7224 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
7225 const char *alias, const char *name)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7226 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7227 PidginAddChatData *data;
18063
926ccb104da0 disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents: 18058
diff changeset
7228 GList *l;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7229 PurpleConnection *gc;
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7230 GtkBox *vbox;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7231
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7232 if (account != NULL) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7233 gc = purple_account_get_connection(account);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7234
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7235 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat == NULL) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7236 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
7237 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7238 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7239 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7240 /* Find an account with chat capabilities */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7241 for (l = purple_connections_get_all(); l != NULL; l = l->next) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7242 gc = (PurpleConnection *)l->data;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7243
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7244 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat != NULL) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7245 account = purple_connection_get_account(gc);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7246 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7247 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7248 }
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 if (account == NULL) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7251 purple_notify_error(NULL, NULL,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7252 _("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
7253 "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
7254 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7255 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7256 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7257
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7258 data = g_new0(PidginAddChatData, 1);
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7259 vbox = GTK_BOX(make_blist_request_dialog((PidginBlistRequestData *)data, account,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7260 _("Add Chat"), "add_chat",
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7261 _("Please enter an alias, and the appropriate information "
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7262 "about the chat you would like to add to your buddy list.\n"),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7263 G_CALLBACK(chat_select_account_cb), chat_account_filter_func,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7264 G_CALLBACK(add_chat_resp_cb)));
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7265 gtk_dialog_add_buttons(GTK_DIALOG(data->chat_data.rq_data.window),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7266 _("Room List"), 1,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7267 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7268 GTK_STOCK_ADD, GTK_RESPONSE_OK,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7269 NULL);
27705
5d75276a575f Make OK default for Add Buddy, Add Chat, and Join Chat.
Paul Aurich <paul@darkrain42.org>
parents: 27664
diff changeset
7270 gtk_dialog_set_default_response(GTK_DIALOG(data->chat_data.rq_data.window),
5d75276a575f Make OK default for Add Buddy, Add Chat, and Join Chat.
Paul Aurich <paul@darkrain42.org>
parents: 27664
diff changeset
7271 GTK_RESPONSE_OK);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7272
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7273 data->chat_data.default_chat_name = g_strdup(name);
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7274
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7275 rebuild_chat_entries((PidginChatData *)data, name);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7276
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7277 data->alias_entry = gtk_entry_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7278 if (alias != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7279 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
7280 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
7281
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7282 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("A_lias:"),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7283 data->chat_data.rq_data.sg, data->alias_entry,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7284 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
7285 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
7286 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
7287
20028
a2b4eac83902 Part of #1332 to introduce pidgin_text_combo_box_new_entry and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19680
diff changeset
7288 data->group_combo = pidgin_text_combo_box_entry_new(group ? group->name : NULL, groups_tree());
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7289 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Group:"),
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7290 data->chat_data.rq_data.sg, data->group_combo,
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7291 TRUE, NULL);
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
7292
28330
3a45ecbe4821 I think this is a little better.
Paul Aurich <paul@darkrain42.org>
parents: 27993
diff changeset
7293 data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account connects."));
24302
d9a50381a20c A little clearer description for an option.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24282
diff changeset
7294 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
7295 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
7296 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
7297
26966
88c87a40a738 A patch from Gabriel Schulhof, updated to apply by Paul 'darkrain42' Aurich,
Gabriel Schulhof <nix@go-nix.ca>
parents: 26776
diff changeset
7298 gtk_widget_show_all(data->chat_data.rq_data.window);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7299 }
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 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7302 add_group_cb(PurpleConnection *gc, const char *group_name)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7303 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7304 PurpleGroup *group;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7305
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7306 if ((group_name == NULL) || (*group_name == '\0'))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7307 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7308
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7309 group = purple_group_new(group_name);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7310 purple_blist_add_group(group, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7311 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7312
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7313 static void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7314 pidgin_blist_request_add_group(void)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7315 {
21099
51cf02dbdb0e disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents: 21095
diff changeset
7316 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
7317 _("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
7318 NULL, FALSE, FALSE, NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7319 _("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
7320 _("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
7321 NULL, NULL, NULL,
21099
51cf02dbdb0e disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents: 21095
diff changeset
7322 NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7323 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7324
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7325 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7326 pidgin_blist_toggle_visibility()
15374
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 if (gtkblist && gtkblist->window) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7329 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
7330 /* 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
7331 * 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
7332 * 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
7333 * 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
7334 * buddy list
5d833ca5a265 Make pidgin_blist_toggle_visibility() hide the buddy list when it is
Casey Harkins <charkins@pidgin.im>
parents: 22789
diff changeset
7335 */
21041
094bbbe89d0d Track the actual visibility for the buddy list (unobscured, partially and
Casey Harkins <charkins@pidgin.im>
parents: 21040
diff changeset
7336 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
7337 ((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
7338 !gtk_blist_focused));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7339 } else {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7340 purple_blist_set_visible(TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7341 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7342 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7343 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7344
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7345 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7346 pidgin_blist_visibility_manager_add()
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 visibility_manager_count++;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7349 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
7350 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7351
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7352 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7353 pidgin_blist_visibility_manager_remove()
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7354 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7355 if (visibility_manager_count)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7356 visibility_manager_count--;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7357 if (!visibility_manager_count)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7358 purple_blist_set_visible(TRUE);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7359 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
7360 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7361
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7362 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
7363 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7364 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
7365 set_urgent();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7366 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7367
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7368 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7369 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
7370 gpointer user_data, GDestroyNotify destroy)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7371 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7372 /* Destroy any existing headline first */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7373 if (gtkblist->headline_destroy)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7374 gtkblist->headline_destroy(gtkblist->headline_data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7375
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7376 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
7377 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
7378
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7379 gtkblist->headline_callback = callback;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7380 gtkblist->headline_data = user_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7381 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
7382 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
7383 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
7384 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
7385 } 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
7386 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
7387 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7388 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7389
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
7390
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
7391 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
7392 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
7393 {
27664
989f1bd200b7 Prevent a crash if a plugin set a mini-dialog during load. If that plugin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27590
diff changeset
7394 if (gtkblist->window && !GTK_WIDGET_HAS_FOCUS(gtkblist->window))
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
7395 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
7396 }
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
7397
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7398 static PurpleBlistUiOps blist_ui_ops =
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7399 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7400 pidgin_blist_new_list,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7401 pidgin_blist_new_node,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7402 pidgin_blist_show,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7403 pidgin_blist_update,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7404 pidgin_blist_remove,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7405 pidgin_blist_destroy,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7406 pidgin_blist_set_visible,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7407 pidgin_blist_request_add_buddy,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7408 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
7409 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
7410 NULL,
fbf111436896 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16564
diff changeset
7411 NULL,
fbf111436896 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16564
diff changeset
7412 NULL,
fbf111436896 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16564
diff changeset
7413 NULL
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7414 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7415
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7416
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7417 PurpleBlistUiOps *
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7418 pidgin_blist_get_ui_ops(void)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7419 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7420 return &blist_ui_ops;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7421 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7422
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7423 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
7424 {
15448
a75f1459b578 re-indentation.
Nathan Walp <nwalp@pidgin.im>
parents: 15444
diff changeset
7425 return gtkblist;
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
30165
378cceb9131d Add an autojoin connection signal
Richard Laager <rlaager@wiktel.com>
parents: 30053
diff changeset
7428 static gboolean autojoin_cb(PurpleConnection *gc, gpointer data)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7429 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7430 PurpleAccount *account = purple_connection_get_account(gc);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7431 PurpleBlistNode *gnode, *cnode;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7432 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
7433 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7434 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
7435 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7436 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
7437 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7438 PurpleChat *chat;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7439
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7440 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
7441 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7442
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7443 chat = (PurpleChat *)cnode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7444
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7445 if(chat->account != account)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7446 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7447
31705
43f75716a233 Stop trying to get "gtk-autojoin" as a string from chat rooms in the buddy
Mark Doliner <mark@kingant.net>
parents: 31544
diff changeset
7448 if (purple_blist_node_get_bool((PurpleBlistNode*)chat, "gtk-autojoin"))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7449 serv_join_chat(gc, chat->components);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7450 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7451 }
30165
378cceb9131d Add an autojoin connection signal
Richard Laager <rlaager@wiktel.com>
parents: 30053
diff changeset
7452
378cceb9131d Add an autojoin connection signal
Richard Laager <rlaager@wiktel.com>
parents: 30053
diff changeset
7453 /* Stop processing; we handled the autojoins. */
378cceb9131d Add an autojoin connection signal
Richard Laager <rlaager@wiktel.com>
parents: 30053
diff changeset
7454 return TRUE;
15374
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7457 void *
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7458 pidgin_blist_get_handle() {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7459 static int handle;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7460
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7461 return &handle;
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
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7464 static gboolean buddy_signonoff_timeout_cb(PurpleBuddy *buddy)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7465 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7466 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode*)buddy)->ui_data;
23969
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
7467
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
7468 gtknode->recent_signonoff = FALSE;
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
7469 gtknode->recent_signonoff_timer = 0;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7470
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7471 pidgin_blist_update(NULL, (PurpleBlistNode*)buddy);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7472
23969
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
7473 return FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7474 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7475
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7476 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
7477 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7478 struct _pidgin_blist_node *gtknode;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7479
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7480 if(!((PurpleBlistNode*)buddy)->ui_data) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7481 pidgin_blist_new_node((PurpleBlistNode*)buddy);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7482 }
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7483
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7484 gtknode = ((PurpleBlistNode*)buddy)->ui_data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7485
23969
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
7486 gtknode->recent_signonoff = TRUE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7487
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7488 if(gtknode->recent_signonoff_timer > 0)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7489 purple_timeout_remove(gtknode->recent_signonoff_timer);
26613
b162300ab1e7 A patch from Arunan Balasubramaniam to use timeouts in seconds instead of
foss@abala.me
parents: 26610
diff changeset
7490 gtknode->recent_signonoff_timer = purple_timeout_add_seconds(10,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7491 (GSourceFunc)buddy_signonoff_timeout_cb, buddy);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7492 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7493
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
7494 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
7495 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
7496 {
1242a922a4bc start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23395
diff changeset
7497 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
7498 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
7499
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
7500 if (theme != NULL)
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
7501 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
7502 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
7503 else
c0e3b62f8098 * Alphabetize files in a few Makefile.am files
Mark Doliner <mark@kingant.net>
parents: 25410
diff changeset
7504 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
7505
27073
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
7506 if (priv->current_theme)
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
7507 g_object_unref(priv->current_theme);
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
7508
85a4c248f751 Buddy List needs to take a reference to the loaded theme. Fixes #8798.
Paul Aurich <paul@darkrain42.org>
parents: 26966
diff changeset
7509 priv->current_theme = theme ? g_object_ref(theme) : NULL;
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
7510
23482
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
7511 pidgin_blist_build_layout(list);
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
7512
d17d6e83f428 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23481
diff changeset
7513 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
7514 }
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
7515
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
7516
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
7517 PidginBlistTheme *
23475
1242a922a4bc start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23395
diff changeset
7518 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
7519 {
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
7520 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 25411
diff changeset
7521
23475
1242a922a4bc start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23395
diff changeset
7522 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
7523 }
1242a922a4bc start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23395
diff changeset
7524
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7525 void pidgin_blist_init(void)
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7526 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7527 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
7528
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
7529 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
7530
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7531 /* 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
7532 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
7533 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
7534 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
7535 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
7536 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
7537 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
7538 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
7539 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
7540 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
7541 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
7542 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
7543 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
7544 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
7545 #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
7546 /* 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
7547 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
7548 #endif
23475
1242a922a4bc start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23395
diff changeset
7549 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
7550
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
7551 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
7552
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7553 /* Register our signals */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7554 purple_signal_register(gtk_blist_handle, "gtkblist-hiding",
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7555 purple_marshal_VOID__POINTER, NULL, 1,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7556 purple_value_new(PURPLE_TYPE_SUBTYPE,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7557 PURPLE_SUBTYPE_BLIST));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7558
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7559 purple_signal_register(gtk_blist_handle, "gtkblist-unhiding",
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7560 purple_marshal_VOID__POINTER, NULL, 1,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7561 purple_value_new(PURPLE_TYPE_SUBTYPE,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7562 PURPLE_SUBTYPE_BLIST));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7563
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7564 purple_signal_register(gtk_blist_handle, "gtkblist-created",
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7565 purple_marshal_VOID__POINTER, NULL, 1,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7566 purple_value_new(PURPLE_TYPE_SUBTYPE,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7567 PURPLE_SUBTYPE_BLIST));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7568
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7569 purple_signal_register(gtk_blist_handle, "drawing-tooltip",
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7570 purple_marshal_VOID__POINTER_POINTER_UINT, NULL, 3,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7571 purple_value_new(PURPLE_TYPE_SUBTYPE,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7572 PURPLE_SUBTYPE_BLIST_NODE),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7573 purple_value_new_outgoing(PURPLE_TYPE_BOXED, "GString *"),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7574 purple_value_new(PURPLE_TYPE_BOOLEAN));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7575
30038
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7576 purple_signal_register(gtk_blist_handle, "drawing-buddy",
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7577 purple_marshal_POINTER__POINTER,
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7578 purple_value_new(PURPLE_TYPE_STRING), 1,
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7579 purple_value_new(PURPLE_TYPE_SUBTYPE,
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7580 PURPLE_SUBTYPE_BLIST_BUDDY));
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7581
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7582 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on",
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7583 gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL);
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7584 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off",
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7585 gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL);
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7586 purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed",
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7587 gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL);
d75813811637 Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 30019
diff changeset
7588
30165
378cceb9131d Add an autojoin connection signal
Richard Laager <rlaager@wiktel.com>
parents: 30053
diff changeset
7589 purple_signal_connect_priority(purple_connections_get_handle(), "autojoin",
378cceb9131d Add an autojoin connection signal
Richard Laager <rlaager@wiktel.com>
parents: 30053
diff changeset
7590 gtk_blist_handle, PURPLE_CALLBACK(autojoin_cb),
378cceb9131d Add an autojoin connection signal
Richard Laager <rlaager@wiktel.com>
parents: 30053
diff changeset
7591 NULL, PURPLE_SIGNAL_PRIORITY_HIGHEST);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7592 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7593
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7594 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7595 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
7596 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
7597
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7598 purple_signals_unregister_by_instance(pidgin_blist_get_handle());
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7599 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
7600 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7601
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 * Buddy List sorting functions *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7604 *********************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7605
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7606 GList *pidgin_blist_get_sort_methods()
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7607 {
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7608 return pidgin_blist_sort_methods;
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7609 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7610
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7611 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
7612 {
27721
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7613 struct pidgin_blist_sort_method *method;
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7614
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7615 g_return_if_fail(id != NULL);
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7616 g_return_if_fail(name != NULL);
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7617 g_return_if_fail(func != NULL);
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7618
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7619 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
7620 method->id = g_strdup(id);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7621 method->name = g_strdup(name);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7622 method->func = func;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7623 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
7624 pidgin_blist_update_sort_methods();
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7625 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7626
21990
d309d662a32c Fix an infinite loop. Fixes #4486.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21986
diff changeset
7627 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
7628 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7629 GList *l = pidgin_blist_sort_methods;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7630
27721
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7631 g_return_if_fail(id != NULL);
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
7632
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7633 while(l) {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7634 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
7635 if(!strcmp(method->id, id)) {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7636 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
7637 g_free(method->id);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7638 g_free(method->name);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7639 g_free(method);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7640 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7641 }
21990
d309d662a32c Fix an infinite loop. Fixes #4486.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21986
diff changeset
7642 l = l->next;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7643 }
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7644 pidgin_blist_update_sort_methods();
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7645 }
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7646
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7647 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
7648 GList *l = pidgin_blist_sort_methods;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7649
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7650 if(!id)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7651 id = "none";
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7652
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7653 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
7654 l = l->next;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7655
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7656 if (l) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7657 current_sort_method = l->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7658 } else if (!current_sort_method) {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7659 pidgin_blist_sort_method_set("none");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7660 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7661 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7662 if (!strcmp(id, "none")) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7663 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
7664 } else {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7665 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
7666 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7667 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7668
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7669 /******************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7670 ** Sort Methods
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7671 ******************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7672
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7673 static void sort_method_none(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter parent_iter, GtkTreeIter *cur, GtkTreeIter *iter)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7674 {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7675 PurpleBlistNode *sibling = node->prev;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7676 GtkTreeIter sibling_iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7677
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7678 if (cur != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7679 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7680 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7681 }
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 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
7684 sibling = sibling->prev;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7685 }
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 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
7688 node->parent ? &parent_iter : NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7689 sibling ? &sibling_iter : NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7690 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7691
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7692 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
7693 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7694 GtkTreeIter more_z;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7695
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7696 const char *my_name;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7697
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7698 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7699 my_name = purple_contact_get_alias((PurpleContact*)node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7700 } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7701 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
7702 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7703 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
7704 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7705 }
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 (!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
7708 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
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7712 do {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7713 PurpleBlistNode *n;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7714 const char *this_name;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7715 int cmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7716
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
7717 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &n, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7718
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7719 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7720 this_name = purple_contact_get_alias((PurpleContact*)n);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7721 } else if(PURPLE_BLIST_NODE_IS_CHAT(n)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7722 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
7723 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7724 this_name = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7725 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7726
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7727 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
7728
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7729 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
7730 if(cur) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7731 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
7732 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7733 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7734 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7735 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
7736 &groupiter, &more_z);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7737 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7738 }
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 } 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
7741
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7742 if(cur) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7743 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
7744 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7745 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7746 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7747 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
7748 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7749 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7750 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7751
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7752 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
7753 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7754 GtkTreeIter more_z;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7755
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7756 PurpleBuddy *my_buddy, *this_buddy;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7757
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7758 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7759 my_buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7760 } 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
7761 if (cur != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7762 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7763 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7764 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7765
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7766 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
7767 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7768 } else {
31714
2a5e10237d69 Sort by status, then alphabetical. Sorting by status and then "none"
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31705
diff changeset
7769 sort_method_alphabetical(node, blist, groupiter, cur, iter);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7770 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7771 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7772
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7773
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7774 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
7775 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
7776 return;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7779 do {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7780 PurpleBlistNode *n;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7781 gint name_cmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7782 gint presence_cmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7783
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
7784 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &n, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7785
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7786 if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7787 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
7788 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7789 this_buddy = NULL;
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
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7792 name_cmp = purple_utf8_strcasecmp(
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7793 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
7794 (this_buddy
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7795 ? 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
7796 : NULL));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7797
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7798 presence_cmp = purple_presence_compare(
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7799 purple_buddy_get_presence(my_buddy),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7800 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
7801
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7802 if (this_buddy == NULL ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7803 (presence_cmp < 0 ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7804 (presence_cmp == 0 &&
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7805 (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
7806 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7807 if (cur != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7808 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7809 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
7810 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7811 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7812 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7813 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7814 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7815 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
7816 &groupiter, &more_z);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7817 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7818 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7819 }
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 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
7822 &more_z));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7823
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7824 if (cur) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7825 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
7826 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7827 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7828 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7829 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
7830 return;
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 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7833
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
7834 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
7835 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7836 GtkTreeIter more_z;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7837
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
7838 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
7839 const char *buddy_name, *this_buddy_name;
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 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
7842 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7843 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7844 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7845
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7846 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7847 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
7848 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
7849 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
7850 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
7851 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
7852 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7853 buddy_name = purple_contact_get_alias((PurpleContact*)node);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7854 } 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
7855 /* 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
7856 * 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
7857 if (cur != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7858 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7859 return;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7862 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
7863 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7864 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7865 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
7866 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7867 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7868
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 (!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
7871 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
7872 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7873 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7874
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7875 do {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7876 PurpleBlistNode *n;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7877 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
7878 PurpleBuddy *buddy;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7879 int cmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7880
31544
b76def85cc04 gtkblist: Fix a few memory leaks. Refs #13162.
morshed.nader@gmail.com
parents: 31534
diff changeset
7881 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &n, -1);
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
7882 this_log_activity_score = 0;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7883
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7884 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
7885 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
7886 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
7887 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
7888 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7889 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
7890 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7891 this_buddy_name = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7892 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7893
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7894 cmp = purple_utf8_strcasecmp(buddy_name, this_buddy_name);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7895
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
7896 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
7897 ((activity_score == this_log_activity_score) &&
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7898 (cmp < 0 || (cmp == 0 && node < n)))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7899 if (cur != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7900 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
7901 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7902 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7903 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7904 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
7905 &groupiter, &more_z);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7906 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7907 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7908 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7909 } 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
7910
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7911 if (cur != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7912 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
7913 *iter = *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7914 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7915 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7916 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
7917 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7918 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7919 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7920
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7921 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7922 plugin_act(GtkObject *obj, PurplePluginAction *pam)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7923 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7924 if (pam && pam->callback)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7925 pam->callback(pam);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7926 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7927
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7928 static void
15980
f61113b26032 sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents: 15921
diff changeset
7929 build_plugin_actions(GtkWidget *menu, PurplePlugin *plugin,
f61113b26032 sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents: 15921
diff changeset
7930 gpointer context)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7931 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7932 GtkWidget *menuitem;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7933 PurplePluginAction *action = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7934 GList *actions, *l;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7935
15980
f61113b26032 sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents: 15921
diff changeset
7936 actions = PURPLE_PLUGIN_ACTIONS(plugin, context);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7937
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7938 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
7939 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7940 if (l->data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7941 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7942 action = (PurplePluginAction *) l->data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7943 action->plugin = plugin;
15980
f61113b26032 sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents: 15921
diff changeset
7944 action->context = context;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7945
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7946 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
7947 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
7948
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7949 g_signal_connect(G_OBJECT(menuitem), "activate",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7950 G_CALLBACK(plugin_act), action);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7951 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
7952 action,
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7953 (GDestroyNotify)purple_plugin_action_free);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7954 gtk_widget_show(menuitem);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7955 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7956 else
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15505
diff changeset
7957 pidgin_separator(menu);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7958 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7959
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7960 g_list_free(actions);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7961 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7962
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7963 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7964 modify_account_cb(GtkWidget *widget, gpointer data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7965 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7966 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
7967 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7968
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7969 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7970 enable_account_cb(GtkCheckMenuItem *widget, gpointer data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7971 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7972 PurpleAccount *account = data;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7973 const PurpleSavedStatus *saved_status;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7974
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7975 saved_status = purple_savedstatus_get_current();
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7976 purple_savedstatus_activate_for_account(saved_status, account);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7977
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7978 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
7979 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7980
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7981 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7982 disable_account_cb(GtkCheckMenuItem *widget, gpointer data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7983 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7984 PurpleAccount *account = data;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7985
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
7986 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
7987 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7988
29991
41c53be0e8b5 Added ability to set the mood on all mood-supporting accounts at once (the
Marcus Lundblad <ml@update.uu.se>
parents: 29931
diff changeset
7989
29854
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
7990
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7991 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
7992 pidgin_blist_update_accounts_menu(void)
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 GtkWidget *menuitem = NULL, *submenu = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7995 GtkAccelGroup *accel_group = NULL;
18063
926ccb104da0 disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents: 18058
diff changeset
7996 GList *l = NULL, *accounts = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7997 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
7998 gboolean enabled_accounts = FALSE;
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 if (accountmenu == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8001 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8002
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8003 /* 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
8004 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
8005 menuitem = l->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8006
23312
a3759c05cc5b Bring back the unintentionally hidden 'Manage Accounts' dialog. Thanks to
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23309
diff changeset
8007 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
8008 gtk_widget_destroy(menuitem);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8009 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8010
23969
5045f2ce9cff disapproval of revision 'f5ca7968e3f6be8f81d068232d389e0b1dab784b'
Kevin Stange <kevin@simguy.net>
parents: 23967
diff changeset
8011 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
8012 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
8013 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
8014 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
8015 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
8016
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8017 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
8018
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8019 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
8020 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
8021 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
8022 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
8023
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8024 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
8025 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
8026 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
8027 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
8028
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8029 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
8030 }
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8031
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8032 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
8033 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
8034 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
8035 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
8036 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
8037 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
8038 {
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8039 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
8040 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
8041 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
8042 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
8043 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
8044 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
8045 }
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8046 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
8047 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
8048 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
8049 } else {
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8050 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
8051 }
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8052 }
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8053
27320
2ee77820cf5e Show the 'Enable Accounts' menu when all accounts are disabled.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27112
diff changeset
8054 if (!enabled_accounts) {
2ee77820cf5e Show the 'Enable Accounts' menu when all accounts are disabled.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27112
diff changeset
8055 gtk_widget_show_all(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
8056 return;
27320
2ee77820cf5e Show the 'Enable Accounts' menu when all accounts are disabled.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27112
diff changeset
8057 }
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
8058
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8059 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
8060 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
8061
e96502c0262e Moved "Enable Account" to the top with "Manage Accounts", and always put a
Ka-Hing Cheung <khc@hxbc.us>
parents: 23326
diff changeset
8062 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
8063 char *buf = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8064 char *accel_path_buf = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8065 GtkWidget *image = NULL;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
8066 PurpleConnection *gc = NULL;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
8067 PurpleAccount *account = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8068 GdkPixbuf *pixbuf = NULL;
15980
f61113b26032 sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents: 15921
diff changeset
8069 PurplePlugin *plugin = NULL;
29854
a0fb6798d87c Made it compile again.
Marcus Lundblad <ml@update.uu.se>
parents: 29852
diff changeset
8070 PurplePluginProtocolInfo *prpl_info;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8071
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8072 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
8073
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8074 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
8075 continue;
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8076
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8077 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
8078 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
8079 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
8080 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
8081 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
8082 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
8083 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
8084 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
8085 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
8086 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
8087 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
8088 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
8089 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
8090 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
8091 }
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8092 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
8093
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8094 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
8095 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
8096 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
8097 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
8098 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
8099
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8100
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8101 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
8102 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
8103 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
8104 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
8105
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8106 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
8107
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8108 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
8109 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL;
29858
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8110 prpl_info = plugin ? PURPLE_PLUGIN_PROTOCOL_INFO(plugin) : NULL;
31534
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 30892
diff changeset
8111
29858
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8112 if (prpl_info &&
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8113 (PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, get_moods) ||
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8114 PURPLE_PLUGIN_HAS_ACTIONS(plugin))) {
29916
6bcf405d5c63 Allow a PRPL to have get_moods return NULL to disable mood setting.
Marcus Lundblad <ml@update.uu.se>
parents: 29902
diff changeset
8115 if (PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, get_moods) &&
29929
3e5bb4e2334c Added PurpleConnection flags to determine support for moods and mood messages.
Marcus Lundblad <ml@update.uu.se>
parents: 29916
diff changeset
8116 gc->flags & PURPLE_CONNECTION_SUPPORT_MOODS) {
30043
72fd8c6144a2 Avoid needlessly iterating over a list, and add some notes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30042
diff changeset
8117
72fd8c6144a2 Avoid needlessly iterating over a list, and add some notes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 30042
diff changeset
8118 if (purple_account_get_status(account, "mood")) {
29858
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8119 menuitem = gtk_menu_item_new_with_mnemonic(_("Set _Mood..."));
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8120 g_signal_connect(G_OBJECT(menuitem), "activate",
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8121 G_CALLBACK(set_mood_cb), account);
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8122 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8123 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8124 }
29858
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8125 if (PURPLE_PLUGIN_HAS_ACTIONS(plugin)) {
15980
f61113b26032 sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents: 15921
diff changeset
8126 build_plugin_actions(submenu, plugin, gc);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8127 }
29858
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8128 } else {
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8129 menuitem = gtk_menu_item_new_with_label(_("No actions available"));
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8130 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
2cccb8588c12 Resurrect the PRPL actions to show up in the account submenu
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
8131 gtk_widget_set_sensitive(menuitem, FALSE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8132 }
24850
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8133
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8134 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
8135
289227f729ec Do not show a separator after 'Account -> Enable Account' when not required.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24830
diff changeset
8136 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
8137 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
8138 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
8139 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
8140 }
008f186c7bc7 Fix from "oopepe" to make menus more reliably responsive.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 24987
diff changeset
8141 gtk_widget_show_all(accountmenu);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8142 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8143
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8144 static GList *plugin_submenus = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8145
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8146 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
8147 pidgin_blist_update_plugin_actions(void)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8148 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8149 GtkWidget *menuitem, *submenu;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
8150 PurplePlugin *plugin = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8151 GList *l;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8152 GtkAccelGroup *accel_group;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8153
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8154 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
8155
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8156 g_return_if_fail(pluginmenu != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8157
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8158 /* 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
8159 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
8160 gtk_widget_destroy(GTK_WIDGET(l->data));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8161 g_list_free(plugin_submenus);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8162 plugin_submenus = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8163
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8164 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
8165
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8166 /* Add a submenu for each plugin with custom actions */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
8167 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
8168 char *path;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8169
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
8170 plugin = (PurplePlugin *) l->data;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
8171
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
8172 if (PURPLE_IS_PROTOCOL_PLUGIN(plugin))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8173 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8174
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
8175 if (!PURPLE_PLUGIN_HAS_ACTIONS(plugin))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8176 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8177
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8178 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
8179 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
8180
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8181 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
8182
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8183 submenu = gtk_menu_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8184 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
8185
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8186 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
8187 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
8188 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
8189 g_free(path);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8190
15980
f61113b26032 sf patch #1689182, from Will Thompson
Mark Doliner <mark@kingant.net>
parents: 15921
diff changeset
8191 build_plugin_actions(submenu, plugin, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8192 }
25076
008f186c7bc7 Fix from "oopepe" to make menus more reliably responsive.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 24987
diff changeset
8193 gtk_widget_show_all(pluginmenu);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8194 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8195
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8196 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8197 sortmethod_act(GtkCheckMenuItem *checkmenuitem, char *id)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8198 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8199 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
8200 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
8201 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
8202 /* This is redundant. I think. */
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
8203 /* 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
8204 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
8205
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
8206 pidgin_clear_cursor(gtkblist->window);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8207 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8208 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8209
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8210 void
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
8211 pidgin_blist_update_sort_methods(void)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8212 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8213 GtkWidget *menuitem = NULL, *activeitem = NULL;
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
8214 PidginBlistSortMethod *method = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8215 GList *l;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8216 GSList *sl = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8217 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
8218 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
8219
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8220 if ((gtkblist == NULL) || (gtkblist->ift == NULL))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8221 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8222
27721
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
8223 g_return_if_fail(m != NULL);
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
8224
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8225 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
8226
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8227 if (sortmenu == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8228 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8229
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8230 /* 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
8231 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
8232 menuitem = l->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8233 gtk_widget_destroy(GTK_WIDGET(menuitem));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8234 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8235
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15500
diff changeset
8236 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
8237 method = (PidginBlistSortMethod *) l->data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8238 menuitem = gtk_radio_menu_item_new_with_label(sl, _(method->name));
27721
bbce09a8e5a5 Don't allow NULL sort method IDs and don't crash on them. Fixes #9658.
Paul Aurich <paul@darkrain42.org>
parents: 27705
diff changeset
8239 if (g_str_equal(m, method->id))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8240 activeitem = menuitem;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8241 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
8242 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
8243 g_signal_connect(G_OBJECT(menuitem), "toggled",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8244 G_CALLBACK(sortmethod_act), method->id);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8245 gtk_widget_show(menuitem);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8246 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8247 if (activeitem)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8248 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
8249 }