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