Mercurial > pidgin.yaz
annotate pidgin/gtknotify.c @ 31716:cdbca568eaf3
Apply the timer-check patch that I supplied in #13139. Should now show
a docklet icon on the older GTK+.
Fixes #13139.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Mon, 28 Feb 2011 00:12:20 +0000 |
parents | 70d8e2e71552 |
children | c5ba7dd399fa 3eaf954631fa 917c597beb97 |
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 | 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 | 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 | 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 | 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; |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
63 char *pouncee; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
64 } PidginNotifyPounceData; |
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 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
67 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
|
68 { |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
69 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
70 GtkListStore *model; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
71 GtkWidget *treeview; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
72 GtkWidget *window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
73 gpointer user_data; |
15823 | 74 PurpleNotifySearchResults *results; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
75 |
15821 | 76 } PidginNotifySearchResultsData; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
77 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
78 typedef struct |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
79 { |
15823 | 80 PurpleNotifySearchButton *button; |
15821 | 81 PidginNotifySearchResultsData *data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
82 |
15821 | 83 } PidginNotifySearchResultsButtonData; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
84 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
85 enum |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
86 { |
15820
c02a897a67c7
More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents:
15735
diff
changeset
|
87 PIDGIN_MAIL_ICON, |
c02a897a67c7
More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents:
15735
diff
changeset
|
88 PIDGIN_MAIL_TEXT, |
c02a897a67c7
More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents:
15735
diff
changeset
|
89 PIDGIN_MAIL_DATA, |
c02a897a67c7
More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents:
15735
diff
changeset
|
90 COLUMNS_PIDGIN_MAIL |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
91 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
92 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
93 enum |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
94 { |
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_ICON, |
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_ALIAS, |
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_EVENT, |
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_TEXT, |
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_DATE, |
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_DATA, |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
101 COLUMNS_PIDGIN_POUNCE |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
102 }; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
103 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
104 |
27339
c7768f23f519
Remove the PidginMailDialog typedef.
Paul Aurich <paul@darkrain42.org>
parents:
27338
diff
changeset
|
105 typedef struct _PidginNotifyDialog |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
106 { |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
107 /* |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
108 * This must be first so PidginNotifyDialog can masquerade as the |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
109 * dialog widget. |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
110 */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
111 GtkWidget *dialog; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
112 GtkWidget *treeview; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
113 GtkTreeStore *treemodel; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
114 GtkLabel *label; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
115 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
|
116 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
|
117 GtkWidget *edit_button; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
118 int total_count; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
119 gboolean in_use; |
27339
c7768f23f519
Remove the PidginMailDialog typedef.
Paul Aurich <paul@darkrain42.org>
parents:
27338
diff
changeset
|
120 } PidginNotifyDialog; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
121 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
122 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
|
123 { |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
124 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
|
125 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
|
126 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
|
127 } PidginNotifyType; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
128 |
26268
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 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
|
130 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
|
131 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
132 static PidginNotifyDialog *pidgin_create_notification_dialog(PidginNotifyType type); |
15823 | 133 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
|
134 const char **subjects, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
135 const char **froms, const char **tos, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
136 const char **urls); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
137 |
22826
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
138 static void pidgin_close_notify(PurpleNotifyType type, void *ui_handle); |
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
139 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
140 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
141 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
|
142 { |
15823 | 143 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
|
144 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
145 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
146 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
|
147 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
|
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 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
|
150 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
|
151 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
152 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
|
153 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
|
154 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
|
155 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
|
156 -1); |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
157 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
|
158 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
159 g_free(pounce_data->pouncee); |
26268
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_data); |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
161 } |
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 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
|
164 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
|
165 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
|
166 } |
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 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
|
169 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
|
170 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
|
171 { |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
172 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
|
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 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
|
175 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
|
176 -1); |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
177 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
178 if (pounce_data != NULL) { |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
179 g_free(pounce_data->pouncee); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
180 g_free(pounce_data); |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
181 } |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
182 } |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
183 |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
184 static void |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
185 open_im_foreach(GtkTreeModel *model, GtkTreePath *path, |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
186 GtkTreeIter *iter, gpointer data) |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
187 { |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
188 PidginNotifyPounceData *pounce_data; |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
189 |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
190 gtk_tree_model_get(model, iter, |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
191 PIDGIN_POUNCE_DATA, &pounce_data, |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
192 -1); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
193 |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
194 if (pounce_data != NULL) { |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
195 PurpleConversation *conv; |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
196 |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
197 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
198 pounce_data->account, pounce_data->pouncee); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
199 purple_conversation_present(conv); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
200 } |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
201 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
202 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
203 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
|
204 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
|
205 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
|
206 { |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
207 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
|
208 *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
|
209 } |
28412
4b61989ab198
Close the Pounce dialog when you dismiss the last pounce.
salinasv@gmail.com
parents:
28407
diff
changeset
|
210 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
211 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
|
212 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
|
213 { |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
214 GtkTreeModel *model = GTK_TREE_MODEL(pounce_dialog->treemodel); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
215 GtkTreeSelection *selection; |
28412
4b61989ab198
Close the Pounce dialog when you dismiss the last pounce.
salinasv@gmail.com
parents:
28407
diff
changeset
|
216 GtkTreeIter iter; |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
217 GtkTreeIter new_selection; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
218 GList *list = NULL; |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
219 gboolean found_selection = FALSE; |
26268
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 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
|
222 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
|
223 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
|
224 |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
225 g_return_if_fail(list != NULL); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
226 |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
227 if (list->next == NULL) { |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
228 gtk_tree_model_get_iter(model, &new_selection, list->data); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
229 if (gtk_tree_model_iter_next(model, &new_selection)) |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
230 found_selection = TRUE; |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
231 else { |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
232 /* This is the last thing in the list */ |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
233 GtkTreePath *path; |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
234 |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
235 /* Because gtk_tree_model_iter_prev doesn't exist... */ |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
236 gtk_tree_model_get_iter(model, &new_selection, list->data); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
237 path = gtk_tree_model_get_path(model, &new_selection); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
238 if (gtk_tree_path_prev(path)) { |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
239 gtk_tree_model_get_iter(model, &new_selection, path); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
240 found_selection = TRUE; |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
241 } |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
242 |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
243 gtk_tree_path_free(path); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
244 } |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
245 } |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
246 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
247 while (list) { |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
248 if (gtk_tree_model_get_iter(model, &iter, list->data)) { |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
249 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
|
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 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
|
252 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
|
253 } |
28412
4b61989ab198
Close the Pounce dialog when you dismiss the last pounce.
salinasv@gmail.com
parents:
28407
diff
changeset
|
254 |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
255 if (gtk_tree_model_get_iter_first(model, &iter)) { |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
256 if (found_selection) |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
257 gtk_tree_selection_select_iter(selection, &new_selection); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
258 else |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
259 gtk_tree_selection_select_iter(selection, &iter); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
260 } else |
28412
4b61989ab198
Close the Pounce dialog when you dismiss the last pounce.
salinasv@gmail.com
parents:
28407
diff
changeset
|
261 pounce_response_close(pounce_dialog); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
262 } |
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 static void |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
265 pounce_response_open_ims() |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
266 { |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
267 GtkTreeSelection *selection; |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
268 |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
269 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview)); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
270 gtk_tree_selection_selected_foreach(selection, open_im_foreach, pounce_dialog); |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
271 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
272 pounce_response_dismiss(); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
273 } |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
274 |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
275 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
|
276 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
|
277 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
|
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 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
|
280 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
|
281 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
|
282 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
|
283 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
284 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
|
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 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
|
287 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
|
288 -1); |
27337
357405dc8b2c
Remove trailing whitespace
Paul Aurich <paul@darkrain42.org>
parents:
27325
diff
changeset
|
289 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
290 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
|
291 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
|
292 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
|
293 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
|
294 return; |
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 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
297 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
298 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
|
299 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
300 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
301 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
|
302 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
|
303 { |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
304 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
|
305 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
306 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
|
307 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
|
308 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
|
309 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
|
310 break; |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
311 case GTK_RESPONSE_YES: |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
312 pounce_response_open_ims(); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
313 break; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
314 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
|
315 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
|
316 break; |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
317 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
|
318 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
|
319 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
|
320 dialog); |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
321 break; |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
322 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
323 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
324 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
325 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
|
326 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
|
327 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
|
328 { |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
329 GtkTreeSelection *selection; |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
330 int count; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
331 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
332 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
|
333 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
334 count = gtk_tree_selection_count_selected_rows(selection); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
335 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
336 if (count == 0) { |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
337 gtk_widget_set_sensitive(pounce_dialog->open_button, FALSE); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
338 gtk_widget_set_sensitive(pounce_dialog->edit_button, FALSE); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
339 gtk_widget_set_sensitive(pounce_dialog->dismiss_button, FALSE); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
340 } else if (count == 1) { |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
341 GList *pounces; |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
342 GList *list; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
343 PidginNotifyPounceData *pounce_data; |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
344 GtkTreeIter iter; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
345 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
346 list = gtk_tree_selection_get_selected_rows(selection, NULL); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
347 gtk_tree_model_get_iter(GTK_TREE_MODEL(pounce_dialog->treemodel), |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
348 &iter, list->data); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
349 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
|
350 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
|
351 -1); |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
352 g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
353 g_list_free(list); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
354 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
355 pounces = purple_pounces_get_all(); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
356 for (; pounces != NULL; pounces = pounces->next) { |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
357 PurplePounce *pounce = pounces->data; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
358 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
|
359 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
|
360 break; |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
361 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
362 } |
27337
357405dc8b2c
Remove trailing whitespace
Paul Aurich <paul@darkrain42.org>
parents:
27325
diff
changeset
|
363 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
364 gtk_widget_set_sensitive(pounce_dialog->open_button, TRUE); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
365 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
|
366 } else { |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
367 gtk_widget_set_sensitive(pounce_dialog->open_button, TRUE); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
368 gtk_widget_set_sensitive(pounce_dialog->edit_button, FALSE); |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
369 gtk_widget_set_sensitive(pounce_dialog->dismiss_button, TRUE); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
370 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
371 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
372 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
373 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
374 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
375 static void |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
376 reset_mail_dialog(GtkDialog *unused) |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
377 { |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
378 if (mail_dialog->in_use) |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
379 return; |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
380 gtk_widget_destroy(mail_dialog->dialog); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
381 g_free(mail_dialog); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
382 mail_dialog = NULL; |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
383 } |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
384 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
385 static void |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
386 email_response_cb(GtkDialog *unused, gint id, PidginNotifyDialog *unused2) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
387 { |
15821 | 388 PidginNotifyMailData *data = NULL; |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
389 GtkTreeModel *model = GTK_TREE_MODEL(mail_dialog->treemodel); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
390 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
391 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
392 if (id == GTK_RESPONSE_YES) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
393 { |
27325
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
394 /* 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
|
395 GtkTreeSelection *selection; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
396 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
397 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(mail_dialog->treeview)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
398 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
399 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
|
400 { |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
401 gtk_tree_model_get(model, &iter, PIDGIN_MAIL_DATA, &data, -1); |
15823 | 402 purple_notify_uri(NULL, data->url); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
403 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
404 gtk_tree_store_remove(mail_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
|
405 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
|
406 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
|
407 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
|
408 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
|
409 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
410 if (gtk_tree_model_get_iter_first(model, &iter)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
411 return; |
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 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
414 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
415 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
416 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
417 { |
27325
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
418 /* Remove all the rows */ |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
419 while (gtk_tree_model_get_iter_first(model, &iter)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
420 { |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
421 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
|
422 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
423 if (id == GTK_RESPONSE_ACCEPT) |
15823 | 424 purple_notify_uri(NULL, data->url); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
425 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
426 gtk_tree_store_remove(mail_dialog->treemodel, &iter); |
22826
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
427 if (data->purple_has_handle) |
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
428 purple_notify_close(PURPLE_NOTIFY_EMAILS, data); |
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
429 else |
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
430 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
|
431 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
432 } |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
433 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
434 reset_mail_dialog(NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
435 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
436 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
437 static void |
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
438 email_row_activated_cb(GtkTreeView *tv, GtkTreePath *path, |
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
439 GtkTreeViewColumn *col, gpointer data) |
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
440 { |
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
441 email_response_cb(NULL, GTK_RESPONSE_YES, NULL); |
19316
c5898e7d70fa
Open emails by doubleclicking the row.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18860
diff
changeset
|
442 } |
c5898e7d70fa
Open emails by doubleclicking the row.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18860
diff
changeset
|
443 |
21913
2a591a5b3322
Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21888
diff
changeset
|
444 static gboolean |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
445 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
|
446 { |
15823 | 447 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
|
448 return FALSE; |
15374
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 |
21913
2a591a5b3322
Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21888
diff
changeset
|
451 static gboolean |
15821 | 452 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
|
453 { |
15823 | 454 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
|
455 return FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
456 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
457 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
458 static void |
15821 | 459 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
|
460 { |
15821 | 461 PidginNotifySearchResultsData *data = bd->data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
462 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
463 GtkTreeSelection *selection; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
464 GtkTreeModel *model; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
465 GtkTreeIter iter; |
15823 | 466 PurpleNotifySearchButton *button; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
467 GList *row = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
468 gchar *str; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
469 int i; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
470 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
471 g_return_if_fail(data != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
472 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
473 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
|
474 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
475 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
|
476 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
477 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
|
478 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
|
479 row = g_list_append(row, str); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
480 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
481 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
482 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
483 button = bd->button; |
15823 | 484 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
|
485 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
|
486 g_list_free(row); |
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 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
489 static void * |
15823 | 490 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
|
491 const char *primary, const char *secondary) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
492 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
493 GtkWidget *dialog; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
494 GtkWidget *hbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
495 GtkWidget *label; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
496 GtkWidget *img = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
497 char label_text[2048]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
498 const char *icon_name = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
499 char *primary_esc, *secondary_esc; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
500 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
501 switch (type) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
502 { |
15823 | 503 case PURPLE_NOTIFY_MSG_ERROR: |
15436 | 504 icon_name = PIDGIN_STOCK_DIALOG_ERROR; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
505 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
506 |
15823 | 507 case PURPLE_NOTIFY_MSG_WARNING: |
15436 | 508 icon_name = PIDGIN_STOCK_DIALOG_WARNING; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
509 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
510 |
15823 | 511 case PURPLE_NOTIFY_MSG_INFO: |
15436 | 512 icon_name = PIDGIN_STOCK_DIALOG_INFO; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
513 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
514 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
515 default: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
516 icon_name = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
517 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
518 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
519 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
520 if (icon_name != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
521 { |
15436 | 522 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
|
523 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
|
524 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
525 |
15821 | 526 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
|
527 NULL, 0, GTK_STOCK_CLOSE, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
528 GTK_RESPONSE_CLOSE, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
529 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
530 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
|
531 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
532 g_signal_connect(G_OBJECT(dialog), "response", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
533 G_CALLBACK(message_response_cb), dialog); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
534 |
15821 | 535 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
|
536 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
|
537 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); |
15821 | 538 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER); |
539 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
|
540 |
15821 | 541 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
|
542 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
|
543 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
544 if (img != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
545 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
|
546 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
547 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
|
548 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
|
549 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
|
550 "<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
|
551 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
|
552 (secondary ? secondary_esc : "")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
553 g_free(primary_esc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
554 g_free(secondary_esc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
555 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
556 label = gtk_label_new(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
557 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
558 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
|
559 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
|
560 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
|
561 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
|
562 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
|
563 |
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
|
564 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
|
565 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
566 gtk_widget_show_all(dialog); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
567 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
568 return dialog; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
569 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
570 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
571 static void |
27339
c7768f23f519
Remove the PidginMailDialog typedef.
Paul Aurich <paul@darkrain42.org>
parents:
27338
diff
changeset
|
572 selection_changed_cb(GtkTreeSelection *sel, PidginNotifyDialog *dialog) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
573 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
574 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
575 GtkTreeModel *model; |
15821 | 576 PidginNotifyMailData *data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
577 gboolean active = TRUE; |
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 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
|
580 active = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
581 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
582 { |
15820
c02a897a67c7
More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents:
15735
diff
changeset
|
583 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
|
584 if (data->url == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
585 active = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
586 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
587 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
588 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
|
589 } |
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 static void * |
15823 | 592 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
|
593 const char *to, const char *url) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
594 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
595 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
|
596 (subject == NULL ? NULL : &subject), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
597 (from == NULL ? NULL : &from), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
598 (to == NULL ? NULL : &to), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
599 (url == NULL ? NULL : &url)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
600 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
601 |
15735
427ca6a0aa87
Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15734
diff
changeset
|
602 static int |
427ca6a0aa87
Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15734
diff
changeset
|
603 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
|
604 { |
427ca6a0aa87
Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15734
diff
changeset
|
605 pidgin_set_urgent(GTK_WINDOW(widget), FALSE); |
427ca6a0aa87
Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15734
diff
changeset
|
606 return 0; |
427ca6a0aa87
Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15734
diff
changeset
|
607 } |
427ca6a0aa87
Fix the last change.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15734
diff
changeset
|
608 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
609 /* 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
|
610 * count > 0 mean non-detailed. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
611 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
612 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
|
613 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
|
614 { |
15821 | 615 PidginNotifyMailData *data = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
616 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
617 GdkPixbuf *icon; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
618 gboolean new_n = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
619 |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
620 if (count > 0 || clear) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
621 /* 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
|
622 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
|
623 gboolean advanced; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
624 do { |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
625 advanced = FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
626 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
|
627 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
|
628 if (data && data->account == account) { |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
629 if (clear) { |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
630 advanced = gtk_tree_store_remove(treemodel, &iter); |
27342
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
631 mail_dialog->total_count -= data->count; |
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
632 |
27268
25db53cfc12c
Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
27117
diff
changeset
|
633 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
|
634 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
|
635 else |
25db53cfc12c
Make sure uninitialized variable is not used. This might fix #9345,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
27117
diff
changeset
|
636 pidgin_close_notify(PURPLE_NOTIFY_EMAILS, data); |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
637 /* We're completely done if we've processed all entries */ |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
638 if (!advanced) |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
639 return NULL; |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
640 } else if (data->count > 0) { |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
641 new_n = FALSE; |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
642 g_free(data->url); |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
643 data->url = NULL; |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
644 mail_dialog->total_count -= data->count; |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
645 break; |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
646 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
647 } |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
648 } 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
|
649 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
650 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
651 |
20253
6f4defb6f399
applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents:
20251
diff
changeset
|
652 if (clear) |
6f4defb6f399
applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents:
20251
diff
changeset
|
653 return NULL; |
6f4defb6f399
applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents:
20251
diff
changeset
|
654 |
6f4defb6f399
applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents:
20251
diff
changeset
|
655 icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_MEDIUM); |
6f4defb6f399
applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents:
20251
diff
changeset
|
656 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
657 if (new_n) { |
15821 | 658 data = g_new0(PidginNotifyMailData, 1); |
22826
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
659 data->purple_has_handle = TRUE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
660 gtk_tree_store_append(treemodel, &iter, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
661 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
662 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
663 if (url != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
664 data->url = g_strdup(url); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
665 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
666 gtk_tree_store_set(treemodel, &iter, |
15820
c02a897a67c7
More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents:
15735
diff
changeset
|
667 PIDGIN_MAIL_ICON, icon, |
c02a897a67c7
More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents:
15735
diff
changeset
|
668 PIDGIN_MAIL_TEXT, notification, |
c02a897a67c7
More Gaim to Pidgin changes
Sean Egan <seanegan@gmail.com>
parents:
15735
diff
changeset
|
669 PIDGIN_MAIL_DATA, data, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
670 -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
671 data->account = account; |
27342
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
672 /* count == 0 indicates we're adding a single detailed e-mail */ |
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
673 data->count = count > 0 ? count : 1; |
22826
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
674 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
675 if (icon) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
676 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
|
677 |
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
|
678 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
|
679 *new_data = new_n; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
680 return data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
681 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
682 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
683 static void * |
15823 | 684 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
|
685 const char **subjects, const char **froms, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
686 const char **tos, const char **urls) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
687 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
688 char *notification; |
15823 | 689 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
|
690 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
|
691 gboolean new_data = FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
692 |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
693 /* 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
|
694 if (count == 0 && mail_dialog == NULL) |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
695 return NULL; |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
696 |
15823 | 697 account = purple_connection_get_account(gc); |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
698 if (mail_dialog == NULL) |
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
699 mail_dialog = pidgin_create_notification_dialog(PIDGIN_NOTIFY_MAIL); |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
700 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
701 mail_dialog->total_count += count; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
702 if (detailed) { |
27342
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
703 for ( ; count; --count) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
704 char *to_text = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
705 char *from_text = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
706 char *subject_text = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
707 char *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
708 gboolean first = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
709 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
710 if (tos != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
711 tmp = g_markup_escape_text(*tos, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
712 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
|
713 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
714 first = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
715 tos++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
716 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
717 if (froms != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
718 tmp = g_markup_escape_text(*froms, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
719 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
|
720 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
721 first = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
722 froms++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
723 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
724 if (subjects != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
725 tmp = g_markup_escape_text(*subjects, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
726 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
|
727 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
728 first = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
729 subjects++; |
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 #define SAFE(x) ((x) ? (x) : "") |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
732 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
|
733 #undef SAFE |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
734 g_free(to_text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
735 g_free(from_text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
736 g_free(subject_text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
737 |
22826
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
738 /* 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
|
739 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
|
740 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
|
741 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
|
742 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
|
743 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
|
744 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
745 g_free(notification); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
746 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
747 if (urls != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
748 urls++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
749 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
750 } else { |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
751 if (count > 0) { |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
752 notification = g_strdup_printf(ngettext("%s has %d new message.", |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
753 "%s has %d new messages.", |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
754 (int)count), |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
755 *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
|
756 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
|
757 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
|
758 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
|
759 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
|
760 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
|
761 } |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
762 g_free(notification); |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
763 } else { |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
764 /* 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
|
765 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
|
766 |
27342
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
767 if (mail_dialog->total_count == 0) { |
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
768 /* |
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
769 * There is no API to clear the headline specifically |
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
770 * This will trigger reset_mail_dialog() |
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
771 */ |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
772 pidgin_blist_set_headline(NULL, NULL, NULL, NULL, NULL); |
20253
6f4defb6f399
applied changes from c0104c111e903cfec5d0a95e0ae9dafb72f0dcbf
Richard Laager <rlaager@wiktel.com>
parents:
20251
diff
changeset
|
773 return NULL; |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
774 } |
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
775 } |
15374
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 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
778 if (!GTK_WIDGET_VISIBLE(mail_dialog->dialog)) { |
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
779 GdkPixbuf *pixbuf = gtk_widget_render_icon(mail_dialog->dialog, PIDGIN_STOCK_DIALOG_MAIL, |
15436 | 780 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
|
781 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
|
782 "<b>%d new emails.</b>", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
783 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
|
784 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
|
785 remove the notifications when replacing an |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
786 old notification. */ |
20217
d4e250c3cd44
applied changes from 4bb1d6cbfe69a2e7782336a7e6e93e438a8bdbfc
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
787 pidgin_blist_set_headline(label_text, |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
788 pixbuf, G_CALLBACK(gtk_widget_show_all), mail_dialog->dialog, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
789 (GDestroyNotify)reset_mail_dialog); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
790 mail_dialog->in_use = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
791 g_free(label_text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
792 if (pixbuf) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
793 g_object_unref(pixbuf); |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
794 } else if (!GTK_WIDGET_HAS_FOCUS(mail_dialog->dialog)) |
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
795 pidgin_set_urgent(GTK_WINDOW(mail_dialog->dialog), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
796 |
22826
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
797 return data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
798 } |
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 static gboolean |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
801 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
|
802 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
803 if (event->keyval == GDK_Escape) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
804 { |
15823 | 805 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
|
806 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
807 return TRUE; |
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 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
810 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
811 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
812 |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
813 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
|
814 notify_imhtml_options(void) |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
815 { |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
816 GtkIMHtmlOptions options = 0; |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
817 |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
818 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
|
819 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
|
820 |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
821 options |= GTK_IMHTML_NO_COMMENTS; |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
822 options |= GTK_IMHTML_NO_TITLE; |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
823 options |= GTK_IMHTML_NO_NEWLINE; |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
824 options |= GTK_IMHTML_NO_SCROLL; |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
825 return options; |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
826 } |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
827 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
828 static void * |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
829 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
|
830 const char *secondary, const char *text) |
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 GtkWidget *window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
833 GtkWidget *vbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
834 GtkWidget *label; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
835 GtkWidget *button; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
836 GtkWidget *imhtml; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
837 GtkWidget *frame; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
838 char label_text[2048]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
839 char *linked_text, *primary_esc, *secondary_esc; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
840 |
19366
bd18c02bba9f
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents:
19316
diff
changeset
|
841 window = gtk_dialog_new(); |
bd18c02bba9f
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents:
19316
diff
changeset
|
842 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
|
843 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
|
844 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
|
845 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
846 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
|
847 G_CALLBACK(formatted_close_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
848 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
849 /* Setup the main vbox */ |
19366
bd18c02bba9f
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents:
19316
diff
changeset
|
850 vbox = GTK_DIALOG(window)->vbox; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
851 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
852 /* Setup the descriptive label */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
853 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
|
854 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
|
855 g_snprintf(label_text, sizeof(label_text), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
856 "<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
|
857 primary_esc, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
858 (secondary ? "\n" : ""), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
859 (secondary ? secondary_esc : "")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
860 g_free(primary_esc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
861 g_free(secondary_esc); |
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 label = gtk_label_new(NULL); |
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 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
|
866 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
|
867 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
|
868 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
|
869 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
|
870 gtk_widget_show(label); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
871 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
872 /* Add the imhtml */ |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
873 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
|
874 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
|
875 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
|
876 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
|
877 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
|
878 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
|
879 gtk_widget_show(frame); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
880 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
881 /* Add the Close button. */ |
19366
bd18c02bba9f
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents:
19316
diff
changeset
|
882 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
|
883 gtk_widget_grab_focus(button); |
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 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
|
886 G_CALLBACK(formatted_close_cb), window); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
887 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
|
888 G_CALLBACK(formatted_input_cb), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
889 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
890 /* Make sure URLs are clickable */ |
15823 | 891 linked_text = purple_markup_linkify(text); |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
892 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
|
893 g_free(linked_text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
894 |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
895 g_object_set_data(G_OBJECT(window), "info-widget", imhtml); |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
896 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
897 /* 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
|
898 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
|
899 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
900 gtk_widget_show(window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
901 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
902 return window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
903 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
904 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
905 static void |
15823 | 906 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
|
907 void *data_) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
908 { |
15821 | 909 PidginNotifySearchResultsData *data = data_; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
910 GtkListStore *model = data->model; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
911 GtkTreeIter iter; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
912 GdkPixbuf *pixbuf; |
20100
a3f07fa68e90
Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents:
20074
diff
changeset
|
913 GList *row, *column; |
a3f07fa68e90
Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents:
20074
diff
changeset
|
914 guint n; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
915 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
916 gtk_list_store_clear(data->model); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
917 |
15823 | 918 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
|
919 |
20100
a3f07fa68e90
Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents:
20074
diff
changeset
|
920 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
|
921 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
922 gtk_list_store_append(model, &iter); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
923 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
|
924 |
20100
a3f07fa68e90
Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents:
20074
diff
changeset
|
925 n = 1; |
a3f07fa68e90
Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents:
20074
diff
changeset
|
926 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
|
927 GValue v; |
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 v.g_type = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
930 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
|
931 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
|
932 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
|
933 n++; |
15374
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 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
936 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
937 if (pixbuf != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
938 g_object_unref(pixbuf); |
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 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
941 static void * |
15823 | 942 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
|
943 const char *primary, const char *secondary, |
15823 | 944 PurpleNotifySearchResults *results, gpointer user_data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
945 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
946 GtkWidget *window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
947 GtkWidget *treeview; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
948 GtkWidget *close_button; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
949 GType *col_types; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
950 GtkListStore *model; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
951 GtkCellRenderer *renderer; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
952 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
|
953 GList *columniter; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
954 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
|
955 GList *l; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
956 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
957 GtkWidget *vbox; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
958 GtkWidget *label; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
959 GtkWidget *sw; |
15821 | 960 PidginNotifySearchResultsData *data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
961 char *label_text; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
962 char *primary_esc, *secondary_esc; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
963 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
964 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
|
965 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
|
966 |
15821 | 967 data = g_malloc(sizeof(PidginNotifySearchResultsData)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
968 data->user_data = user_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
969 data->results = results; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
970 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
971 /* Create the window */ |
19366
bd18c02bba9f
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents:
19316
diff
changeset
|
972 window = gtk_dialog_new(); |
bd18c02bba9f
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents:
19316
diff
changeset
|
973 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
|
974 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
|
975 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
|
976 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
977 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
|
978 G_CALLBACK(searchresults_close_cb), data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
979 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
980 /* Setup the main vbox */ |
19366
bd18c02bba9f
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents:
19316
diff
changeset
|
981 vbox = GTK_DIALOG(window)->vbox; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
982 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
983 /* Setup the descriptive label */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
984 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
|
985 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
|
986 label_text = g_strdup_printf( |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
987 "<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
|
988 (primary ? primary_esc : ""), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
989 (primary && secondary ? "\n" : ""), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
990 (secondary ? secondary_esc : "")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
991 g_free(primary_esc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
992 g_free(secondary_esc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
993 label = gtk_label_new(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
994 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
|
995 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
|
996 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
|
997 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
|
998 gtk_widget_show(label); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
999 g_free(label_text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1000 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1001 /* +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
|
1002 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
|
1003 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1004 /* Setup the list model */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1005 col_types = g_new0(GType, col_num); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1006 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1007 /* There always is this first column. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1008 col_types[0] = GDK_TYPE_PIXBUF; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1009 for (i = 1; i < col_num; i++) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1010 col_types[i] = G_TYPE_STRING; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1011 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1012 model = gtk_list_store_newv(col_num, col_types); |
22826
66914f306712
More plumbing work.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22208
diff
changeset
|
1013 g_free(col_types); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1014 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1015 /* Setup the scrolled window containing the treeview */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1016 sw = gtk_scrolled_window_new(NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1017 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
|
1018 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1019 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
|
1020 GTK_SHADOW_IN); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1021 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
|
1022 gtk_widget_show(sw); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1023 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1024 /* Setup the treeview */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1025 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
|
1026 g_object_unref(G_OBJECT(model)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1027 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
|
1028 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
|
1029 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
|
1030 GTK_SELECTION_SINGLE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1031 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
|
1032 gtk_container_add(GTK_CONTAINER(sw), treeview); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1033 gtk_widget_show(treeview); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1034 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1035 renderer = gtk_cell_renderer_pixbuf_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1036 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
|
1037 -1, "", renderer, "pixbuf", 0, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1038 |
20100
a3f07fa68e90
Access search results directly instead of going through the API because
Mark Doliner <mark@kingant.net>
parents:
20074
diff
changeset
|
1039 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
|
1040 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
|
1041 PurpleNotifySearchColumn *column = columniter->data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1042 renderer = gtk_cell_renderer_text_new(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1043 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1044 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
|
1045 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
|
1046 i++; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1047 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1048 |
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
|
1049 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
|
1050 PurpleNotifySearchButton *b = l->data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1051 GtkWidget *button = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1052 switch (b->type) { |
15823 | 1053 case PURPLE_NOTIFY_BUTTON_LABELED: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1054 if(b->label) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1055 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
|
1056 } else { |
19653
941965d6fd88
Patch from QuLogic. Fixes #2903 ('Missing newlines in debug messages.')
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19366
diff
changeset
|
1057 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
|
1058 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1059 break; |
15823 | 1060 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
|
1061 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
|
1062 break; |
15823 | 1063 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
|
1064 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
|
1065 break; |
15823 | 1066 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
|
1067 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
|
1068 break; |
15823 | 1069 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
|
1070 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
|
1071 break; |
15823 | 1072 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
|
1073 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
|
1074 break; |
15823 | 1075 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
|
1076 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
|
1077 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1078 default: |
15823 | 1079 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
|
1080 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1081 if (button != NULL) { |
15821 | 1082 PidginNotifySearchResultsButtonData *bd; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1083 |
15821 | 1084 bd = g_new0(PidginNotifySearchResultsButtonData, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1085 bd->button = b; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1086 bd->data = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1087 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1088 g_signal_connect(G_OBJECT(button), "clicked", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1089 G_CALLBACK(searchresults_callback_wrapper_cb), bd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1090 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
|
1091 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1092 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1093 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1094 /* Add the Close button */ |
19366
bd18c02bba9f
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@gmail.com>
parents:
19316
diff
changeset
|
1095 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
|
1096 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1097 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
|
1098 G_CALLBACK(searchresults_close_cb), data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1099 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1100 data->account = gc->account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1101 data->model = model; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1102 data->treeview = treeview; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1103 data->window = window; |
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 /* Insert rows. */ |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1106 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
|
1107 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1108 /* 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
|
1109 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
|
1110 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1111 gtk_widget_show(window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1112 return data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1113 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1114 |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1115 /** Xerox'ed from Finch! How the tables have turned!! ;) **/ |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1116 /** User information. **/ |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1117 static GHashTable *userinfo; |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1118 |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1119 static char * |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1120 userinfo_hash(PurpleAccount *account, const char *who) |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1121 { |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1122 char key[256]; |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1123 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
|
1124 return g_utf8_strup(key, -1); |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1125 } |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1126 |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1127 static void |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1128 remove_userinfo(GtkWidget *widget, gpointer key) |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1129 { |
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
|
1130 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
|
1131 |
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
|
1132 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
|
1133 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
|
1134 |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1135 g_hash_table_remove(userinfo, key); |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1136 } |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1137 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1138 static void * |
15823 | 1139 pidgin_notify_userinfo(PurpleConnection *gc, const char *who, |
1140 PurpleNotifyUserInfo *user_info) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1141 { |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1142 char *info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1143 void *ui_handle; |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1144 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
|
1145 PidginUserInfo *pinfo = NULL; |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1146 |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1147 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
|
1148 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
|
1149 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1150 |
15823 | 1151 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
|
1152 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
|
1153 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
|
1154 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
|
1155 char *linked_text = purple_markup_linkify(info); |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1156 gtk_imhtml_clear(imhtml); |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1157 gtk_imhtml_append_text(imhtml, linked_text, notify_imhtml_options()); |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1158 g_free(linked_text); |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1159 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
|
1160 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
|
1161 pinfo->count++; |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1162 } else { |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1163 char *primary = g_strdup_printf(_("Info for %s"), who); |
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1164 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
|
1165 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
|
1166 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
|
1167 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
|
1168 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
|
1169 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
|
1170 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
|
1171 g_hash_table_insert(userinfo, key, pinfo); |
16988
563a42d98e3a
Fix ticket #387.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16681
diff
changeset
|
1172 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1173 g_free(info); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1174 return ui_handle; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1175 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1176 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1177 static void |
15823 | 1178 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
|
1179 { |
15823 | 1180 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
|
1181 { |
15821 | 1182 PidginNotifyMailData *data = (PidginNotifyMailData *)ui_handle; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1183 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1184 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
|
1185 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
|
1186 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
|
1187 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1188 } |
15823 | 1189 else if (type == PURPLE_NOTIFY_SEARCHRESULTS) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1190 { |
15821 | 1191 PidginNotifySearchResultsData *data = (PidginNotifySearchResultsData *)ui_handle; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1192 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1193 gtk_widget_destroy(data->window); |
15823 | 1194 purple_notify_searchresults_free(data->results); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1195 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1196 g_free(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1197 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1198 else if (ui_handle != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1199 gtk_widget_destroy(GTK_WIDGET(ui_handle)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1200 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1201 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1202 #ifndef _WIN32 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1203 static gint |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1204 uri_command(const char *command, gboolean sync) |
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 gchar *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1207 GError *error = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1208 gint ret = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1209 |
15823 | 1210 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
|
1211 |
15823 | 1212 if (!purple_program_is_valid(command)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1213 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1214 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
|
1215 command ? command : "(none)"); |
15823 | 1216 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
|
1217 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1218 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1219 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1220 else if (sync) |
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 gint status; |
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 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
|
1225 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1226 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
|
1227 command, error->message); |
15823 | 1228 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
|
1229 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1230 g_error_free(error); |
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 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1233 ret = status; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1234 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1235 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1236 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1237 if (!g_spawn_command_line_async(command, &error)) |
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 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
|
1240 command, error->message); |
15823 | 1241 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
|
1242 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1243 g_error_free(error); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1244 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1245 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1246 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1247 return ret; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1248 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1249 #endif /* _WIN32 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1250 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1251 static void * |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1252 pidgin_notify_uri(const char *uri) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1253 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1254 #ifndef _WIN32 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1255 char *escaped = g_shell_quote(uri); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1256 char *command = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1257 char *remote_command = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1258 const char *web_browser; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1259 int place; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1260 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
15871
diff
changeset
|
1261 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
|
1262 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
|
1263 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1264 /* if they are running gnome, use the gnome web browser */ |
15823 | 1265 if (purple_running_gnome() == TRUE) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1266 { |
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
|
1267 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
|
1268 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
|
1269 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
|
1270 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
|
1271 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
|
1272 g_free(tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1273 } |
15823 | 1274 else if (purple_running_osx() == TRUE) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1275 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1276 command = g_strdup_printf("open %s", escaped); |
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 else if (!strcmp(web_browser, "epiphany") || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1279 !strcmp(web_browser, "galeon")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1280 { |
15507 | 1281 if (place == PIDGIN_BROWSER_NEW_WINDOW) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1282 command = g_strdup_printf("%s -w %s", web_browser, escaped); |
15507 | 1283 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
|
1284 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
|
1285 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1286 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
|
1287 } |
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
|
1288 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
|
1289 { |
c77098cebf23
Use xdg-open instead of gnome-open, if possible. We might want to use
Stu Tomlinson <stu@nosnilmot.com>
parents:
22087
diff
changeset
|
1290 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
|
1291 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1292 else if (!strcmp(web_browser, "gnome-open")) |
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 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
|
1295 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1296 else if (!strcmp(web_browser, "kfmclient")) |
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 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
|
1299 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1300 * 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
|
1301 * and/or current window? |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1302 */ |
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 else if (!strcmp(web_browser, "mozilla") || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1305 !strcmp(web_browser, "mozilla-firebird") || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1306 !strcmp(web_browser, "firefox") || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1307 !strcmp(web_browser, "seamonkey")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1308 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1309 char *args = ""; |
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 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
|
1312 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1313 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1314 * 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
|
1315 * 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
|
1316 * 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
|
1317 * 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
|
1318 * 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
|
1319 * 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
|
1320 * for now. |
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 if (!strcmp(web_browser, "firefox")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1323 args = "-a firefox"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1324 |
15507 | 1325 if (place == PIDGIN_BROWSER_NEW_WINDOW) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1326 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
|
1327 "openURL(%s,new-window)", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1328 web_browser, args, escaped); |
15507 | 1329 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
|
1330 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
|
1331 "openURL(%s,new-tab)", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1332 web_browser, args, escaped); |
15507 | 1333 else if (place == PIDGIN_BROWSER_CURRENT) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1334 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
|
1335 "openURL(%s)", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1336 web_browser, args, escaped); |
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 else if (!strcmp(web_browser, "netscape")) |
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 command = g_strdup_printf("netscape %s", escaped); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1341 |
15507 | 1342 if (place == PIDGIN_BROWSER_NEW_WINDOW) |
15374
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 remote_command = g_strdup_printf("netscape -remote " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1345 "openURL(%s,new-window)", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1346 escaped); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1347 } |
15507 | 1348 else if (place == PIDGIN_BROWSER_CURRENT) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1349 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1350 remote_command = g_strdup_printf("netscape -remote " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1351 "openURL(%s)", escaped); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1352 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1353 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1354 else if (!strcmp(web_browser, "opera")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1355 { |
15507 | 1356 if (place == PIDGIN_BROWSER_NEW_WINDOW) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1357 command = g_strdup_printf("opera -newwindow %s", escaped); |
15507 | 1358 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
|
1359 command = g_strdup_printf("opera -newpage %s", escaped); |
15507 | 1360 else if (place == PIDGIN_BROWSER_CURRENT) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1361 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1362 remote_command = g_strdup_printf("opera -remote " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1363 "openURL(%s)", escaped); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1364 command = g_strdup_printf("opera %s", escaped); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1365 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1366 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1367 command = g_strdup_printf("opera %s", escaped); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1368 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1369 } |
30990
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1370 else if (!strcmp(web_browser, "google-chrome")) |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1371 { |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1372 /* Google Chrome doesn't have command-line arguments that control the |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1373 * opening of links from external calls. This is controlled solely from |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1374 * a preference within Google Chrome. */ |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1375 command = g_strdup_printf("google-chrome %s", escaped); |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1376 } |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1377 else if (!strcmp(web_browser, "chrome")) |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1378 { |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1379 /* Chromium doesn't have command-line arguments that control the |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1380 * opening of links from external calls. This is controlled solely from |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1381 * a preference within Chromium. */ |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1382 command = g_strdup_printf("chrome %s", escaped); |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1383 } |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1384 else if (!strcmp(web_browser, "chromium-browser")) |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1385 { |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1386 /* Chromium doesn't have command-line arguments that control the |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1387 * opening of links from external calls. This is controlled solely from |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1388 * a preference within Chromium. */ |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1389 command = g_strdup_printf("chromium-browser %s", escaped); |
00455fe8c574
Add the new browsers here so they do useful stuff by default.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
29488
diff
changeset
|
1390 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1391 else if (!strcmp(web_browser, "custom")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1392 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1393 const char *web_command; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1394 |
31002
70d8e2e71552
I thought I had done this in my last commit. Clearly I'm an idiot. This fixes
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
30991
diff
changeset
|
1395 web_command = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/browsers/manual_command"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1396 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1397 if (web_command == NULL || *web_command == '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1398 { |
15823 | 1399 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
|
1400 _("The 'Manual' browser command has been " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1401 "chosen, but no command has been set.")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1402 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1403 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1404 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1405 if (strstr(web_command, "%s")) |
15823 | 1406 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
|
1407 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1408 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1409 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1410 * 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
|
1411 * 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
|
1412 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1413 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
|
1414 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1415 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1416 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1417 g_free(escaped); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1418 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1419 if (remote_command != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1420 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1421 /* try the remote command first */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1422 if (uri_command(remote_command, TRUE) != 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1423 uri_command(command, FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1424 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1425 g_free(remote_command); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1426 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1427 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1428 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1429 uri_command(command, FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1430 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1431 g_free(command); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1432 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1433 #else /* !_WIN32 */ |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15509
diff
changeset
|
1434 winpidgin_notify_uri(uri); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1435 #endif /* !_WIN32 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1436 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1437 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1438 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1439 |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1440 void |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1441 pidgin_notify_pounce_add(PurpleAccount *account, PurplePounce *pounce, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1442 const char *alias, const char *event, const char *message, const char *date) |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1443 { |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1444 GdkPixbuf *icon; |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1445 GtkTreeIter iter; |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1446 PidginNotifyPounceData *pounce_data; |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
1447 gboolean first = (pounce_dialog == NULL); |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1448 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
1449 if (pounce_dialog == NULL) |
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
1450 pounce_dialog = pidgin_create_notification_dialog(PIDGIN_NOTIFY_POUNCE); |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1451 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1452 icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1453 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1454 pounce_data = g_new(PidginNotifyPounceData, 1); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1455 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1456 pounce_data->account = account; |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1457 pounce_data->pounce = pounce; |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
1458 pounce_data->pouncee = g_strdup(purple_pounce_get_pouncee(pounce)); |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1459 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1460 gtk_tree_store_append(pounce_dialog->treemodel, &iter, NULL); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1461 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1462 gtk_tree_store_set(pounce_dialog->treemodel, &iter, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1463 PIDGIN_POUNCE_ICON, icon, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1464 PIDGIN_POUNCE_ALIAS, alias, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1465 PIDGIN_POUNCE_EVENT, event, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1466 PIDGIN_POUNCE_TEXT, (message != NULL)? message : _("No message"), |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1467 PIDGIN_POUNCE_DATE, date, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1468 PIDGIN_POUNCE_DATA, pounce_data, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1469 -1); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1470 |
28434
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
1471 if (first) { |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
1472 GtkTreeSelection *selection = |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
1473 gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview)); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
1474 gtk_tree_selection_select_iter(selection, &iter); |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
1475 } |
9affcab62522
pounce dialog: Try to always have a row selected. Fixes #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28433
diff
changeset
|
1476 |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1477 if (icon) |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1478 g_object_unref(icon); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1479 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
1480 gtk_widget_show_all(pounce_dialog->dialog); |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1481 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1482 return; |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1483 } |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1484 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1485 static PidginNotifyDialog * |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
1486 pidgin_create_notification_dialog(PidginNotifyType type) |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1487 { |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1488 GtkTreeStore *model = NULL; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1489 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
|
1490 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
|
1491 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
|
1492 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
|
1493 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
|
1494 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
|
1495 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
|
1496 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
|
1497 PidginNotifyDialog *spec_dialog = NULL; |
27337
357405dc8b2c
Remove trailing whitespace
Paul Aurich <paul@darkrain42.org>
parents:
27325
diff
changeset
|
1498 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1499 g_return_val_if_fail(type < PIDGIN_NOTIFY_TYPES, NULL); |
27337
357405dc8b2c
Remove trailing whitespace
Paul Aurich <paul@darkrain42.org>
parents:
27325
diff
changeset
|
1500 |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1501 if (type == PIDGIN_NOTIFY_MAIL) { |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
1502 g_return_val_if_fail(mail_dialog == NULL, mail_dialog); |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1503 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1504 model = gtk_tree_store_new(COLUMNS_PIDGIN_MAIL, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1505 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1506 |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1507 } else if (type == PIDGIN_NOTIFY_POUNCE) { |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
1508 g_return_val_if_fail(pounce_dialog == NULL, pounce_dialog); |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1509 |
27344
975a29213f35
Use mail_dialog consistently, instead of switching from one line to the next. Various other cleanups, too.
Paul Aurich <paul@darkrain42.org>
parents:
27342
diff
changeset
|
1510 model = gtk_tree_store_new(COLUMNS_PIDGIN_POUNCE, |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1511 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1512 G_TYPE_STRING, G_TYPE_POINTER); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1513 } |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1514 |
28433
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1515 dialog = gtk_dialog_new(); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1516 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1517 /* 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
|
1518 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
|
1519 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
|
1520 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
|
1521 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
|
1522 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1523 /* 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
|
1524 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
|
1525 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1526 /* 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
|
1527 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
|
1528 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1529 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
|
1530 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
|
1531 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
|
1532 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1533 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
|
1534 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
|
1535 |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1536 spec_dialog->treemodel = model; |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1537 spec_dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); |
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1538 g_object_unref(G_OBJECT(model)); |
27337
357405dc8b2c
Remove trailing whitespace
Paul Aurich <paul@darkrain42.org>
parents:
27325
diff
changeset
|
1539 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1540 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
|
1541 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
|
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 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
|
1544 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
|
1545 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
|
1546 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
|
1547 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
|
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 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
|
1550 _("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
|
1551 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1552 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
|
1553 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
|
1554 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
|
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 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
|
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 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
|
1559 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
|
1560 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
|
1561 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1562 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
|
1563 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
|
1564 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
|
1565 "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
|
1566 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
|
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 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
|
1569 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
|
1570 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
|
1571 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
|
1572 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1573 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
|
1574 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
|
1575 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
|
1576 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
|
1577 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
|
1578 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1579 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
|
1580 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
|
1581 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1582 } 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
|
1583 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
|
1584 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1585 button = gtk_dialog_add_button(GTK_DIALOG(dialog), |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
1586 _("IM"), GTK_RESPONSE_YES); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
1587 gtk_widget_set_sensitive(button, FALSE); |
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
1588 spec_dialog->open_button = button; |
28433
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1589 |
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1590 button = gtk_dialog_add_button(GTK_DIALOG(dialog), |
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1591 PIDGIN_STOCK_MODIFY, GTK_RESPONSE_APPLY); |
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1592 gtk_widget_set_sensitive(button, FALSE); |
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1593 spec_dialog->edit_button = button; |
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1594 |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
1595 button = gtk_dialog_add_button(GTK_DIALOG(dialog), |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1596 _("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
|
1597 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
|
1598 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
|
1599 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1600 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
|
1601 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
|
1602 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1603 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
|
1604 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
|
1605 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
|
1606 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
|
1607 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
|
1608 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1609 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
|
1610 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
|
1611 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
|
1612 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
|
1613 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
|
1614 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1615 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
|
1616 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
|
1617 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
|
1618 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
|
1619 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
|
1620 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
|
1621 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
|
1622 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1623 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
|
1624 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
|
1625 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
|
1626 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
|
1627 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
|
1628 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
|
1629 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
|
1630 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1631 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
|
1632 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
|
1633 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
|
1634 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
|
1635 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
|
1636 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
|
1637 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
|
1638 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1639 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
|
1640 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
|
1641 |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1642 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(spec_dialog->treeview)); |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
1643 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1644 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
|
1645 G_CALLBACK(pounce_row_selected_cb), NULL); |
28407
f6cdf5f72479
Add a row-activation event for the Pounces dialog to open a new conversation window.
salinasv@gmail.com
parents:
27344
diff
changeset
|
1646 g_signal_connect(G_OBJECT(spec_dialog->treeview), "row-activated", |
28422
74ce58c7bc30
Further pounce dialog improvements. Refs #10037.
Paul Aurich <paul@darkrain42.org>
parents:
28412
diff
changeset
|
1647 G_CALLBACK(pounce_response_open_ims), NULL); |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1648 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1649 |
28433
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1650 button = gtk_dialog_add_button(GTK_DIALOG(dialog), |
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1651 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); |
aca6f567cc1f
Reorder the New Pounces/New Mail dialog buttons.
Paul Aurich <paul@darkrain42.org>
parents:
28422
diff
changeset
|
1652 |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1653 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
|
1654 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
|
1655 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
|
1656 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
|
1657 |
27338
c245c583a1a6
Remove a few layers of evil abstraction.
Paul Aurich <paul@darkrain42.org>
parents:
27337
diff
changeset
|
1658 return spec_dialog; |
26268
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1659 } |
3d997c09b94e
A patch from Jorge Villaseor which makes all pounces share a single window.
Kevin Stange <kevin@simguy.net>
parents:
24497
diff
changeset
|
1660 |
27325
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1661 static void |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1662 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
|
1663 { |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1664 /* 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
|
1665 pidgin_notify_emails(gc, 0, FALSE, NULL, NULL, NULL, NULL); |
27340
fc920924cea3
Close the mail dialog at signoff if it's empty. Closes #9345.
Paul Aurich <paul@darkrain42.org>
parents:
27339
diff
changeset
|
1666 |
27342
8796eaaca38a
Fix the mail_dialog->total_count and use that to tell when the dialog is empty.
Paul Aurich <paul@darkrain42.org>
parents:
27340
diff
changeset
|
1667 if (mail_dialog != NULL && mail_dialog->total_count == 0) |
27340
fc920924cea3
Close the mail dialog at signoff if it's empty. Closes #9345.
Paul Aurich <paul@darkrain42.org>
parents:
27339
diff
changeset
|
1668 reset_mail_dialog(NULL); |
27325
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1669 } |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1670 |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1671 static void* |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1672 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
|
1673 { |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1674 static int handle; |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1675 return &handle; |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1676 } |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1677 |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1678 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
|
1679 { |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1680 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
|
1681 |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1682 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
|
1683 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
|
1684 } |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1685 |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1686 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
|
1687 { |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1688 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
|
1689 } |
ecdc58da4cdd
Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <paul@darkrain42.org>
parents:
27318
diff
changeset
|
1690 |
15823 | 1691 static PurpleNotifyUiOps ops = |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1692 { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1693 pidgin_notify_message, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1694 pidgin_notify_email, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1695 pidgin_notify_emails, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1696 pidgin_notify_formatted, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1697 pidgin_notify_searchresults, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1698 pidgin_notify_searchresults_new_rows, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1699 pidgin_notify_userinfo, |
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1700 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
|
1701 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
|
1702 NULL, |
fbf111436896
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16198
diff
changeset
|
1703 NULL, |
fbf111436896
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16198
diff
changeset
|
1704 NULL, |
fbf111436896
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16198
diff
changeset
|
1705 NULL |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1706 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1707 |
15823 | 1708 PurpleNotifyUiOps * |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15436
diff
changeset
|
1709 pidgin_notify_get_ui_ops(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1710 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1711 return &ops; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1712 } |