annotate pidgin/gtknotify.c @ 27325:ecdc58da4cdd

Clear the notifications via a signal instead of pidgin_close_notify. If you have the detailed new mail window open when you sign off all accounts with mail notifications, the window won't be closed, which is kinda weird. Let's first see if this is on the right track before I go overboard. Refs #9345. Sulabh, please test this!
author Paul Aurich <paul@darkrain42.org>
date Thu, 02 Jul 2009 04:15:21 +0000
parents 8ecd6945a96a
children 357405dc8b2c
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 gtknotify.c GTK+ Notification API
16193
247e421c4fa6 Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@wiktel.com>
parents: 16062
diff changeset
3 * @ingroup pidgin
20251
6b8bc3309ab7 applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@wiktel.com>
parents: 20217
diff changeset
4 */
6b8bc3309ab7 applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@wiktel.com>
parents: 20217
diff changeset
5
6b8bc3309ab7 applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@wiktel.com>
parents: 20217
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: 19653
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 #include "internal.h"
15514
535f002e7b0f More pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15509
diff changeset
27 #include "pidgin.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29 #include <gdk/gdkkeysyms.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
31 #include "account.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32 #include "connection.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 "prefs.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
35 #include "pidginstock.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 #include "util.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
38 #include "gtkblist.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
39 #include "gtkimhtml.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
40 #include "gtknotify.h"
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
41 #include "gtkpounce.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42 #include "gtkutils.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
43
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
44 typedef struct
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
45 {
17858
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
46 GtkWidget *window;
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
47 int count;
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
48 } PidginUserInfo;
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
49
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
50 typedef struct
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
51 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
52 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
53 char *url;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54 GtkWidget *label;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
55 int count;
22826
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
56 gboolean purple_has_handle;
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
57 } PidginNotifyMailData;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
59 typedef struct
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
61 PurpleAccount *account;
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
62 PurplePounce *pounce;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
63 } PidginNotifyPounceData;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
64
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
65
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
66 typedef struct
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
67 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
68 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 GtkListStore *model;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70 GtkWidget *treeview;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
71 GtkWidget *window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
72 gpointer user_data;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
73 PurpleNotifySearchResults *results;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
74
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
75 } PidginNotifySearchResultsData;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
76
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
77 typedef struct
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
78 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
79 PurpleNotifySearchButton *button;
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
80 PidginNotifySearchResultsData *data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
81
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
82 } PidginNotifySearchResultsButtonData;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
83
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
84 enum
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
85 {
15820
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
86 PIDGIN_MAIL_ICON,
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
87 PIDGIN_MAIL_TEXT,
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
88 PIDGIN_MAIL_DATA,
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
89 COLUMNS_PIDGIN_MAIL
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
90 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
91
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
92 enum
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
93 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
94 PIDGIN_POUNCE_ICON,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
95 PIDGIN_POUNCE_ALIAS,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
96 PIDGIN_POUNCE_EVENT,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
97 PIDGIN_POUNCE_TEXT,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
98 PIDGIN_POUNCE_DATE,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
99 PIDGIN_POUNCE_DATA,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
100 PIDGIN_POUNCE_COLUMNS
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
101 };
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
102
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
103 typedef struct _PidginNotifyDialog PidginNotifyDialog;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
104 typedef PidginNotifyDialog PidginMailDialog;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
105
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
106 struct _PidginNotifyDialog
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
107 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
108 GtkWidget *dialog;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
109 GtkWidget *treeview;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110 GtkTreeStore *treemodel;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
111 GtkLabel *label;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
112 GtkWidget *open_button;
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
113 GtkWidget *dismiss_button;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
114 GtkWidget *edit_button;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
115 int total_count;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
116 gboolean in_use;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
117 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
118
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
119 typedef enum
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
120 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
121 PIDGIN_NOTIFY_MAIL,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
122 PIDGIN_NOTIFY_POUNCE,
27117
9c36a340fcaf Setting `dialog->open_button = button` when `button` is not yet assigned
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26922
diff changeset
123 PIDGIN_NOTIFY_TYPES
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
124 } PidginNotifyType;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
125
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
126 static PidginNotifyDialog *mail_dialog = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
127 static PidginNotifyDialog *pounce_dialog = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
128
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
129 static GtkWidget *pidgin_get_notification_dialog(PidginNotifyType type);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
130 static void *pidgin_notify_emails(PurpleConnection *gc, size_t count, gboolean detailed,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
131 const char **subjects,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
132 const char **froms, const char **tos,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133 const char **urls);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
134
22826
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
135 static void pidgin_close_notify(PurpleNotifyType type, void *ui_handle);
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
136
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
137 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
138 message_response_cb(GtkDialog *dialog, gint id, GtkWidget *widget)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
139 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
140 purple_notify_close(PURPLE_NOTIFY_MESSAGE, widget);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
141 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
142
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
143 static void
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
144 pounce_response_close(PidginNotifyDialog *dialog)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
145 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
146 GtkTreeIter iter;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
147 PidginNotifyPounceData *pounce_data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
148
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
149 while (gtk_tree_model_get_iter_first(
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
150 GTK_TREE_MODEL(pounce_dialog->treemodel), &iter)) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
151 gtk_tree_model_get(GTK_TREE_MODEL(pounce_dialog->treemodel), &iter,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
152 PIDGIN_POUNCE_DATA, &pounce_data,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
153 -1);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
154 gtk_tree_store_remove(dialog->treemodel, &iter);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
155
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
156 g_free(pounce_data);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
157 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
158
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
159 gtk_widget_destroy(pounce_dialog->dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
160 g_free(pounce_dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
161 pounce_dialog = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
162 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
163
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
164 static void
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
165 delete_foreach(GtkTreeModel *model, GtkTreePath *path,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
166 GtkTreeIter *iter, gpointer data)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
167 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
168 PidginNotifyPounceData *pounce_data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
169
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
170 gtk_tree_model_get(model, iter,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
171 PIDGIN_POUNCE_DATA, &pounce_data,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
172 -1);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
173
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
174 if (pounce_data != NULL)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
175 g_free(pounce_data);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
176 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
177
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
178 static void
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
179 append_to_list(GtkTreeModel *model, GtkTreePath *path,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
180 GtkTreeIter *iter, gpointer data)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
181 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
182 GList **list = data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
183 *list = g_list_prepend(*list, gtk_tree_path_copy(path));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
184 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
185 static void
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
186 pounce_response_dismiss()
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
187 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
188 GtkTreeSelection *selection;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
189 GList *list = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
190
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
191 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
192 gtk_tree_selection_selected_foreach(selection, delete_foreach, pounce_dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
193 gtk_tree_selection_selected_foreach(selection, append_to_list, &list);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
194
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
195 while (list) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
196 GtkTreeIter iter;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
197 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(pounce_dialog->treemodel), &iter,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
198 list->data)) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
199 gtk_tree_store_remove(GTK_TREE_STORE(pounce_dialog->treemodel), &iter);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
200 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
201 gtk_tree_path_free(list->data);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
202 list = g_list_delete_link(list, list);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
203 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
204 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
205
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
206 static void
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
207 pounce_response_edit_cb(GtkTreeModel *model, GtkTreePath *path,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
208 GtkTreeIter *iter, gpointer data)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
209 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
210 PidginNotifyPounceData *pounce_data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
211 PidginNotifyDialog *dialog = (PidginNotifyDialog*)data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
212 PurplePounce *pounce;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
213 GList *list;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
214
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
215 list = purple_pounces_get_all();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
216
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
217 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), iter,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
218 PIDGIN_POUNCE_DATA, &pounce_data,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
219 -1);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
220
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
221 for (; list != NULL; list = list->next) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
222 pounce = list->data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
223 if (pounce == pounce_data->pounce) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
224 pidgin_pounce_editor_show(pounce_data->account, NULL, pounce_data->pounce);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
225 return;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
226 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
227 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
228
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
229 purple_debug_warning("gtknotify", "Pounce was destroyed.\n");
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
230 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
231
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
232 static void
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
233 pounce_response_cb(GtkDialog *dlg, gint id, PidginNotifyDialog *dialog)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
234 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
235 GtkTreeSelection *selection = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
236
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
237 switch (id) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
238 case GTK_RESPONSE_CLOSE:
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
239 case GTK_RESPONSE_DELETE_EVENT:
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
240 pounce_response_close(dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
241 break;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
242 case GTK_RESPONSE_NO:
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
243 pounce_response_dismiss();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
244 break;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
245 case GTK_RESPONSE_APPLY:
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
246 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
247 gtk_tree_selection_selected_foreach(selection, pounce_response_edit_cb,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
248 dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
249 break;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
250 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
251 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
252
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
253 static void
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
254 pounce_row_selected_cb(GtkTreeView *tv, GtkTreePath *path,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
255 GtkTreeViewColumn *col, gpointer data)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
256 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
257 GtkTreeIter iter;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
258 GtkTreeSelection *selection;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
259 gboolean selected;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
260 GList *list;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
261
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
262 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
263
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
264 selected = gtk_tree_selection_get_selected(selection,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
265 NULL, &iter);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
266
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
267 if (selected) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
268 PurplePounce *pounce;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
269 PidginNotifyPounceData *pounce_data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
270
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
271 list = purple_pounces_get_all();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
272
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
273 gtk_tree_model_get(GTK_TREE_MODEL(pounce_dialog->treemodel), &iter,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
274 PIDGIN_POUNCE_DATA, &pounce_data,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
275 -1);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
276
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
277 gtk_widget_set_sensitive(pounce_dialog->edit_button, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
278
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
279 for (; list != NULL; list = list->next) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
280 pounce = list->data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
281 if (pounce == pounce_data->pounce) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
282 gtk_widget_set_sensitive(pounce_dialog->edit_button, TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
283 break;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
284 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
285 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
286
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
287 gtk_widget_set_sensitive(pounce_dialog->dismiss_button, TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
288 } else {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
289 gtk_widget_set_sensitive(pounce_dialog->edit_button, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
290 gtk_widget_set_sensitive(pounce_dialog->dismiss_button, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
291 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
292
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
293
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
294 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
295
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
296 static void
15820
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
297 email_response_cb(GtkDialog *dlg, gint id, PidginMailDialog *dialog)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
298 {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
299 PidginNotifyMailData *data = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
300 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
302 if (id == GTK_RESPONSE_YES)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
303 {
27325
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
304 /* A single row activated. Remove that row. */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
305 GtkTreeSelection *selection;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
306
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
307 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
308
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
309 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
310 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
311 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), &iter,
15820
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
312 PIDGIN_MAIL_DATA, &data, -1);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
313 purple_notify_uri(NULL, data->url);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
314
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
315 gtk_tree_store_remove(dialog->treemodel, &iter);
23927
128f1d7e12ff Some cleanup and a little leak fix that I thought I committed a while ago.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23926
diff changeset
316 if (data->purple_has_handle)
128f1d7e12ff Some cleanup and a little leak fix that I thought I committed a while ago.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23926
diff changeset
317 purple_notify_close(PURPLE_NOTIFY_EMAILS, data);
128f1d7e12ff Some cleanup and a little leak fix that I thought I committed a while ago.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23926
diff changeset
318 else
128f1d7e12ff Some cleanup and a little leak fix that I thought I committed a while ago.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23926
diff changeset
319 pidgin_close_notify(PURPLE_NOTIFY_EMAILS, data);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
320
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
321 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mail_dialog->treemodel), &iter))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
322 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
323 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
324 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
325 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
326 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
327 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
328 {
27325
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
329 /* Remove all the rows */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
330 while (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mail_dialog->treemodel), &iter))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
331 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
332 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), &iter,
15820
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
333 PIDGIN_MAIL_DATA, &data, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
334
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
335 if (id == GTK_RESPONSE_ACCEPT)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
336 purple_notify_uri(NULL, data->url);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
337
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
338 gtk_tree_store_remove(dialog->treemodel, &iter);
22826
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
339 if (data->purple_has_handle)
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
340 purple_notify_close(PURPLE_NOTIFY_EMAILS, data);
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
341 else
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
342 pidgin_close_notify(PURPLE_NOTIFY_EMAILS, data);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
343 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
344 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
345 gtk_widget_destroy(dialog->dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
346 g_free(dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
347 mail_dialog = NULL;
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
19316
c5898e7d70fa Open emails by doubleclicking the row.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18860
diff changeset
350 static void email_row_activated_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) {
c5898e7d70fa Open emails by doubleclicking the row.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18860
diff changeset
351 email_response_cb(GTK_DIALOG(mail_dialog->dialog), GTK_RESPONSE_YES, mail_dialog);
c5898e7d70fa Open emails by doubleclicking the row.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18860
diff changeset
352 }
c5898e7d70fa Open emails by doubleclicking the row.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18860
diff changeset
353
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
354 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
355 reset_mail_dialog(GtkDialog *dialog)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
356 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
357 if (mail_dialog->in_use)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
358 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
359 gtk_widget_destroy(mail_dialog->dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
360 g_free(mail_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
361 mail_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
362 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
363
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21888
diff changeset
364 static gboolean
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
365 formatted_close_cb(GtkWidget *win, GdkEvent *event, void *user_data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
366 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
367 purple_notify_close(PURPLE_NOTIFY_FORMATTED, win);
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21888
diff changeset
368 return FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
369 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
370
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21888
diff changeset
371 static gboolean
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
372 searchresults_close_cb(PidginNotifySearchResultsData *data, GdkEvent *event, gpointer user_data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
373 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
374 purple_notify_close(PURPLE_NOTIFY_SEARCHRESULTS, data);
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21888
diff changeset
375 return FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
376 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
377
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
378 static void
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
379 searchresults_callback_wrapper_cb(GtkWidget *widget, PidginNotifySearchResultsButtonData *bd)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
380 {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
381 PidginNotifySearchResultsData *data = bd->data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
382
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
383 GtkTreeSelection *selection;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
384 GtkTreeModel *model;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
385 GtkTreeIter iter;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
386 PurpleNotifySearchButton *button;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
387 GList *row = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
388 gchar *str;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
389 int i;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
390
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
391 g_return_if_fail(data != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
392
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
393 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
394
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
395 if (gtk_tree_selection_get_selected(selection, &model, &iter))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
396 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
397 for (i = 1; i < gtk_tree_model_get_n_columns(GTK_TREE_MODEL(model)); i++) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
398 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, i, &str, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
399 row = g_list_append(row, str);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
400 }
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
403 button = bd->button;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
404 button->callback(purple_account_get_connection(data->account), row, data->user_data);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
405 g_list_foreach(row, (GFunc)g_free, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
406 g_list_free(row);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
407 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
408
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
409 static void *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
410 pidgin_notify_message(PurpleNotifyMsgType type, const char *title,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
411 const char *primary, const char *secondary)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
412 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
413 GtkWidget *dialog;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
414 GtkWidget *hbox;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
415 GtkWidget *label;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
416 GtkWidget *img = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
417 char label_text[2048];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
418 const char *icon_name = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
419 char *primary_esc, *secondary_esc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
420
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
421 switch (type)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
422 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
423 case PURPLE_NOTIFY_MSG_ERROR:
15436
9c0cf4db1f4d Dialog icon changes
Sean Egan <seanegan@gmail.com>
parents: 15435
diff changeset
424 icon_name = PIDGIN_STOCK_DIALOG_ERROR;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
425 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
426
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
427 case PURPLE_NOTIFY_MSG_WARNING:
15436
9c0cf4db1f4d Dialog icon changes
Sean Egan <seanegan@gmail.com>
parents: 15435
diff changeset
428 icon_name = PIDGIN_STOCK_DIALOG_WARNING;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
429 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
430
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
431 case PURPLE_NOTIFY_MSG_INFO:
15436
9c0cf4db1f4d Dialog icon changes
Sean Egan <seanegan@gmail.com>
parents: 15435
diff changeset
432 icon_name = PIDGIN_STOCK_DIALOG_INFO;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
433 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
434
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
435 default:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
436 icon_name = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
437 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
438 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
439
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
440 if (icon_name != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
441 {
15436
9c0cf4db1f4d Dialog icon changes
Sean Egan <seanegan@gmail.com>
parents: 15435
diff changeset
442 img = gtk_image_new_from_stock(icon_name, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
443 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
444 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
445
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
446 dialog = gtk_dialog_new_with_buttons(title ? title : PIDGIN_ALERT_TITLE,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
447 NULL, 0, GTK_STOCK_CLOSE,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
448 GTK_RESPONSE_CLOSE, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
449
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
450 gtk_window_set_role(GTK_WINDOW(dialog), "notify_dialog");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
451
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
452 g_signal_connect(G_OBJECT(dialog), "response",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
453 G_CALLBACK(message_response_cb), dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
454
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
455 gtk_container_set_border_width(GTK_CONTAINER(dialog), PIDGIN_HIG_BORDER);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
456 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
457 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
458 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER);
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
459 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BOX_SPACE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
460
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
461 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
462 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
463
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
464 if (img != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
465 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
466
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
467 primary_esc = g_markup_escape_text(primary, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
468 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
469 g_snprintf(label_text, sizeof(label_text),
21198
b6136fd465a0 If there is no secondary text in a notify, avoid adding "\n\n" and creating
Richard Laager <rlaager@wiktel.com>
parents: 20740
diff changeset
470 "<span weight=\"bold\" size=\"larger\">%s</span>%s%s",
b6136fd465a0 If there is no secondary text in a notify, avoid adding "\n\n" and creating
Richard Laager <rlaager@wiktel.com>
parents: 20740
diff changeset
471 primary_esc, (secondary ? "\n\n" : ""),
b6136fd465a0 If there is no secondary text in a notify, avoid adding "\n\n" and creating
Richard Laager <rlaager@wiktel.com>
parents: 20740
diff changeset
472 (secondary ? secondary_esc : ""));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
473 g_free(primary_esc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
474 g_free(secondary_esc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
475
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
476 label = gtk_label_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
477
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
478 gtk_label_set_markup(GTK_LABEL(label), label_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
479 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
18860
0a8dc9eb4f8e Allow notification labels to be selectable (for copy-and-paste purposes). Fixes #563.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18547
diff changeset
480 gtk_label_set_selectable(GTK_LABEL(label), TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
481 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
482 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
483
21888
c88a3f2dbb52 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21227
diff changeset
484 pidgin_auto_parent_window(dialog);
c88a3f2dbb52 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21227
diff changeset
485
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
486 gtk_widget_show_all(dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
487
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
488 return dialog;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
489 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
490
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
491 static void
15820
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
492 selection_changed_cb(GtkTreeSelection *sel, PidginMailDialog *dialog)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
493 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
494 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
495 GtkTreeModel *model;
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
496 PidginNotifyMailData *data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
497 gboolean active = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
498
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
499 if (gtk_tree_selection_get_selected(sel, &model, &iter) == FALSE)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
500 active = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
501 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
502 {
15820
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
503 gtk_tree_model_get(model, &iter, PIDGIN_MAIL_DATA, &data, -1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
504 if (data->url == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
505 active = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
506 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
507
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
508 gtk_widget_set_sensitive(dialog->open_button, active);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
509 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
510
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
511 static void *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
512 pidgin_notify_email(PurpleConnection *gc, const char *subject, const char *from,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
513 const char *to, const char *url)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
514 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
515 return pidgin_notify_emails(gc, 1, (subject != NULL),
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
516 (subject == NULL ? NULL : &subject),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
517 (from == NULL ? NULL : &from),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
518 (to == NULL ? NULL : &to),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
519 (url == NULL ? NULL : &url));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
520 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
521
15735
427ca6a0aa87 Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15734
diff changeset
522 static int
427ca6a0aa87 Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15734
diff changeset
523 mail_window_focus_cb(GtkWidget *widget, GdkEventFocus *focus, gpointer null)
427ca6a0aa87 Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15734
diff changeset
524 {
427ca6a0aa87 Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15734
diff changeset
525 pidgin_set_urgent(GTK_WINDOW(widget), FALSE);
427ca6a0aa87 Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15734
diff changeset
526 return 0;
427ca6a0aa87 Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15734
diff changeset
527 }
427ca6a0aa87 Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15734
diff changeset
528
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
529 static GtkWidget *
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21913
diff changeset
530 pidgin_get_mail_dialog(void)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
531 {
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
532 return pidgin_get_notification_dialog(PIDGIN_NOTIFY_MAIL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
533 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
534
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
535 /* count == 0 means this is a detailed mail notification.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
536 * count > 0 mean non-detailed.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
537 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
538 static void *
22840
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
539 pidgin_notify_add_mail(GtkTreeStore *treemodel, PurpleAccount *account, char *notification, const char *url, int count, gboolean clear, gboolean *new_data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
540 {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
541 PidginNotifyMailData *data = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
542 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
543 GdkPixbuf *icon;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
544 gboolean new_n = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
545
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
546 if (count > 0 || clear) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
547 /* Allow only one non-detailed email notification for each account */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
548 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(treemodel), &iter)) {
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
549 gboolean advanced;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
550 do {
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
551 advanced = FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
552 gtk_tree_model_get(GTK_TREE_MODEL(treemodel), &iter,
15820
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
553 PIDGIN_MAIL_DATA, &data, -1);
27318
8ecd6945a96a Avoid a null deref when clearing mail notifications. Refs #9345.
Paul Aurich <paul@darkrain42.org>
parents: 27268
diff changeset
554 if (data && data->account == account) {
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
555 if (clear) {
20290
008865326919 Fix building on very old gtk where gtk_tree_store_remove didn't return a
Stu Tomlinson <stu@nosnilmot.com>
parents: 20253
diff changeset
556 #if GTK_CHECK_VERSION(2,2,0)
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
557 advanced = gtk_tree_store_remove(treemodel, &iter);
20290
008865326919 Fix building on very old gtk where gtk_tree_store_remove didn't return a
Stu Tomlinson <stu@nosnilmot.com>
parents: 20253
diff changeset
558 #else
008865326919 Fix building on very old gtk where gtk_tree_store_remove didn't return a
Stu Tomlinson <stu@nosnilmot.com>
parents: 20253
diff changeset
559 gtk_tree_store_remove(treemodel, &iter);
008865326919 Fix building on very old gtk where gtk_tree_store_remove didn't return a
Stu Tomlinson <stu@nosnilmot.com>
parents: 20253
diff changeset
560 advanced = (iter.stamp == 0) ? FALSE : TRUE;
008865326919 Fix building on very old gtk where gtk_tree_store_remove didn't return a
Stu Tomlinson <stu@nosnilmot.com>
parents: 20253
diff changeset
561 #endif
27268
25db53cfc12c Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27117
diff changeset
562 if (data->purple_has_handle)
25db53cfc12c Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27117
diff changeset
563 purple_notify_close(PURPLE_NOTIFY_EMAILS, data);
25db53cfc12c Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27117
diff changeset
564 else
25db53cfc12c Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27117
diff changeset
565 pidgin_close_notify(PURPLE_NOTIFY_EMAILS, data);
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
566 /* We're completely done if we've processed all entries */
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
567 if (!advanced)
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
568 return NULL;
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
569 } else if (data->count > 0) {
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
570 new_n = FALSE;
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
571 g_free(data->url);
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
572 data->url = NULL;
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
573 mail_dialog->total_count -= data->count;
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
574 break;
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
575 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
576 }
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
577 } while (advanced || gtk_tree_model_iter_next(GTK_TREE_MODEL(treemodel), &iter));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
578 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
579 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
580
20253
6f4defb6f399 applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents: 20251
diff changeset
581 if (clear)
6f4defb6f399 applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents: 20251
diff changeset
582 return NULL;
6f4defb6f399 applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents: 20251
diff changeset
583
6f4defb6f399 applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents: 20251
diff changeset
584 icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_MEDIUM);
6f4defb6f399 applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents: 20251
diff changeset
585
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
586 if (new_n) {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
587 data = g_new0(PidginNotifyMailData, 1);
22826
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
588 data->purple_has_handle = TRUE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
589 gtk_tree_store_append(treemodel, &iter, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
590 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
591
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
592 if (url != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
593 data->url = g_strdup(url);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
594
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
595 gtk_tree_store_set(treemodel, &iter,
15820
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
596 PIDGIN_MAIL_ICON, icon,
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
597 PIDGIN_MAIL_TEXT, notification,
c02a897a67c7 More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15735
diff changeset
598 PIDGIN_MAIL_DATA, data,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
599 -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
600 data->account = account;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
601 data->count = count;
22826
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
602
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
603 if (icon)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
604 g_object_unref(icon);
22840
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
605
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
606 if (new_data)
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
607 *new_data = new_n;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
608 return data;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
611 static void *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
612 pidgin_notify_emails(PurpleConnection *gc, size_t count, gboolean detailed,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
613 const char **subjects, const char **froms,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
614 const char **tos, const char **urls)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
615 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
616 GtkWidget *dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
617 char *notification;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
618 PurpleAccount *account;
22840
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
619 PidginNotifyMailData *data = NULL, *data2;
27268
25db53cfc12c Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27117
diff changeset
620 gboolean new_data = FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
621
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
622 /* Don't bother updating if there aren't new emails and we don't have any displayed currently */
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
623 if (count == 0 && mail_dialog == NULL)
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
624 return NULL;
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
625
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
626 account = purple_connection_get_account(gc);
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
627 dialog = pidgin_get_mail_dialog(); /* This creates mail_dialog if necessary */
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
628
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
629 mail_dialog->total_count += count;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
630 if (detailed) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
631 while (count--) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
632 char *to_text = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
633 char *from_text = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
634 char *subject_text = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
635 char *tmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
636 gboolean first = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
637
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
638 if (tos != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
639 tmp = g_markup_escape_text(*tos, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
640 to_text = g_strdup_printf("<b>%s</b>: %s\n", _("Account"), tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
641 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
642 first = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
643 tos++;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
644 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
645 if (froms != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
646 tmp = g_markup_escape_text(*froms, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
647 from_text = g_strdup_printf("%s<b>%s</b>: %s\n", first ? "<br>" : "", _("Sender"), tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
648 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
649 first = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
650 froms++;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
651 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
652 if (subjects != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
653 tmp = g_markup_escape_text(*subjects, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
654 subject_text = g_strdup_printf("%s<b>%s</b>: %s", first ? "<br>" : "", _("Subject"), tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
655 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
656 first = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
657 subjects++;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
658 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
659 #define SAFE(x) ((x) ? (x) : "")
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
660 notification = g_strdup_printf("%s%s%s", SAFE(to_text), SAFE(from_text), SAFE(subject_text));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
661 #undef SAFE
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
662 g_free(to_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
663 g_free(from_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
664 g_free(subject_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
665
22826
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
666 /* If we don't keep track of this, will leak "data" for each of the notifications except the last */
22840
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
667 data2 = pidgin_notify_add_mail(mail_dialog->treemodel, account, notification, urls ? *urls : NULL, 0, FALSE, &new_data);
27268
25db53cfc12c Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27117
diff changeset
668 if (data2 && new_data) {
22840
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
669 if (data)
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
670 data->purple_has_handle = FALSE;
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
671 data = data2;
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
672 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
673 g_free(notification);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
674
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
675 if (urls != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
676 urls++;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
677 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
678 } else {
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
679 if (count > 0) {
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
680 notification = g_strdup_printf(ngettext("%s has %d new message.",
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
681 "%s has %d new messages.",
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
682 (int)count),
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
683 *tos, (int)count);
22840
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
684 data2 = pidgin_notify_add_mail(mail_dialog->treemodel, account, notification, urls ? *urls : NULL, count, FALSE, &new_data);
27268
25db53cfc12c Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27117
diff changeset
685 if (data2 && new_data) {
22840
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
686 if (data)
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
687 data->purple_has_handle = FALSE;
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
688 data = data2;
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
689 }
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
690 g_free(notification);
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
691 } else {
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
692 GtkTreeIter iter;
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
693
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
694 /* Clear out all mails for the account */
22840
502bac8b2b4c Fix a double free caused by my previous leak fix not covering all possible
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22826
diff changeset
695 pidgin_notify_add_mail(mail_dialog->treemodel, account, NULL, NULL, 0, TRUE, NULL);
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
696
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
697 if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mail_dialog->treemodel), &iter)) {
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
698 /* There is no API to clear the headline specifically */
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
699 /* This will trigger reset_mail_dialog() */
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
700 pidgin_blist_set_headline(NULL, NULL, NULL, NULL, NULL);
20253
6f4defb6f399 applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents: 20251
diff changeset
701 return NULL;
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
702 }
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
703 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
704 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
705
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
706 if (!GTK_WIDGET_VISIBLE(dialog)) {
15436
9c0cf4db1f4d Dialog icon changes
Sean Egan <seanegan@gmail.com>
parents: 15435
diff changeset
707 GdkPixbuf *pixbuf = gtk_widget_render_icon(dialog, PIDGIN_STOCK_DIALOG_MAIL,
9c0cf4db1f4d Dialog icon changes
Sean Egan <seanegan@gmail.com>
parents: 15435
diff changeset
708 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL), NULL);
23182
e0bcb8cfda74 Use "email" and "Email" consistently. This is potentially controversial,
Richard Laager <rlaager@wiktel.com>
parents: 22840
diff changeset
709 char *label_text = g_strdup_printf(ngettext("<b>%d new email.</b>",
e0bcb8cfda74 Use "email" and "Email" consistently. This is potentially controversial,
Richard Laager <rlaager@wiktel.com>
parents: 22840
diff changeset
710 "<b>%d new emails.</b>",
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
711 mail_dialog->total_count), mail_dialog->total_count);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
712 mail_dialog->in_use = TRUE; /* So that _set_headline doesn't accidentally
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
713 remove the notifications when replacing an
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
714 old notification. */
20217
d4e250c3cd44 applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
715 pidgin_blist_set_headline(label_text,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
716 pixbuf, G_CALLBACK(gtk_widget_show_all), dialog,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
717 (GDestroyNotify)reset_mail_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
718 mail_dialog->in_use = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
719 g_free(label_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
720 if (pixbuf)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
721 g_object_unref(pixbuf);
15734
80fe830ab842 Set the URGENT hint for the mail window when new mails come in and the window is open.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15560
diff changeset
722 } else if (!GTK_WIDGET_HAS_FOCUS(dialog))
80fe830ab842 Set the URGENT hint for the mail window when new mails come in and the window is open.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15560
diff changeset
723 pidgin_set_urgent(GTK_WINDOW(dialog), TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
724
22826
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
725 return data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
726 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
727
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
728 static gboolean
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
729 formatted_input_cb(GtkWidget *win, GdkEventKey *event, gpointer data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
730 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
731 if (event->keyval == GDK_Escape)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
732 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
733 purple_notify_close(PURPLE_NOTIFY_FORMATTED, win);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
734
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
735 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
736 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
737
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
738 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
739 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
740
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
741 static GtkIMHtmlOptions
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21913
diff changeset
742 notify_imhtml_options(void)
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
743 {
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
744 GtkIMHtmlOptions options = 0;
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
745
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
746 if (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_incoming_formatting"))
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
747 options |= GTK_IMHTML_NO_COLOURS | GTK_IMHTML_NO_FONTS | GTK_IMHTML_NO_SIZES;
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
748
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
749 options |= GTK_IMHTML_NO_COMMENTS;
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
750 options |= GTK_IMHTML_NO_TITLE;
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
751 options |= GTK_IMHTML_NO_NEWLINE;
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
752 options |= GTK_IMHTML_NO_SCROLL;
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
753 return options;
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
754 }
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
755
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
756 static void *
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
757 pidgin_notify_formatted(const char *title, const char *primary,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
758 const char *secondary, const char *text)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
759 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
760 GtkWidget *window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
761 GtkWidget *vbox;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
762 GtkWidget *label;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
763 GtkWidget *button;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
764 GtkWidget *imhtml;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
765 GtkWidget *frame;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
766 char label_text[2048];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
767 char *linked_text, *primary_esc, *secondary_esc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
768
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
769 window = gtk_dialog_new();
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
770 gtk_window_set_title(GTK_WINDOW(window), title);
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
771 gtk_container_set_border_width(GTK_CONTAINER(window), PIDGIN_HIG_BORDER);
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
772 gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
15374
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 g_signal_connect(G_OBJECT(window), "delete_event",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
775 G_CALLBACK(formatted_close_cb), NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
776
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
777 /* Setup the main vbox */
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
778 vbox = GTK_DIALOG(window)->vbox;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
779
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
780 /* Setup the descriptive label */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
781 primary_esc = g_markup_escape_text(primary, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
782 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
783 g_snprintf(label_text, sizeof(label_text),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
784 "<span weight=\"bold\" size=\"larger\">%s</span>%s%s",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
785 primary_esc,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
786 (secondary ? "\n" : ""),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
787 (secondary ? secondary_esc : ""));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
788 g_free(primary_esc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
789 g_free(secondary_esc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
790
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
791 label = gtk_label_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
792
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
793 gtk_label_set_markup(GTK_LABEL(label), label_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
794 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
18860
0a8dc9eb4f8e Allow notification labels to be selectable (for copy-and-paste purposes). Fixes #563.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18547
diff changeset
795 gtk_label_set_selectable(GTK_LABEL(label), TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
796 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
797 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
798 gtk_widget_show(label);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
799
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
800 /* Add the imhtml */
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
801 frame = pidgin_create_imhtml(FALSE, &imhtml, NULL, NULL);
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
802 gtk_widget_set_name(imhtml, "pidgin_notify_imhtml");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
803 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
804 gtk_imhtml_get_format_functions(GTK_IMHTML(imhtml)) | GTK_IMHTML_IMAGE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
805 gtk_widget_set_size_request(imhtml, 300, 250);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
806 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
807 gtk_widget_show(frame);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
808
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
809 /* Add the Close button. */
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
810 button = gtk_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
18860
0a8dc9eb4f8e Allow notification labels to be selectable (for copy-and-paste purposes). Fixes #563.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18547
diff changeset
811 gtk_widget_grab_focus(button);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
812
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
813 g_signal_connect_swapped(G_OBJECT(button), "clicked",
24380
9b61b1088dfb Fix an assertion failure/unlikely crash when:
Mark Doliner <mark@kingant.net>
parents: 23927
diff changeset
814 G_CALLBACK(formatted_close_cb), window);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
815 g_signal_connect(G_OBJECT(window), "key_press_event",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
816 G_CALLBACK(formatted_input_cb), NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
817
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
818 /* Make sure URLs are clickable */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
819 linked_text = purple_markup_linkify(text);
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
820 gtk_imhtml_append_text(GTK_IMHTML(imhtml), linked_text, notify_imhtml_options());
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
821 g_free(linked_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
822
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
823 g_object_set_data(G_OBJECT(window), "info-widget", imhtml);
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
824
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
825 /* Show the window */
21888
c88a3f2dbb52 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21227
diff changeset
826 pidgin_auto_parent_window(window);
c88a3f2dbb52 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21227
diff changeset
827
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
828 gtk_widget_show(window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
829
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
830 return window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
831 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
832
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
833 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
834 pidgin_notify_searchresults_new_rows(PurpleConnection *gc, PurpleNotifySearchResults *results,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
835 void *data_)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
836 {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
837 PidginNotifySearchResultsData *data = data_;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
838 GtkListStore *model = data->model;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
839 GtkTreeIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
840 GdkPixbuf *pixbuf;
20100
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
841 GList *row, *column;
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
842 guint n;
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 gtk_list_store_clear(data->model);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
845
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
846 pixbuf = pidgin_create_prpl_icon(purple_connection_get_account(gc), 0.5);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
847
20100
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
848 for (row = results->rows; row != NULL; row = row->next) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
849
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
850 gtk_list_store_append(model, &iter);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
851 gtk_list_store_set(model, &iter, 0, pixbuf, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
852
20100
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
853 n = 1;
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
854 for (column = row->data; column != NULL; column = column->next) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
855 GValue v;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
856
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
857 v.g_type = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
858 g_value_init(&v, G_TYPE_STRING);
20100
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
859 g_value_set_string(&v, column->data);
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
860 gtk_list_store_set_value(model, &iter, n, &v);
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
861 n++;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
862 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
863 }
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 if (pixbuf != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
866 g_object_unref(pixbuf);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
867 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
868
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
869 static void *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
870 pidgin_notify_searchresults(PurpleConnection *gc, const char *title,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
871 const char *primary, const char *secondary,
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
872 PurpleNotifySearchResults *results, gpointer user_data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
873 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
874 GtkWidget *window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
875 GtkWidget *treeview;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
876 GtkWidget *close_button;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
877 GType *col_types;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
878 GtkListStore *model;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
879 GtkCellRenderer *renderer;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
880 guint col_num;
20905
38ee359ea4aa Fix pidgin_notify_searchresults to use the actual title for column headers,
Stu Tomlinson <stu@nosnilmot.com>
parents: 20740
diff changeset
881 GList *columniter;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
882 guint i;
24497
f10aba5592c6 The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents: 24380
diff changeset
883 GList *l;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
884
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
885 GtkWidget *vbox;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
886 GtkWidget *label;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
887 GtkWidget *sw;
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
888 PidginNotifySearchResultsData *data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
889 char *label_text;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
890 char *primary_esc, *secondary_esc;
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 g_return_val_if_fail(gc != NULL, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
893 g_return_val_if_fail(results != NULL, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
894
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
895 data = g_malloc(sizeof(PidginNotifySearchResultsData));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
896 data->user_data = user_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
897 data->results = results;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
898
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
899 /* Create the window */
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
900 window = gtk_dialog_new();
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
901 gtk_window_set_title(GTK_WINDOW(window), title ? title :_("Search Results"));
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
902 gtk_container_set_border_width(GTK_CONTAINER(window), PIDGIN_HIG_BORDER);
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
903 gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
15374
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 g_signal_connect_swapped(G_OBJECT(window), "delete_event",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
906 G_CALLBACK(searchresults_close_cb), data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
907
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
908 /* Setup the main vbox */
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
909 vbox = GTK_DIALOG(window)->vbox;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
910
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
911 /* Setup the descriptive label */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
912 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
913 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
914 label_text = g_strdup_printf(
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
915 "<span weight=\"bold\" size=\"larger\">%s</span>%s%s",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
916 (primary ? primary_esc : ""),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
917 (primary && secondary ? "\n" : ""),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
918 (secondary ? secondary_esc : ""));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
919 g_free(primary_esc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
920 g_free(secondary_esc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
921 label = gtk_label_new(NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
922 gtk_label_set_markup(GTK_LABEL(label), label_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
923 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
924 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
925 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
926 gtk_widget_show(label);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
927 g_free(label_text);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
928
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
929 /* +1 is for the automagically created Status column. */
20100
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
930 col_num = g_list_length(results->columns) + 1;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
931
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
932 /* Setup the list model */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
933 col_types = g_new0(GType, col_num);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
934
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
935 /* There always is this first column. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
936 col_types[0] = GDK_TYPE_PIXBUF;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
937 for (i = 1; i < col_num; i++) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
938 col_types[i] = G_TYPE_STRING;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
939 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
940 model = gtk_list_store_newv(col_num, col_types);
22826
66914f306712 More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22208
diff changeset
941 g_free(col_types);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
942
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
943 /* Setup the scrolled window containing the treeview */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
944 sw = gtk_scrolled_window_new(NULL, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
945 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
946 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
947 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
948 GTK_SHADOW_IN);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
949 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
950 gtk_widget_show(sw);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
951
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
952 /* Setup the treeview */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
953 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model));
22087
d943df776c09 It turns out the tree-models need to be unref'ed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22007
diff changeset
954 g_object_unref(G_OBJECT(model));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
955 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
956 gtk_widget_set_size_request(treeview, 500, 400);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
957 gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
958 GTK_SELECTION_SINGLE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
959 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), TRUE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
960 gtk_container_add(GTK_CONTAINER(sw), treeview);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
961 gtk_widget_show(treeview);
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 renderer = gtk_cell_renderer_pixbuf_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
964 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
965 -1, "", renderer, "pixbuf", 0, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
966
20100
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
967 i = 1;
20905
38ee359ea4aa Fix pidgin_notify_searchresults to use the actual title for column headers,
Stu Tomlinson <stu@nosnilmot.com>
parents: 20740
diff changeset
968 for (columniter = results->columns; columniter != NULL; columniter = columniter->next) {
38ee359ea4aa Fix pidgin_notify_searchresults to use the actual title for column headers,
Stu Tomlinson <stu@nosnilmot.com>
parents: 20740
diff changeset
969 PurpleNotifySearchColumn *column = columniter->data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
970 renderer = gtk_cell_renderer_text_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
971
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
972 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), -1,
20905
38ee359ea4aa Fix pidgin_notify_searchresults to use the actual title for column headers,
Stu Tomlinson <stu@nosnilmot.com>
parents: 20740
diff changeset
973 column->title, renderer, "text", i, NULL);
20100
a3f07fa68e90 Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents: 20074
diff changeset
974 i++;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
975 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
976
24497
f10aba5592c6 The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents: 24380
diff changeset
977 for (l = results->buttons; l; l = l->next) {
f10aba5592c6 The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents: 24380
diff changeset
978 PurpleNotifySearchButton *b = l->data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
979 GtkWidget *button = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
980 switch (b->type) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
981 case PURPLE_NOTIFY_BUTTON_LABELED:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
982 if(b->label) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
983 button = gtk_button_new_with_label(b->label);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
984 } else {
19653
941965d6fd88 Patch from QuLogic. Fixes #2903 ('Missing newlines in debug messages.')
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19366
diff changeset
985 purple_debug_warning("gtknotify", "Missing button label\n");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
986 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
987 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
988 case PURPLE_NOTIFY_BUTTON_CONTINUE:
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
989 button = gtk_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_GO_FORWARD, GTK_RESPONSE_NONE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
990 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
991 case PURPLE_NOTIFY_BUTTON_ADD:
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
992 button = gtk_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_ADD, GTK_RESPONSE_NONE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
993 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
994 case PURPLE_NOTIFY_BUTTON_INFO:
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
995 button = gtk_dialog_add_button(GTK_DIALOG(window), PIDGIN_STOCK_TOOLBAR_USER_INFO, GTK_RESPONSE_NONE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
996 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
997 case PURPLE_NOTIFY_BUTTON_IM:
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
998 button = gtk_dialog_add_button(GTK_DIALOG(window), PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, GTK_RESPONSE_NONE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
999 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1000 case PURPLE_NOTIFY_BUTTON_JOIN:
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
1001 button = gtk_dialog_add_button(GTK_DIALOG(window), PIDGIN_STOCK_CHAT, GTK_RESPONSE_NONE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1002 break;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1003 case PURPLE_NOTIFY_BUTTON_INVITE:
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
1004 button = gtk_dialog_add_button(GTK_DIALOG(window), PIDGIN_STOCK_INVITE, GTK_RESPONSE_NONE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1005 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1006 default:
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1007 purple_debug_warning("gtknotify", "Incorrect button type: %d\n", b->type);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1008 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1009 if (button != NULL) {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
1010 PidginNotifySearchResultsButtonData *bd;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1011
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
1012 bd = g_new0(PidginNotifySearchResultsButtonData, 1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1013 bd->button = b;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1014 bd->data = data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1015
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1016 g_signal_connect(G_OBJECT(button), "clicked",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1017 G_CALLBACK(searchresults_callback_wrapper_cb), bd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1018 g_signal_connect_swapped(G_OBJECT(button), "destroy", G_CALLBACK(g_free), bd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1019 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1020 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1021
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1022 /* Add the Close button */
19366
bd18c02bba9f Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents: 19316
diff changeset
1023 close_button = gtk_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1024
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1025 g_signal_connect_swapped(G_OBJECT(close_button), "clicked",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1026 G_CALLBACK(searchresults_close_cb), data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1027
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1028 data->account = gc->account;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1029 data->model = model;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1030 data->treeview = treeview;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1031 data->window = window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1032
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1033 /* Insert rows. */
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1034 pidgin_notify_searchresults_new_rows(gc, results, data);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1035
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1036 /* Show the window */
21888
c88a3f2dbb52 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21227
diff changeset
1037 pidgin_auto_parent_window(window);
c88a3f2dbb52 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21227
diff changeset
1038
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1039 gtk_widget_show(window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1040 return data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1041 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1042
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1043 /** Xerox'ed from Finch! How the tables have turned!! ;) **/
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1044 /** User information. **/
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1045 static GHashTable *userinfo;
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1046
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1047 static char *
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1048 userinfo_hash(PurpleAccount *account, const char *who)
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1049 {
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1050 char key[256];
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1051 snprintf(key, sizeof(key), "%s - %s", purple_account_get_username(account), purple_normalize(account, who));
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1052 return g_utf8_strup(key, -1);
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1053 }
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1054
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1055 static void
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1056 remove_userinfo(GtkWidget *widget, gpointer key)
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1057 {
17858
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1058 PidginUserInfo *pinfo = g_hash_table_lookup(userinfo, key);
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1059
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1060 while (pinfo->count--)
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1061 purple_notify_close(PURPLE_NOTIFY_USERINFO, widget);
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1062
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1063 g_hash_table_remove(userinfo, key);
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1064 }
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1065
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1066 static void *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1067 pidgin_notify_userinfo(PurpleConnection *gc, const char *who,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1068 PurpleNotifyUserInfo *user_info)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1069 {
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1070 char *info;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1071 void *ui_handle;
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1072 char *key = userinfo_hash(purple_connection_get_account(gc), who);
17858
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1073 PidginUserInfo *pinfo = NULL;
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1074
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1075 if (!userinfo) {
17858
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1076 userinfo = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1077 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1078
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1079 info = purple_notify_user_info_get_text_with_newline(user_info, "<br />");
17858
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1080 pinfo = g_hash_table_lookup(userinfo, key);
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1081 if (pinfo != NULL) {
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1082 GtkIMHtml *imhtml = g_object_get_data(G_OBJECT(pinfo->window), "info-widget");
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1083 char *linked_text = purple_markup_linkify(info);
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1084 gtk_imhtml_clear(imhtml);
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1085 gtk_imhtml_append_text(imhtml, linked_text, notify_imhtml_options());
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1086 g_free(linked_text);
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1087 g_free(key);
17858
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1088 ui_handle = pinfo->window;
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1089 pinfo->count++;
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1090 } else {
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1091 char *primary = g_strdup_printf(_("Info for %s"), who);
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1092 ui_handle = pidgin_notify_formatted(_("Buddy Information"), primary, NULL, info);
17858
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1093 g_signal_handlers_disconnect_by_func(G_OBJECT(ui_handle), G_CALLBACK(formatted_close_cb), NULL);
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1094 g_signal_connect(G_OBJECT(ui_handle), "destroy", G_CALLBACK(remove_userinfo), key);
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1095 g_free(primary);
17858
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1096 pinfo = g_new0(PidginUserInfo, 1);
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1097 pinfo->window = ui_handle;
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1098 pinfo->count = 1;
c1c533448097 sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16988
diff changeset
1099 g_hash_table_insert(userinfo, key, pinfo);
16988
563a42d98e3a Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16681
diff changeset
1100 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1101 g_free(info);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1102 return ui_handle;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1103 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1104
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1105 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1106 pidgin_close_notify(PurpleNotifyType type, void *ui_handle)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1107 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1108 if (type == PURPLE_NOTIFY_EMAIL || type == PURPLE_NOTIFY_EMAILS)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1109 {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
1110 PidginNotifyMailData *data = (PidginNotifyMailData *)ui_handle;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1111
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1112 if (data) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1113 g_free(data->url);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1114 g_free(data);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1115 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1116 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1117 else if (type == PURPLE_NOTIFY_SEARCHRESULTS)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1118 {
15821
cebfc6af3eb5 More Gaim to Pidgin stuff
Sean Egan <seanegan@gmail.com>
parents: 15820
diff changeset
1119 PidginNotifySearchResultsData *data = (PidginNotifySearchResultsData *)ui_handle;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1120
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1121 gtk_widget_destroy(data->window);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1122 purple_notify_searchresults_free(data->results);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1123
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1124 g_free(data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1125 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1126 else if (ui_handle != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1127 gtk_widget_destroy(GTK_WIDGET(ui_handle));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1128 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1129
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1130 #ifndef _WIN32
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1131 static gint
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1132 uri_command(const char *command, gboolean sync)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1133 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1134 gchar *tmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1135 GError *error = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1136 gint ret = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1137
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1138 purple_debug_misc("gtknotify", "Executing %s\n", command);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1139
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1140 if (!purple_program_is_valid(command))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1141 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1142 tmp = g_strdup_printf(_("The browser command \"%s\" is invalid."),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1143 command ? command : "(none)");
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1144 purple_notify_error(NULL, NULL, _("Unable to open URL"), tmp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1145 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1146
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1147 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1148 else if (sync)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1149 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1150 gint status;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1151
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1152 if (!g_spawn_command_line_sync(command, NULL, NULL, &status, &error))
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 tmp = g_strdup_printf(_("Error launching \"%s\": %s"),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1155 command, error->message);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1156 purple_notify_error(NULL, NULL, _("Unable to open URL"), tmp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1157 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1158 g_error_free(error);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1159 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1160 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1161 ret = status;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1162 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1163 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1164 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1165 if (!g_spawn_command_line_async(command, &error))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1166 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1167 tmp = g_strdup_printf(_("Error launching \"%s\": %s"),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1168 command, error->message);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1169 purple_notify_error(NULL, NULL, _("Unable to open URL"), tmp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1170 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1171 g_error_free(error);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1172 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1173 }
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 return ret;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1176 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1177 #endif /* _WIN32 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1178
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1179 static void *
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1180 pidgin_notify_uri(const char *uri)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1181 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1182 #ifndef _WIN32
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1183 char *escaped = g_shell_quote(uri);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1184 char *command = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1185 char *remote_command = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1186 const char *web_browser;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1187 int place;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1188
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 15871
diff changeset
1189 web_browser = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/browsers/browser");
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 15871
diff changeset
1190 place = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/browsers/place");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1191
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1192 /* if they are running gnome, use the gnome web browser */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1193 if (purple_running_gnome() == TRUE)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1194 {
22208
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1195 char *tmp = g_find_program_in_path("xdg-open");
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1196 if (tmp == NULL)
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1197 command = g_strdup_printf("gnome-open %s", escaped);
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1198 else
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1199 command = g_strdup_printf("xdg-open %s", escaped);
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1200 g_free(tmp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1201 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1202 else if (purple_running_osx() == TRUE)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1203 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1204 command = g_strdup_printf("open %s", escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1205 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1206 else if (!strcmp(web_browser, "epiphany") ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1207 !strcmp(web_browser, "galeon"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1208 {
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1209 if (place == PIDGIN_BROWSER_NEW_WINDOW)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1210 command = g_strdup_printf("%s -w %s", web_browser, escaped);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1211 else if (place == PIDGIN_BROWSER_NEW_TAB)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1212 command = g_strdup_printf("%s -n %s", web_browser, escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1213 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1214 command = g_strdup_printf("%s %s", web_browser, escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1215 }
22208
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1216 else if (!strcmp(web_browser, "xdg-open"))
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1217 {
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1218 command = g_strdup_printf("xdg-open %s", escaped);
c77098cebf23 Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents: 22087
diff changeset
1219 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1220 else if (!strcmp(web_browser, "gnome-open"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1221 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1222 command = g_strdup_printf("gnome-open %s", escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1223 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1224 else if (!strcmp(web_browser, "kfmclient"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1225 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1226 command = g_strdup_printf("kfmclient openURL %s", escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1227 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1228 * Does Konqueror have options to open in new tab
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1229 * and/or current window?
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1230 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1231 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1232 else if (!strcmp(web_browser, "mozilla") ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1233 !strcmp(web_browser, "mozilla-firebird") ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1234 !strcmp(web_browser, "firefox") ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1235 !strcmp(web_browser, "seamonkey"))
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 char *args = "";
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1238
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1239 command = g_strdup_printf("%s %s", web_browser, escaped);
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 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1242 * Firefox 0.9 and higher require a "-a firefox" option when
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1243 * using -remote commands. This breaks older versions of
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1244 * mozilla. So we include this other handly little string
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1245 * when calling firefox. If the API for remote calls changes
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1246 * any more in firefox then firefox should probably be split
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1247 * apart from mozilla-firebird and mozilla... but this is good
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1248 * for now.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1249 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1250 if (!strcmp(web_browser, "firefox"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1251 args = "-a firefox";
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1252
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1253 if (place == PIDGIN_BROWSER_NEW_WINDOW)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1254 remote_command = g_strdup_printf("%s %s -remote "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1255 "openURL(%s,new-window)",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1256 web_browser, args, escaped);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1257 else if (place == PIDGIN_BROWSER_NEW_TAB)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1258 remote_command = g_strdup_printf("%s %s -remote "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1259 "openURL(%s,new-tab)",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1260 web_browser, args, escaped);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1261 else if (place == PIDGIN_BROWSER_CURRENT)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1262 remote_command = g_strdup_printf("%s %s -remote "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1263 "openURL(%s)",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1264 web_browser, args, escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1265 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1266 else if (!strcmp(web_browser, "netscape"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1267 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1268 command = g_strdup_printf("netscape %s", escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1269
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1270 if (place == PIDGIN_BROWSER_NEW_WINDOW)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1271 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1272 remote_command = g_strdup_printf("netscape -remote "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1273 "openURL(%s,new-window)",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1274 escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1275 }
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1276 else if (place == PIDGIN_BROWSER_CURRENT)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1277 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1278 remote_command = g_strdup_printf("netscape -remote "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1279 "openURL(%s)", escaped);
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 else if (!strcmp(web_browser, "opera"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1283 {
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1284 if (place == PIDGIN_BROWSER_NEW_WINDOW)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1285 command = g_strdup_printf("opera -newwindow %s", escaped);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1286 else if (place == PIDGIN_BROWSER_NEW_TAB)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1287 command = g_strdup_printf("opera -newpage %s", escaped);
15507
311315e979f7 gtkutils changes
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
1288 else if (place == PIDGIN_BROWSER_CURRENT)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1289 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1290 remote_command = g_strdup_printf("opera -remote "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1291 "openURL(%s)", escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1292 command = g_strdup_printf("opera %s", escaped);
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 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1295 command = g_strdup_printf("opera %s", escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1296
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1297 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1298 else if (!strcmp(web_browser, "custom"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1299 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1300 const char *web_command;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1301
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 15871
diff changeset
1302 web_command = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/browsers/command");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1303
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1304 if (web_command == NULL || *web_command == '\0')
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1305 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1306 purple_notify_error(NULL, NULL, _("Unable to open URL"),
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1307 _("The 'Manual' browser command has been "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1308 "chosen, but no command has been set."));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1309 return NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1310 }
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 if (strstr(web_command, "%s"))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1313 command = purple_strreplace(web_command, "%s", escaped);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1314 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1315 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1316 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1317 * There is no "%s" in the browser command. Assume the user
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1318 * wanted the URL tacked on to the end of the command.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1319 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1320 command = g_strdup_printf("%s %s", web_command, escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1321 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1322 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1323
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1324 g_free(escaped);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1325
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1326 if (remote_command != NULL)
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 /* try the remote command first */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1329 if (uri_command(remote_command, TRUE) != 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1330 uri_command(command, FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1331
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1332 g_free(remote_command);
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 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1335 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1336 uri_command(command, FALSE);
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 g_free(command);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1339
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1340 #else /* !_WIN32 */
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15509
diff changeset
1341 winpidgin_notify_uri(uri);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1342 #endif /* !_WIN32 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1343
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1344 return NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1345 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1346
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1347 static GtkWidget *
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1348 pidgin_get_dialog(PidginNotifyType type, GtkTreeStore *treemodel)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1349 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1350 GtkWidget *dialog = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1351 GtkWidget *label = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1352 GtkWidget *sw;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1353 GtkCellRenderer *rend;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1354 GtkTreeViewColumn *column;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1355 GtkWidget *button = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1356 GtkWidget *vbox = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1357 GtkTreeSelection *sel;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1358 PidginNotifyDialog *spec_dialog = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1359
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1360 g_return_val_if_fail(type < PIDGIN_NOTIFY_TYPES, NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1361
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1362 dialog = gtk_dialog_new_with_buttons(NULL, NULL, 0,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1363 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1364 NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1365
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1366 /* Setup the dialog */
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1367 gtk_container_set_border_width(GTK_CONTAINER(dialog), PIDGIN_HIG_BOX_SPACE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1368 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BOX_SPACE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1369 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1370 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1371
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1372 /* Vertical box */
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1373 vbox = GTK_DIALOG(dialog)->vbox;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1374
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1375 /* Golden ratio it up! */
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1376 gtk_widget_set_size_request(dialog, 550, 400);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1377
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1378 sw = gtk_scrolled_window_new(NULL, NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1379 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1380 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1381
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1382 spec_dialog = g_new0(PidginNotifyDialog, 1);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1383 spec_dialog->dialog = dialog;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1384
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1385 spec_dialog->treemodel = treemodel;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1386 spec_dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(spec_dialog->treemodel));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1387 g_object_unref(G_OBJECT(spec_dialog->treemodel));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1388
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1389 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(spec_dialog->treeview), TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1390 gtk_container_add(GTK_CONTAINER(sw), spec_dialog->treeview);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1391
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1392 if (type == PIDGIN_NOTIFY_MAIL) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1393 gtk_window_set_title(GTK_WINDOW(dialog), _("New Mail"));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1394 gtk_window_set_role(GTK_WINDOW(dialog), "new_mail_detailed");
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1395 g_signal_connect(G_OBJECT(dialog), "focus-in-event",
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1396 G_CALLBACK(mail_window_focus_cb), NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1397
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1398 gtk_dialog_add_button(GTK_DIALOG(dialog),
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1399 _("Open All Messages"), GTK_RESPONSE_ACCEPT);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1400
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1401 button = gtk_dialog_add_button(GTK_DIALOG(dialog),
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1402 PIDGIN_STOCK_OPEN_MAIL, GTK_RESPONSE_YES);
27117
9c36a340fcaf Setting `dialog->open_button = button` when `button` is not yet assigned
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26922
diff changeset
1403 spec_dialog->open_button = button;
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1404
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1405 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(spec_dialog->treeview), FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1406
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1407 gtk_tree_view_set_search_column(GTK_TREE_VIEW(spec_dialog->treeview), PIDGIN_MAIL_TEXT);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1408 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(spec_dialog->treeview),
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1409 pidgin_tree_view_search_equal_func, NULL, NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1410
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1411 g_signal_connect(G_OBJECT(dialog), "response",
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1412 G_CALLBACK(email_response_cb), spec_dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1413 g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(spec_dialog->treeview))),
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1414 "changed", G_CALLBACK(selection_changed_cb), spec_dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1415 g_signal_connect(G_OBJECT(spec_dialog->treeview), "row-activated", G_CALLBACK(email_row_activated_cb), NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1416
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1417 column = gtk_tree_view_column_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1418 gtk_tree_view_column_set_resizable(column, TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1419 rend = gtk_cell_renderer_pixbuf_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1420 gtk_tree_view_column_pack_start(column, rend, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1421
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1422 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", PIDGIN_MAIL_ICON, NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1423 rend = gtk_cell_renderer_text_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1424 gtk_tree_view_column_pack_start(column, rend, TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1425 gtk_tree_view_column_set_attributes(column, rend, "markup", PIDGIN_MAIL_TEXT, NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1426 gtk_tree_view_append_column(GTK_TREE_VIEW(spec_dialog->treeview), column);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1427
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1428 label = gtk_label_new(NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1429 gtk_label_set_markup(GTK_LABEL(label), _("<span weight=\"bold\" size=\"larger\">You have mail!</span>"));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1430
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1431 } else if (type == PIDGIN_NOTIFY_POUNCE) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1432 gtk_window_set_title(GTK_WINDOW(dialog), _("New Pounces"));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1433
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1434 button = gtk_dialog_add_button(GTK_DIALOG(dialog),
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1435 _("Dismiss"), GTK_RESPONSE_NO);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1436 gtk_widget_set_sensitive(button, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1437 spec_dialog->dismiss_button = button;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1438
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1439 button = gtk_dialog_add_button(GTK_DIALOG(dialog),
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1440 PIDGIN_STOCK_EDIT, GTK_RESPONSE_APPLY);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1441 gtk_widget_set_sensitive(button, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1442 spec_dialog->edit_button = button;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1443
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1444 g_signal_connect(G_OBJECT(dialog), "response",
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1445 G_CALLBACK(pounce_response_cb), spec_dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1446
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1447 column = gtk_tree_view_column_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1448 gtk_tree_view_column_set_title(column, _("Buddy"));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1449 gtk_tree_view_column_set_resizable(column, TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1450 rend = gtk_cell_renderer_pixbuf_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1451 gtk_tree_view_column_pack_start(column, rend, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1452
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1453 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", PIDGIN_POUNCE_ICON, NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1454 rend = gtk_cell_renderer_text_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1455 gtk_tree_view_column_pack_start(column, rend, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1456 gtk_tree_view_column_add_attribute(column, rend, "text", PIDGIN_POUNCE_ALIAS);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1457 gtk_tree_view_append_column(GTK_TREE_VIEW(spec_dialog->treeview), column);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1458
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1459 column = gtk_tree_view_column_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1460 gtk_tree_view_column_set_title(column, _("Event"));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1461 gtk_tree_view_column_set_resizable(column, TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1462 rend = gtk_cell_renderer_text_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1463 gtk_tree_view_column_pack_start(column, rend, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1464 gtk_tree_view_column_add_attribute(column, rend, "text", PIDGIN_POUNCE_EVENT);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1465 gtk_tree_view_append_column(GTK_TREE_VIEW(spec_dialog->treeview), column);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1466
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1467 column = gtk_tree_view_column_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1468 gtk_tree_view_column_set_title(column, _("Message"));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1469 gtk_tree_view_column_set_resizable(column, TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1470 rend = gtk_cell_renderer_text_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1471 gtk_tree_view_column_pack_start(column, rend, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1472 gtk_tree_view_column_add_attribute(column, rend, "text", PIDGIN_POUNCE_TEXT);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1473 gtk_tree_view_append_column(GTK_TREE_VIEW(spec_dialog->treeview), column);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1474
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1475 column = gtk_tree_view_column_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1476 gtk_tree_view_column_set_title(column, _("Date"));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1477 gtk_tree_view_column_set_resizable(column, TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1478 rend = gtk_cell_renderer_text_new();
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1479 gtk_tree_view_column_pack_start(column, rend, FALSE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1480 gtk_tree_view_column_add_attribute(column, rend, "text", PIDGIN_POUNCE_DATE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1481 gtk_tree_view_append_column(GTK_TREE_VIEW(spec_dialog->treeview), column);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1482
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1483 label = gtk_label_new(NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1484 gtk_label_set_markup(GTK_LABEL(label), _("<span weight=\"bold\" size=\"larger\">You have pounced!</span>"));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1485
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1486 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(spec_dialog->treeview));
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1487 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1488 g_signal_connect(G_OBJECT(sel), "changed",
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1489 G_CALLBACK(pounce_row_selected_cb), NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1490 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1491
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1492 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1493 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1494 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1495 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 2);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1496
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1497 if (type == PIDGIN_NOTIFY_MAIL)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1498 mail_dialog = spec_dialog;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1499 else if (type == PIDGIN_NOTIFY_POUNCE) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1500 pounce_dialog = spec_dialog;
27117
9c36a340fcaf Setting `dialog->open_button = button` when `button` is not yet assigned
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26922
diff changeset
1501 }
26268
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1502
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1503 return spec_dialog->dialog;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1504
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1505 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1506
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1507 void
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1508 pidgin_notify_pounce_add(PurpleAccount *account, PurplePounce *pounce,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1509 const char *alias, const char *event, const char *message, const char *date)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1510 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1511 GtkWidget *dialog;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1512 GdkPixbuf *icon;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1513 GtkTreeIter iter;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1514 PidginNotifyPounceData *pounce_data;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1515
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1516 dialog = pidgin_get_notification_dialog(PIDGIN_NOTIFY_POUNCE);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1517
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1518 icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1519
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1520 pounce_data = g_new(PidginNotifyPounceData, 1);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1521
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1522 pounce_data->account = account;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1523 pounce_data->pounce = pounce;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1524
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1525 gtk_tree_store_append(pounce_dialog->treemodel, &iter, NULL);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1526
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1527 gtk_tree_store_set(pounce_dialog->treemodel, &iter,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1528 PIDGIN_POUNCE_ICON, icon,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1529 PIDGIN_POUNCE_ALIAS, alias,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1530 PIDGIN_POUNCE_EVENT, event,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1531 PIDGIN_POUNCE_TEXT, (message != NULL)? message : _("No message"),
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1532 PIDGIN_POUNCE_DATE, date,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1533 PIDGIN_POUNCE_DATA, pounce_data,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1534 -1);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1535
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1536 if (icon)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1537 g_object_unref(icon);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1538
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1539 gtk_widget_show_all(dialog);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1540
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1541 return;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1542 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1543
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1544 static GtkWidget *
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1545 pidgin_get_notification_dialog(PidginNotifyType type)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1546 {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1547 GtkTreeStore *model = NULL;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1548
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1549 if (type == PIDGIN_NOTIFY_MAIL) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1550 if (mail_dialog != NULL)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1551 return mail_dialog->dialog;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1552
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1553 model = gtk_tree_store_new(COLUMNS_PIDGIN_MAIL,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1554 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1555
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1556 } else if (type == PIDGIN_NOTIFY_POUNCE) {
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1557
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1558 if (pounce_dialog != NULL)
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1559 return pounce_dialog->dialog;
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1560
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1561 model = gtk_tree_store_new(PIDGIN_POUNCE_COLUMNS,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1562 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1563 G_TYPE_STRING, G_TYPE_POINTER);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1564 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1565
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1566 return pidgin_get_dialog(type, model);
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1567 }
3d997c09b94e A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents: 24497
diff changeset
1568
27325
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1569 static void
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1570 signed_off_cb(PurpleConnection *gc, gpointer unused)
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1571 {
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1572 /* Clear any pending emails for this account */
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1573 pidgin_notify_emails(gc, 0, FALSE, NULL, NULL, NULL, NULL);
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1574 }
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1575
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1576 static void*
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1577 pidgin_notify_get_handle(void)
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1578 {
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1579 static int handle;
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1580 return &handle;
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1581 }
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1582
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1583 void pidgin_notify_init(void)
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1584 {
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1585 void *handle = pidgin_notify_get_handle();
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1586
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1587 purple_signal_connect(purple_connections_get_handle(), "signed-off",
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1588 handle, PURPLE_CALLBACK(signed_off_cb), NULL);
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1589 }
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1590
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1591 void pidgin_notify_uninit(void)
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1592 {
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1593 purple_signals_disconnect_by_handle(pidgin_notify_get_handle());
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1594 }
ecdc58da4cdd Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents: 27318
diff changeset
1595
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1596 static PurpleNotifyUiOps ops =
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1597 {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1598 pidgin_notify_message,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1599 pidgin_notify_email,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1600 pidgin_notify_emails,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1601 pidgin_notify_formatted,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1602 pidgin_notify_searchresults,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1603 pidgin_notify_searchresults_new_rows,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1604 pidgin_notify_userinfo,
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1605 pidgin_notify_uri,
16681
fbf111436896 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16198
diff changeset
1606 pidgin_close_notify,
fbf111436896 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16198
diff changeset
1607 NULL,
fbf111436896 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16198
diff changeset
1608 NULL,
fbf111436896 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16198
diff changeset
1609 NULL,
fbf111436896 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16198
diff changeset
1610 NULL
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1611 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1612
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
1613 PurpleNotifyUiOps *
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15436
diff changeset
1614 pidgin_notify_get_ui_ops(void)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1615 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1616 return &ops;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1617 }