Sat, 03 Aug 2013 20:35:56 +0530
OCD
| 5437 | 1 | /** |
| 2 | * @file notify.c Notification API | |
| 3 | * @ingroup core | |
|
20330
650a7af9c238
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents:
19859
diff
changeset
|
4 | */ |
|
650a7af9c238
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents:
19859
diff
changeset
|
5 | |
|
650a7af9c238
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents:
19859
diff
changeset
|
6 | /* purple |
| 5437 | 7 | * |
| 15884 | 8 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 10 | * source distribution. | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
11 | * |
| 5437 | 12 | * This program is free software; you can redistribute it and/or modify |
| 13 | * it under the terms of the GNU General Public License as published by | |
| 14 | * the Free Software Foundation; either version 2 of the License, or | |
| 15 | * (at your option) any later version. | |
| 16 | * | |
| 17 | * This program is distributed in the hope that it will be useful, | |
| 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 | * GNU General Public License for more details. | |
| 21 | * | |
| 22 | * You should have received a copy of the GNU General Public License | |
| 23 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18976
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 5437 | 25 | */ |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
23346
diff
changeset
|
26 | #define _PURPLE_NOTIFY_C_ |
|
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
23346
diff
changeset
|
27 | |
|
17111
d7ecc0f69a5c
DBusify userinfo stuff.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16667
diff
changeset
|
28 | #include "internal.h" |
|
d7ecc0f69a5c
DBusify userinfo stuff.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16667
diff
changeset
|
29 | #include "dbus-maybe.h" |
| 5437 | 30 | #include "notify.h" |
| 31 | ||
| 15884 | 32 | static PurpleNotifyUiOps *notify_ui_ops = NULL; |
| 5437 | 33 | static GList *handles = NULL; |
| 34 | ||
| 35 | typedef struct | |
| 36 | { | |
| 15884 | 37 | PurpleNotifyType type; |
| 5437 | 38 | void *handle; |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
39 | void *ui_handle; |
| 15884 | 40 | PurpleNotifyCloseCallback cb; |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
41 | gpointer cb_user_data; |
| 15884 | 42 | } PurpleNotifyInfo; |
| 5437 | 43 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
44 | /** |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
45 | * Definition of a user info entry |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
46 | */ |
| 15884 | 47 | struct _PurpleNotifyUserInfoEntry |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
48 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
49 | char *label; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
50 | char *value; |
| 15884 | 51 | PurpleNotifyUserInfoEntryType type; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
52 | }; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
53 | |
| 15884 | 54 | struct _PurpleNotifyUserInfo |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
55 | { |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
56 | GQueue entries; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
57 | }; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
58 | |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
59 | /** |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
60 | * Single column of a search result. |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
61 | */ |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
62 | struct _PurpleNotifySearchColumn |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
63 | { |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
64 | char *title; /**< Title of the column. */ |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
65 | gboolean visible; /**< Should the column be visible to the user. Defaults to TRUE. */ |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
66 | |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
67 | }; |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
68 | |
| 5437 | 69 | void * |
| 15884 | 70 | purple_notify_message(void *handle, PurpleNotifyMsgType type, |
| 5437 | 71 | const char *title, const char *primary, |
| 15884 | 72 | const char *secondary, PurpleNotifyCloseCallback cb, gpointer user_data) |
| 5437 | 73 | { |
| 15884 | 74 | PurpleNotifyUiOps *ops; |
| 5437 | 75 | |
| 76 | g_return_val_if_fail(primary != NULL, NULL); | |
| 77 | ||
| 15884 | 78 | ops = purple_notify_get_ui_ops(); |
| 5437 | 79 | |
| 80 | if (ops != NULL && ops->notify_message != NULL) { | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
81 | void *ui_handle = ops->notify_message(type, title, primary, |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
82 | secondary); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
83 | if (ui_handle != NULL) { |
| 5437 | 84 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
85 | PurpleNotifyInfo *info = g_new0(PurpleNotifyInfo, 1); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
86 | info->type = PURPLE_NOTIFY_MESSAGE; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
87 | info->handle = handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
88 | info->ui_handle = ui_handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
89 | info->cb = cb; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
90 | info->cb_user_data = user_data; |
| 5437 | 91 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
92 | handles = g_list_append(handles, info); |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
14064
diff
changeset
|
93 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
94 | return info->ui_handle; |
|
14064
0d17cfaf530d
[gaim-migrate @ 16587]
Evan Schoenberg <evands@pidgin.im>
parents:
14063
diff
changeset
|
95 | } |
|
0d17cfaf530d
[gaim-migrate @ 16587]
Evan Schoenberg <evands@pidgin.im>
parents:
14063
diff
changeset
|
96 | |
| 5437 | 97 | } |
| 98 | ||
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
99 | if (cb != NULL) |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
100 | cb(user_data); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
101 | |
| 5437 | 102 | return NULL; |
| 103 | } | |
| 104 | ||
| 105 | void * | |
| 15884 | 106 | purple_notify_email(void *handle, const char *subject, const char *from, |
| 107 | const char *to, const char *url, PurpleNotifyCloseCallback cb, | |
| 12220 | 108 | gpointer user_data) |
| 5437 | 109 | { |
| 15884 | 110 | PurpleNotifyUiOps *ops; |
| 5437 | 111 | |
| 15884 | 112 | ops = purple_notify_get_ui_ops(); |
| 5437 | 113 | |
| 114 | if (ops != NULL && ops->notify_email != NULL) { | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
115 | void *ui_handle; |
|
18976
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
116 | |
|
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
117 | purple_signal_emit(purple_notify_get_handle(), "displaying-email-notification", |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
118 | subject, from, to, url); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
119 | |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
120 | ui_handle = ops->notify_email(handle, subject, from, to, url); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
121 | |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
122 | if (ui_handle != NULL) { |
|
18976
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
123 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
124 | PurpleNotifyInfo *info = g_new0(PurpleNotifyInfo, 1); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
125 | info->type = PURPLE_NOTIFY_EMAIL; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
126 | info->handle = handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
127 | info->ui_handle = ui_handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
128 | info->cb = cb; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
129 | info->cb_user_data = user_data; |
| 5437 | 130 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
131 | handles = g_list_append(handles, info); |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
132 | |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
133 | return info->ui_handle; |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
134 | } |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
135 | } |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
136 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
137 | if (cb != NULL) |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
138 | cb(user_data); |
| 5437 | 139 | |
| 140 | return NULL; | |
| 141 | } | |
| 142 | ||
| 143 | void * | |
| 15884 | 144 | purple_notify_emails(void *handle, size_t count, gboolean detailed, |
|
5522
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
145 | const char **subjects, const char **froms, |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
146 | const char **tos, const char **urls, |
| 15884 | 147 | PurpleNotifyCloseCallback cb, gpointer user_data) |
| 5437 | 148 | { |
| 15884 | 149 | PurpleNotifyUiOps *ops; |
| 5437 | 150 | |
|
5522
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
151 | if (count == 1) { |
| 15884 | 152 | return purple_notify_email(handle, |
|
5522
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
153 | (subjects == NULL ? NULL : *subjects), |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
154 | (froms == NULL ? NULL : *froms), |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
155 | (tos == NULL ? NULL : *tos), |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
156 | (urls == NULL ? NULL : *urls), |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
157 | cb, user_data); |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
158 | } |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
159 | |
| 15884 | 160 | ops = purple_notify_get_ui_ops(); |
| 5437 | 161 | |
| 162 | if (ops != NULL && ops->notify_emails != NULL) { | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
163 | void *ui_handle; |
|
18976
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
164 | |
|
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
165 | purple_signal_emit(purple_notify_get_handle(), "displaying-emails-notification", |
|
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
166 | subjects, froms, tos, urls, count); |
|
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
167 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
168 | ui_handle = ops->notify_emails(handle, count, detailed, subjects, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
169 | froms, tos, urls); |
| 5437 | 170 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
171 | if (ui_handle != NULL) { |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
172 | PurpleNotifyInfo *info = g_new0(PurpleNotifyInfo, 1); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
173 | info->type = PURPLE_NOTIFY_EMAILS; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
174 | info->handle = handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
175 | info->ui_handle = ui_handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
176 | info->cb = cb; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
177 | info->cb_user_data = user_data; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
178 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
179 | handles = g_list_append(handles, info); |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
180 | |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
181 | return info->ui_handle; |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
182 | } |
|
14064
0d17cfaf530d
[gaim-migrate @ 16587]
Evan Schoenberg <evands@pidgin.im>
parents:
14063
diff
changeset
|
183 | |
| 5437 | 184 | } |
| 185 | ||
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
186 | if (cb != NULL) |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
187 | cb(user_data); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
188 | |
| 5437 | 189 | return NULL; |
| 190 | } | |
| 191 | ||
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
192 | void * |
| 15884 | 193 | purple_notify_formatted(void *handle, const char *title, const char *primary, |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
194 | const char *secondary, const char *text, |
| 15884 | 195 | PurpleNotifyCloseCallback cb, gpointer user_data) |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
196 | { |
| 15884 | 197 | PurpleNotifyUiOps *ops; |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
198 | |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
199 | g_return_val_if_fail(primary != NULL, NULL); |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
200 | |
| 15884 | 201 | ops = purple_notify_get_ui_ops(); |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
202 | |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
203 | if (ops != NULL && ops->notify_formatted != NULL) { |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
204 | void *ui_handle = ops->notify_formatted(title, primary, secondary, text); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
205 | |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
206 | if (ui_handle != NULL) { |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
207 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
208 | PurpleNotifyInfo *info = g_new0(PurpleNotifyInfo, 1); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
209 | info->type = PURPLE_NOTIFY_FORMATTED; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
210 | info->handle = handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
211 | info->ui_handle = ui_handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
212 | info->cb = cb; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
213 | info->cb_user_data = user_data; |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
214 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
215 | handles = g_list_append(handles, info); |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
14064
diff
changeset
|
216 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
217 | return info->ui_handle; |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
218 | } |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
219 | } |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
220 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
221 | if (cb != NULL) |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
222 | cb(user_data); |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
223 | return NULL; |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
224 | } |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
225 | |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
226 | void * |
| 15884 | 227 | purple_notify_searchresults(PurpleConnection *gc, const char *title, |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
228 | const char *primary, const char *secondary, |
| 15884 | 229 | PurpleNotifySearchResults *results, PurpleNotifyCloseCallback cb, |
| 13641 | 230 | gpointer user_data) |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
231 | { |
| 15884 | 232 | PurpleNotifyUiOps *ops; |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
233 | |
| 15884 | 234 | ops = purple_notify_get_ui_ops(); |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
235 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
236 | if (ops != NULL && ops->notify_searchresults != NULL) { |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
237 | void *ui_handle = ops->notify_searchresults(gc, title, primary, |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
238 | secondary, results, user_data); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
239 | if (ui_handle != NULL) { |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
240 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
241 | PurpleNotifyInfo *info = g_new0(PurpleNotifyInfo, 1); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
242 | info->type = PURPLE_NOTIFY_SEARCHRESULTS; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
243 | info->handle = gc; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
244 | info->ui_handle = ui_handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
245 | info->cb = cb; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
246 | info->cb_user_data = user_data; |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
247 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
248 | handles = g_list_append(handles, info); |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
249 | |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
250 | return info->ui_handle; |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
251 | } |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
252 | } |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
253 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
254 | if (cb != NULL) |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
255 | cb(user_data); |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
256 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
257 | return NULL; |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
258 | } |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
259 | |
| 11359 | 260 | void |
| 15884 | 261 | purple_notify_searchresults_free(PurpleNotifySearchResults *results) |
| 11359 | 262 | { |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
263 | GList *l; |
| 11359 | 264 | |
| 265 | g_return_if_fail(results != NULL); | |
| 266 | ||
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
267 | for (l = results->buttons; l; l = g_list_delete_link(l, l)) { |
| 15884 | 268 | PurpleNotifySearchButton *button = l->data; |
|
14038
3b7740b778ad
[gaim-migrate @ 16534]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13641
diff
changeset
|
269 | g_free(button->label); |
| 11359 | 270 | g_free(button); |
| 271 | } | |
| 272 | ||
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
273 | for (l = results->rows; l; l = g_list_delete_link(l, l)) { |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
274 | GList *row = l->data; |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
14064
diff
changeset
|
275 | g_list_foreach(row, (GFunc)g_free, NULL); |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
14064
diff
changeset
|
276 | g_list_free(row); |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
277 | } |
| 11359 | 278 | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
279 | for (l = results->columns; l; l = g_list_delete_link(l, l)) { |
| 15884 | 280 | PurpleNotifySearchColumn *column = l->data; |
| 11359 | 281 | g_free(column->title); |
| 282 | g_free(column); | |
| 283 | } | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
284 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
285 | g_free(results); |
| 11359 | 286 | } |
| 287 | ||
| 288 | void | |
| 15884 | 289 | purple_notify_searchresults_new_rows(PurpleConnection *gc, |
| 290 | PurpleNotifySearchResults *results, | |
| 13641 | 291 | void *data) |
| 11359 | 292 | { |
| 15884 | 293 | PurpleNotifyUiOps *ops; |
| 11359 | 294 | |
| 15884 | 295 | ops = purple_notify_get_ui_ops(); |
| 11359 | 296 | |
| 297 | if (ops != NULL && ops->notify_searchresults != NULL) { | |
| 13641 | 298 | ops->notify_searchresults_new_rows(gc, results, data); |
| 11359 | 299 | } |
| 300 | } | |
| 301 | ||
| 302 | void | |
| 15884 | 303 | purple_notify_searchresults_button_add(PurpleNotifySearchResults *results, |
| 304 | PurpleNotifySearchButtonType type, | |
| 305 | PurpleNotifySearchResultsCallback cb) | |
| 11359 | 306 | { |
| 15884 | 307 | PurpleNotifySearchButton *button; |
| 11359 | 308 | |
| 309 | g_return_if_fail(results != NULL); | |
| 310 | g_return_if_fail(cb != NULL); | |
| 311 | ||
| 15884 | 312 | button = g_new0(PurpleNotifySearchButton, 1); |
| 11359 | 313 | button->callback = cb; |
| 314 | button->type = type; | |
| 315 | ||
| 316 | results->buttons = g_list_append(results->buttons, button); | |
| 317 | } | |
| 318 | ||
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
319 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
320 | void |
| 15884 | 321 | purple_notify_searchresults_button_add_labeled(PurpleNotifySearchResults *results, |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
322 | const char *label, |
| 15884 | 323 | PurpleNotifySearchResultsCallback cb) { |
| 324 | PurpleNotifySearchButton *button; | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
325 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
326 | g_return_if_fail(results != NULL); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
327 | g_return_if_fail(cb != NULL); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
328 | g_return_if_fail(label != NULL); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
329 | g_return_if_fail(*label != '\0'); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
330 | |
| 15884 | 331 | button = g_new0(PurpleNotifySearchButton, 1); |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
332 | button->callback = cb; |
| 15884 | 333 | button->type = PURPLE_NOTIFY_BUTTON_LABELED; |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
334 | button->label = g_strdup(label); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
335 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
336 | results->buttons = g_list_append(results->buttons, button); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
337 | } |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
338 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
339 | |
| 15884 | 340 | PurpleNotifySearchResults * |
| 341 | purple_notify_searchresults_new() | |
| 11359 | 342 | { |
| 15884 | 343 | PurpleNotifySearchResults *rs = g_new0(PurpleNotifySearchResults, 1); |
| 11359 | 344 | |
| 345 | return rs; | |
| 346 | } | |
| 347 | ||
| 348 | void | |
| 15884 | 349 | purple_notify_searchresults_column_add(PurpleNotifySearchResults *results, |
| 350 | PurpleNotifySearchColumn *column) | |
| 11359 | 351 | { |
| 352 | g_return_if_fail(results != NULL); | |
| 353 | g_return_if_fail(column != NULL); | |
| 354 | ||
| 355 | results->columns = g_list_append(results->columns, column); | |
| 356 | } | |
| 357 | ||
| 15884 | 358 | void purple_notify_searchresults_row_add(PurpleNotifySearchResults *results, |
| 11359 | 359 | GList *row) |
| 360 | { | |
| 361 | g_return_if_fail(results != NULL); | |
| 362 | g_return_if_fail(row != NULL); | |
| 363 | ||
| 364 | results->rows = g_list_append(results->rows, row); | |
| 365 | } | |
| 366 | ||
| 15884 | 367 | PurpleNotifySearchColumn * |
| 368 | purple_notify_searchresults_column_new(const char *title) | |
| 11359 | 369 | { |
| 15884 | 370 | PurpleNotifySearchColumn *sc; |
| 11359 | 371 | |
| 372 | g_return_val_if_fail(title != NULL, NULL); | |
| 373 | ||
| 15884 | 374 | sc = g_new0(PurpleNotifySearchColumn, 1); |
| 11359 | 375 | sc->title = g_strdup(title); |
| 31696 | 376 | sc->visible = TRUE; |
| 11359 | 377 | |
| 378 | return sc; | |
| 379 | } | |
| 380 | ||
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
381 | const char *purple_notify_searchresult_column_get_title(const PurpleNotifySearchColumn *column) |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
382 | { |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
383 | g_return_val_if_fail(column != NULL, NULL); |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
384 | |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
385 | return column->title; |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
386 | } |
|
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32204
diff
changeset
|
387 | |
| 31696 | 388 | void purple_notify_searchresult_column_set_visible(PurpleNotifySearchColumn *column, gboolean visible) |
| 389 | { | |
| 390 | g_return_if_fail(column != NULL); | |
| 391 | ||
| 392 | column->visible = visible; | |
| 393 | } | |
| 394 | ||
| 395 | gboolean | |
| 396 | purple_notify_searchresult_column_is_visible(const PurpleNotifySearchColumn *column) | |
| 397 | { | |
| 398 | g_return_val_if_fail(column != NULL, FALSE); | |
| 399 | ||
| 400 | return column->visible; | |
| 401 | } | |
| 402 | ||
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
403 | void * |
| 15884 | 404 | purple_notify_userinfo(PurpleConnection *gc, const char *who, |
| 405 | PurpleNotifyUserInfo *user_info, PurpleNotifyCloseCallback cb, gpointer user_data) | |
| 9797 | 406 | { |
| 15884 | 407 | PurpleNotifyUiOps *ops; |
|
11531
63c017cfd8d2
[gaim-migrate @ 13780]
Luke Schierer <lschiere@pidgin.im>
parents:
11359
diff
changeset
|
408 | |
|
11533
f58436975d44
[gaim-migrate @ 13782]
Richard Laager <rlaager@pidgin.im>
parents:
11531
diff
changeset
|
409 | g_return_val_if_fail(who != NULL, NULL); |
| 9797 | 410 | |
| 15884 | 411 | ops = purple_notify_get_ui_ops(); |
| 9797 | 412 | |
| 413 | if (ops != NULL && ops->notify_userinfo != NULL) { | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
414 | void *ui_handle; |
| 12129 | 415 | |
| 15884 | 416 | purple_signal_emit(purple_notify_get_handle(), "displaying-userinfo", |
| 417 | purple_connection_get_account(gc), who, user_info); | |
| 12129 | 418 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
419 | ui_handle = ops->notify_userinfo(gc, who, user_info); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
420 | |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
421 | if (ui_handle != NULL) { |
| 9797 | 422 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
423 | PurpleNotifyInfo *info = g_new0(PurpleNotifyInfo, 1); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
424 | info->type = PURPLE_NOTIFY_USERINFO; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
425 | info->handle = gc; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
426 | info->ui_handle = ui_handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
427 | info->cb = cb; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
428 | info->cb_user_data = user_data; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
429 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
430 | handles = g_list_append(handles, info); |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
431 | |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
432 | return info->ui_handle; |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
433 | } |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
434 | } |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
435 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
436 | if (cb != NULL) |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
437 | cb(user_data); |
| 9797 | 438 | |
| 439 | return NULL; | |
| 440 | } | |
| 441 | ||
| 15884 | 442 | PurpleNotifyUserInfoEntry * |
| 443 | purple_notify_user_info_entry_new(const char *label, const char *value) | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
444 | { |
| 15884 | 445 | PurpleNotifyUserInfoEntry *user_info_entry; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
446 | |
| 15884 | 447 | user_info_entry = g_new0(PurpleNotifyUserInfoEntry, 1); |
|
17111
d7ecc0f69a5c
DBusify userinfo stuff.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16667
diff
changeset
|
448 | PURPLE_DBUS_REGISTER_POINTER(user_info_entry, PurpleNotifyUserInfoEntry); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
449 | user_info_entry->label = g_strdup(label); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
450 | user_info_entry->value = g_strdup(value); |
| 15884 | 451 | user_info_entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_PAIR; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
452 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
453 | return user_info_entry; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
454 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
455 | |
|
34795
979a2d8fb770
Made purple_notify_user_info_entry_destroy() public, so entries can be free'd after calling remove_entry
Ankit Vani <a@nevitus.org>
parents:
34793
diff
changeset
|
456 | void |
| 15884 | 457 | purple_notify_user_info_entry_destroy(PurpleNotifyUserInfoEntry *user_info_entry) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
458 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
459 | g_return_if_fail(user_info_entry != NULL); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
460 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
461 | g_free(user_info_entry->label); |
|
20655
66f2dfd94949
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <datallah@pidgin.im>
parents:
20330
diff
changeset
|
462 | g_free(user_info_entry->value); |
|
17111
d7ecc0f69a5c
DBusify userinfo stuff.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16667
diff
changeset
|
463 | PURPLE_DBUS_UNREGISTER_POINTER(user_info_entry); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
464 | g_free(user_info_entry); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
465 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
466 | |
| 15884 | 467 | PurpleNotifyUserInfo * |
| 468 | purple_notify_user_info_new() | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
469 | { |
| 15884 | 470 | PurpleNotifyUserInfo *user_info; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
471 | |
| 15884 | 472 | user_info = g_new0(PurpleNotifyUserInfo, 1); |
|
17111
d7ecc0f69a5c
DBusify userinfo stuff.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16667
diff
changeset
|
473 | PURPLE_DBUS_REGISTER_POINTER(user_info, PurpleNotifyUserInfo); |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
474 | g_queue_init(&user_info->entries); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
475 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
476 | return user_info; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
477 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
478 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
479 | void |
| 15884 | 480 | purple_notify_user_info_destroy(PurpleNotifyUserInfo *user_info) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
481 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
482 | GList *l; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
483 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
484 | for (l = user_info->entries.head; l != NULL; l = l->next) { |
| 15884 | 485 | PurpleNotifyUserInfoEntry *user_info_entry = l->data; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
486 | |
| 15884 | 487 | purple_notify_user_info_entry_destroy(user_info_entry); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
488 | } |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
489 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
490 | g_queue_clear(&user_info->entries); |
|
17111
d7ecc0f69a5c
DBusify userinfo stuff.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16667
diff
changeset
|
491 | PURPLE_DBUS_UNREGISTER_POINTER(user_info); |
| 16667 | 492 | g_free(user_info); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
493 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
494 | |
|
32193
42173d1c1317
Change PurpleNotifyUserInfo->user_info_entries from a GList to a GQueue.
Mark Doliner <markdoliner@pidgin.im>
parents:
32191
diff
changeset
|
495 | GQueue * |
| 15884 | 496 | purple_notify_user_info_get_entries(PurpleNotifyUserInfo *user_info) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
497 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
498 | g_return_val_if_fail(user_info != NULL, NULL); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
499 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
500 | return &user_info->entries; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
501 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
502 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
503 | char * |
| 15884 | 504 | purple_notify_user_info_get_text_with_newline(PurpleNotifyUserInfo *user_info, const char *newline) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
505 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
506 | GList *l; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
507 | GString *text; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
508 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
509 | text = g_string_new(""); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
510 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
511 | for (l = user_info->entries.head; l != NULL; l = l->next) { |
| 15884 | 512 | PurpleNotifyUserInfoEntry *user_info_entry = l->data; |
|
15211
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
513 | /* Add a newline before a section header */ |
| 15884 | 514 | if (user_info_entry->type == PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
515 | g_string_append(text, newline); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
516 | |
|
15211
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
517 | /* Handle the label/value pair itself */ |
|
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
518 | /* XXX Todo: Use a larger size for a section header? */ |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
519 | if (user_info_entry->label) |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
520 | g_string_append_printf(text, "<b>%s</b>", user_info_entry->label); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
521 | if (user_info_entry->label && user_info_entry->value) |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
522 | g_string_append(text, ": "); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
523 | if (user_info_entry->value) |
|
20655
66f2dfd94949
Clear out the mail notifications for an account when we receive a notification of 0 emails.
Daniel Atallah <datallah@pidgin.im>
parents:
20330
diff
changeset
|
524 | g_string_append(text, user_info_entry->value); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
525 | |
|
15211
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
526 | /* Display a section break as a horizontal line */ |
| 15884 | 527 | if (user_info_entry->type == PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK) |
|
15211
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
528 | g_string_append(text, "<HR>"); |
|
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
529 | |
|
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
530 | /* Don't insert a new line before or after a section break; <HR> does that for us */ |
| 15884 | 531 | if ((user_info_entry->type != PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK) && |
| 532 | (l->next && ((((PurpleNotifyUserInfoEntry *)(l->next->data))->type != PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK)))) | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
533 | g_string_append(text, newline); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
534 | |
|
15211
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
535 | /* Add an extra newline after a section header */ |
| 15884 | 536 | if (user_info_entry->type == PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
537 | g_string_append(text, newline); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
538 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
539 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
540 | return g_string_free(text, FALSE); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
541 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
542 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
543 | |
|
22762
7f13bec07bad
constify the return value from purple_notify_user_info_entry_get_label
Mark Doliner <markdoliner@pidgin.im>
parents:
21076
diff
changeset
|
544 | const gchar * |
| 15884 | 545 | purple_notify_user_info_entry_get_label(PurpleNotifyUserInfoEntry *user_info_entry) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
546 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
547 | g_return_val_if_fail(user_info_entry != NULL, NULL); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
548 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
549 | return user_info_entry->label; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
550 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
551 | |
|
15325
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
552 | void |
| 15884 | 553 | purple_notify_user_info_entry_set_label(PurpleNotifyUserInfoEntry *user_info_entry, const char *label) |
|
15325
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
554 | { |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
555 | g_return_if_fail(user_info_entry != NULL); |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
556 | |
|
15330
2a5ca291262f
[gaim-migrate @ 18058]
Evan Schoenberg <evands@pidgin.im>
parents:
15329
diff
changeset
|
557 | g_free(user_info_entry->label); |
|
2a5ca291262f
[gaim-migrate @ 18058]
Evan Schoenberg <evands@pidgin.im>
parents:
15329
diff
changeset
|
558 | user_info_entry->label = g_strdup(label); |
|
15325
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
559 | } |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
560 | |
|
22762
7f13bec07bad
constify the return value from purple_notify_user_info_entry_get_label
Mark Doliner <markdoliner@pidgin.im>
parents:
21076
diff
changeset
|
561 | const gchar * |
| 15884 | 562 | purple_notify_user_info_entry_get_value(PurpleNotifyUserInfoEntry *user_info_entry) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
563 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
564 | g_return_val_if_fail(user_info_entry != NULL, NULL); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
565 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
566 | return user_info_entry->value; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
567 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
568 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
569 | void |
| 15884 | 570 | purple_notify_user_info_entry_set_value(PurpleNotifyUserInfoEntry *user_info_entry, const char *value) |
|
15325
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
571 | { |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
572 | g_return_if_fail(user_info_entry != NULL); |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
573 | |
|
15330
2a5ca291262f
[gaim-migrate @ 18058]
Evan Schoenberg <evands@pidgin.im>
parents:
15329
diff
changeset
|
574 | g_free(user_info_entry->value); |
|
2a5ca291262f
[gaim-migrate @ 18058]
Evan Schoenberg <evands@pidgin.im>
parents:
15329
diff
changeset
|
575 | user_info_entry->value = g_strdup(value); |
|
15325
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
576 | } |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
577 | |
| 15884 | 578 | PurpleNotifyUserInfoEntryType |
| 579 | purple_notify_user_info_entry_get_type(PurpleNotifyUserInfoEntry *user_info_entry) | |
|
15325
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
580 | { |
| 15884 | 581 | g_return_val_if_fail(user_info_entry != NULL, PURPLE_NOTIFY_USER_INFO_ENTRY_PAIR); |
|
15330
2a5ca291262f
[gaim-migrate @ 18058]
Evan Schoenberg <evands@pidgin.im>
parents:
15329
diff
changeset
|
582 | |
|
15325
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
583 | return user_info_entry->type; |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
584 | } |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
585 | |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
586 | void |
| 15884 | 587 | purple_notify_user_info_entry_set_type(PurpleNotifyUserInfoEntry *user_info_entry, PurpleNotifyUserInfoEntryType type) |
|
15325
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
588 | { |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
589 | g_return_if_fail(user_info_entry != NULL); |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
590 | |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
591 | user_info_entry->type = type; |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
592 | } |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
593 | |
|
d1dcb41d845b
[gaim-migrate @ 18053]
Evan Schoenberg <evands@pidgin.im>
parents:
15211
diff
changeset
|
594 | void |
|
32191
a4668d9dc8d1
Rename purple_notify_user_info_add_pair to
Mark Doliner <markdoliner@pidgin.im>
parents:
32143
diff
changeset
|
595 | purple_notify_user_info_add_pair_html(PurpleNotifyUserInfo *user_info, const char *label, const char *value) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
596 | { |
| 15884 | 597 | PurpleNotifyUserInfoEntry *entry; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
598 | |
| 15884 | 599 | entry = purple_notify_user_info_entry_new(label, value); |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
600 | g_queue_push_tail(&user_info->entries, entry); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
601 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
602 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
603 | void |
|
30537
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
604 | purple_notify_user_info_add_pair_plaintext(PurpleNotifyUserInfo *user_info, const char *label, const char *value) |
|
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
605 | { |
|
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
606 | gchar *escaped; |
|
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
607 | |
|
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
608 | escaped = g_markup_escape_text(value, -1); |
|
32191
a4668d9dc8d1
Rename purple_notify_user_info_add_pair to
Mark Doliner <markdoliner@pidgin.im>
parents:
32143
diff
changeset
|
609 | purple_notify_user_info_add_pair_html(user_info, label, escaped); |
|
30537
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
610 | g_free(escaped); |
|
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
611 | } |
|
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
612 | |
|
9f833935ecd7
Add a purple_notify_user_info_add_pair_plaintext function that accepts a
Mark Doliner <markdoliner@pidgin.im>
parents:
25888
diff
changeset
|
613 | void |
|
32204
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
614 | purple_notify_user_info_prepend_pair_html(PurpleNotifyUserInfo *user_info, const char *label, const char *value) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
615 | { |
| 15884 | 616 | PurpleNotifyUserInfoEntry *entry; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
617 | |
| 15884 | 618 | entry = purple_notify_user_info_entry_new(label, value); |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
619 | g_queue_push_head(&user_info->entries, entry); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
620 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
621 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
622 | void |
|
32204
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
623 | purple_notify_user_info_prepend_pair_plaintext(PurpleNotifyUserInfo *user_info, const char *label, const char *value) |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
624 | { |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
625 | gchar *escaped; |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
626 | |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
627 | escaped = g_markup_escape_text(value, -1); |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
628 | purple_notify_user_info_prepend_pair_html(user_info, label, escaped); |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
629 | g_free(escaped); |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
630 | } |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
631 | |
|
2a09624616c3
Actually commit the purple_notify_user_info_prepend_pair_plaintext
Mark Doliner <markdoliner@pidgin.im>
parents:
32194
diff
changeset
|
632 | void |
| 15884 | 633 | purple_notify_user_info_remove_entry(PurpleNotifyUserInfo *user_info, PurpleNotifyUserInfoEntry *entry) |
|
15328
113b0b520010
[gaim-migrate @ 18056]
Evan Schoenberg <evands@pidgin.im>
parents:
15325
diff
changeset
|
634 | { |
|
113b0b520010
[gaim-migrate @ 18056]
Evan Schoenberg <evands@pidgin.im>
parents:
15325
diff
changeset
|
635 | g_return_if_fail(user_info != NULL); |
|
15329
52e77528c005
[gaim-migrate @ 18057]
Evan Schoenberg <evands@pidgin.im>
parents:
15328
diff
changeset
|
636 | g_return_if_fail(entry != NULL); |
|
15328
113b0b520010
[gaim-migrate @ 18056]
Evan Schoenberg <evands@pidgin.im>
parents:
15325
diff
changeset
|
637 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
638 | g_queue_remove(&user_info->entries, entry); |
|
15328
113b0b520010
[gaim-migrate @ 18056]
Evan Schoenberg <evands@pidgin.im>
parents:
15325
diff
changeset
|
639 | } |
|
113b0b520010
[gaim-migrate @ 18056]
Evan Schoenberg <evands@pidgin.im>
parents:
15325
diff
changeset
|
640 | |
|
113b0b520010
[gaim-migrate @ 18056]
Evan Schoenberg <evands@pidgin.im>
parents:
15325
diff
changeset
|
641 | void |
| 15884 | 642 | purple_notify_user_info_add_section_header(PurpleNotifyUserInfo *user_info, const char *label) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
643 | { |
| 15884 | 644 | PurpleNotifyUserInfoEntry *entry; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
645 | |
| 15884 | 646 | entry = purple_notify_user_info_entry_new(label, NULL); |
| 647 | entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER; | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
648 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
649 | g_queue_push_tail(&user_info->entries, entry); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
650 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
651 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
652 | void |
|
23346
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
653 | purple_notify_user_info_prepend_section_header(PurpleNotifyUserInfo *user_info, const char *label) |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
654 | { |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
655 | PurpleNotifyUserInfoEntry *entry; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
656 | |
|
23346
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
657 | entry = purple_notify_user_info_entry_new(label, NULL); |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
658 | entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
659 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
660 | g_queue_push_head(&user_info->entries, entry); |
|
23346
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
661 | } |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
662 | |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
663 | void |
| 15884 | 664 | purple_notify_user_info_add_section_break(PurpleNotifyUserInfo *user_info) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
665 | { |
| 15884 | 666 | PurpleNotifyUserInfoEntry *entry; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
667 | |
| 15884 | 668 | entry = purple_notify_user_info_entry_new(NULL, NULL); |
| 669 | entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK; | |
|
15211
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
670 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
671 | g_queue_push_tail(&user_info->entries, entry); |
|
15211
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
672 | } |
|
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
673 | |
|
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
674 | void |
|
23346
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
675 | purple_notify_user_info_prepend_section_break(PurpleNotifyUserInfo *user_info) |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
676 | { |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
677 | PurpleNotifyUserInfoEntry *entry; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
678 | |
|
23346
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
679 | entry = purple_notify_user_info_entry_new(NULL, NULL); |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
680 | entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
681 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
682 | g_queue_push_head(&user_info->entries, entry); |
|
23346
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
683 | } |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
684 | |
|
fceca7f4710f
Added prepend functions for notify_user_info section headers and breaks
Evan Schoenberg <evands@pidgin.im>
parents:
22968
diff
changeset
|
685 | void |
| 15884 | 686 | purple_notify_user_info_remove_last_item(PurpleNotifyUserInfo *user_info) |
|
15211
bb75b7bc10a8
[gaim-migrate @ 17935]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
687 | { |
|
32193
42173d1c1317
Change PurpleNotifyUserInfo->user_info_entries from a GList to a GQueue.
Mark Doliner <markdoliner@pidgin.im>
parents:
32191
diff
changeset
|
688 | PurpleNotifyUserInfoEntry *entry; |
|
42173d1c1317
Change PurpleNotifyUserInfo->user_info_entries from a GList to a GQueue.
Mark Doliner <markdoliner@pidgin.im>
parents:
32191
diff
changeset
|
689 | |
|
32194
44368fa4f040
user_info->user_info_entries is redundant. Let's call it
Mark Doliner <markdoliner@pidgin.im>
parents:
32193
diff
changeset
|
690 | entry = g_queue_pop_tail(&user_info->entries); |
|
32193
42173d1c1317
Change PurpleNotifyUserInfo->user_info_entries from a GList to a GQueue.
Mark Doliner <markdoliner@pidgin.im>
parents:
32191
diff
changeset
|
691 | if (entry) |
|
42173d1c1317
Change PurpleNotifyUserInfo->user_info_entries from a GList to a GQueue.
Mark Doliner <markdoliner@pidgin.im>
parents:
32191
diff
changeset
|
692 | purple_notify_user_info_entry_destroy(entry); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
693 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
14254
diff
changeset
|
694 | |
|
34793
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
695 | static PurpleNotifyUserInfo * |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
696 | purple_notify_user_info_copy(PurpleNotifyUserInfo *user_info) |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
697 | { |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
698 | PurpleNotifyUserInfo *user_info_copy; |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
699 | GList *l; |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
700 | |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
701 | g_return_val_if_fail(user_info != NULL, NULL); |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
702 | |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
703 | user_info_copy = purple_notify_user_info_new(); |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
704 | |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
705 | for (l = user_info->entries.head; l != NULL; l = l->next) { |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
706 | PurpleNotifyUserInfoEntry *new_entry, *user_info_entry = l->data; |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
707 | |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
708 | new_entry = purple_notify_user_info_entry_new(user_info_entry->label, |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
709 | user_info_entry->value); |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
710 | new_entry->type = user_info_entry->type; |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
711 | g_queue_push_tail(&user_info_copy->entries, new_entry); |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
712 | } |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
713 | |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
714 | return user_info_copy; |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
715 | } |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
716 | |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
717 | GType |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
718 | purple_notify_user_info_get_type(void) |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
719 | { |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
720 | static GType type = 0; |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
721 | |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
722 | if (type == 0) { |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
723 | type = g_boxed_type_register_static("PurpleNotifyUserInfo", |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
724 | (GBoxedCopyFunc)purple_notify_user_info_copy, |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
725 | (GBoxedFreeFunc)purple_notify_user_info_destroy); |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
726 | } |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
727 | |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
728 | return type; |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
729 | } |
|
07f8ceb4e690
Added GBoxed for PurpleNotifyUserInfo
Ankit Vani <a@nevitus.org>
parents:
33527
diff
changeset
|
730 | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
731 | void * |
| 15884 | 732 | purple_notify_uri(void *handle, const char *uri) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
733 | { |
| 15884 | 734 | PurpleNotifyUiOps *ops; |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
735 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
736 | g_return_val_if_fail(uri != NULL, NULL); |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
737 | |
| 15884 | 738 | ops = purple_notify_get_ui_ops(); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
739 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
740 | if (ops != NULL && ops->notify_uri != NULL) { |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
741 | |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
742 | void *ui_handle = ops->notify_uri(uri); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
743 | |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
744 | if (ui_handle != NULL) { |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
745 | |
|
22968
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
746 | PurpleNotifyInfo *info = g_new0(PurpleNotifyInfo, 1); |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
747 | info->type = PURPLE_NOTIFY_URI; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
748 | info->handle = handle; |
|
06b1d79e09f6
Cleanup and avoid unnecessary alloc/free.
Daniel Atallah <datallah@pidgin.im>
parents:
22762
diff
changeset
|
749 | info->ui_handle = ui_handle; |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
750 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
751 | handles = g_list_append(handles, info); |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
14064
diff
changeset
|
752 | |
|
14063
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
753 | return info->ui_handle; |
|
884ee51b28e9
[gaim-migrate @ 16586]
Evan Schoenberg <evands@pidgin.im>
parents:
14038
diff
changeset
|
754 | } |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
755 | } |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
756 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
757 | return NULL; |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
758 | } |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
759 | |
| 5437 | 760 | void |
| 15884 | 761 | purple_notify_close(PurpleNotifyType type, void *ui_handle) |
| 5437 | 762 | { |
| 763 | GList *l; | |
| 15884 | 764 | PurpleNotifyUiOps *ops; |
| 5437 | 765 | |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
766 | g_return_if_fail(ui_handle != NULL); |
| 5437 | 767 | |
| 15884 | 768 | ops = purple_notify_get_ui_ops(); |
| 5437 | 769 | |
| 770 | for (l = handles; l != NULL; l = l->next) { | |
| 15884 | 771 | PurpleNotifyInfo *info = l->data; |
| 5437 | 772 | |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
773 | if (info->ui_handle == ui_handle) { |
| 5437 | 774 | handles = g_list_remove(handles, info); |
| 775 | ||
| 776 | if (ops != NULL && ops->close_notify != NULL) | |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
777 | ops->close_notify(info->type, ui_handle); |
| 5437 | 778 | |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
779 | if (info->cb != NULL) |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
780 | info->cb(info->cb_user_data); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
781 | |
| 5437 | 782 | g_free(info); |
| 783 | ||
| 784 | break; | |
| 785 | } | |
| 786 | } | |
| 787 | } | |
| 788 | ||
| 789 | void | |
| 15884 | 790 | purple_notify_close_with_handle(void *handle) |
| 5437 | 791 | { |
|
17728
323b1481c2bc
sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17111
diff
changeset
|
792 | GList *l, *prev = NULL; |
| 15884 | 793 | PurpleNotifyUiOps *ops; |
| 5437 | 794 | |
| 795 | g_return_if_fail(handle != NULL); | |
| 796 | ||
| 15884 | 797 | ops = purple_notify_get_ui_ops(); |
| 5437 | 798 | |
|
17728
323b1481c2bc
sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17111
diff
changeset
|
799 | for (l = handles; l != NULL; l = prev ? prev->next : handles) { |
| 15884 | 800 | PurpleNotifyInfo *info = l->data; |
| 5437 | 801 | |
| 802 | if (info->handle == handle) { | |
| 803 | handles = g_list_remove(handles, info); | |
| 804 | ||
| 805 | if (ops != NULL && ops->close_notify != NULL) | |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
806 | ops->close_notify(info->type, info->ui_handle); |
| 5437 | 807 | |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
808 | if (info->cb != NULL) |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
809 | info->cb(info->cb_user_data); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
810 | |
| 5437 | 811 | g_free(info); |
|
17728
323b1481c2bc
sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17111
diff
changeset
|
812 | } else |
|
323b1481c2bc
sadrul's fix for the userinfo notify crash on disconnect that was caused by
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17111
diff
changeset
|
813 | prev = l; |
| 5437 | 814 | } |
| 815 | } | |
| 816 | ||
| 817 | void | |
| 15884 | 818 | purple_notify_set_ui_ops(PurpleNotifyUiOps *ops) |
| 5437 | 819 | { |
| 820 | notify_ui_ops = ops; | |
| 821 | } | |
| 822 | ||
| 15884 | 823 | PurpleNotifyUiOps * |
| 824 | purple_notify_get_ui_ops(void) | |
| 5437 | 825 | { |
| 826 | return notify_ui_ops; | |
| 827 | } | |
| 12129 | 828 | |
| 829 | void * | |
| 15884 | 830 | purple_notify_get_handle(void) |
| 12129 | 831 | { |
| 832 | static int handle; | |
| 833 | ||
| 834 | return &handle; | |
| 835 | } | |
| 836 | ||
| 837 | void | |
| 15884 | 838 | purple_notify_init(void) |
| 12129 | 839 | { |
| 15884 | 840 | gpointer handle = purple_notify_get_handle(); |
| 12129 | 841 | |
|
18976
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
842 | purple_signal_register(handle, "displaying-email-notification", |
|
34820
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
843 | purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER, |
|
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
844 | G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, |
|
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
845 | G_TYPE_STRING, G_TYPE_STRING); |
|
18976
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
846 | |
|
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
847 | purple_signal_register(handle, "displaying-emails-notification", |
|
34820
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
848 | purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT, |
|
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
849 | G_TYPE_NONE, 5, G_TYPE_POINTER, G_TYPE_POINTER, |
|
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
850 | G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_UINT); |
|
18976
fcf071533791
Email notification signals from charkins. Fixes #1324
Sean Egan <seanegan@pidgin.im>
parents:
18191
diff
changeset
|
851 | |
|
33527
c51c70f5545a
Add email notification in the docklet area.
Jorge Villaseñor <salinasv@pidgin.im>
parents:
32438
diff
changeset
|
852 | purple_signal_register(handle, "displaying-emails-clear", |
|
34820
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
853 | purple_marshal_VOID, G_TYPE_NONE, 0); |
|
33527
c51c70f5545a
Add email notification in the docklet area.
Jorge Villaseñor <salinasv@pidgin.im>
parents:
32438
diff
changeset
|
854 | |
| 15884 | 855 | purple_signal_register(handle, "displaying-userinfo", |
|
34820
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
856 | purple_marshal_VOID__POINTER_POINTER_POINTER, |
|
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
857 | G_TYPE_NONE, 3, PURPLE_TYPE_ACCOUNT, G_TYPE_STRING, |
|
7a89045601ae
Refactored log, network, notify to use GType instead of PurpleValue
Ankit Vani <a@nevitus.org>
parents:
34795
diff
changeset
|
858 | PURPLE_TYPE_NOTIFY_USER_INFO); |
| 12129 | 859 | } |
| 860 | ||
| 861 | void | |
| 15884 | 862 | purple_notify_uninit(void) |
| 12129 | 863 | { |
| 15884 | 864 | purple_signals_unregister_by_instance(purple_notify_get_handle()); |
| 12129 | 865 | } |