Tue, 17 Jan 2006 03:00:54 +0000
[gaim-migrate @ 15257]
Part of SF Patch #1406437 from Sadrul
This disconnects the signal handlers on the imhtml and its text buffer
that have the toolbar as the data parameter. As Sadrul put it, "It makes
sure that when an imhtml-attached toolbar is destroyed and the imhtml
still exists, the signal-callbacks don't get triggered."
committer: Richard Laager <rlaager@pidgin.im>
| 5437 | 1 | /** |
| 2 | * @file notify.c Notification API | |
| 3 | * @ingroup core | |
| 4 | * | |
| 5 | * gaim | |
| 6 | * | |
| 8046 | 7 | * Gaim is the legal property of its developers, whose names are too numerous |
| 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 | */ | |
| 25 | #include "notify.h" | |
| 26 | ||
| 27 | static GaimNotifyUiOps *notify_ui_ops = NULL; | |
| 28 | static GList *handles = NULL; | |
| 29 | ||
| 30 | typedef struct | |
| 31 | { | |
| 32 | GaimNotifyType type; | |
| 33 | void *handle; | |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
34 | void *ui_handle; |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
35 | GaimNotifyCloseCallback cb; |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
36 | gpointer cb_user_data; |
| 5437 | 37 | } GaimNotifyInfo; |
| 38 | ||
| 39 | void * | |
|
6356
27990c4f9a9f
[gaim-migrate @ 6855]
Christian Hammond <chipx86@chipx86.com>
parents:
6106
diff
changeset
|
40 | gaim_notify_message(void *handle, GaimNotifyMsgType type, |
| 5437 | 41 | const char *title, const char *primary, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
42 | const char *secondary, GaimNotifyCloseCallback cb, gpointer user_data) |
| 5437 | 43 | { |
| 44 | GaimNotifyUiOps *ops; | |
| 45 | ||
| 46 | g_return_val_if_fail(primary != NULL, NULL); | |
| 47 | ||
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
48 | ops = gaim_notify_get_ui_ops(); |
| 5437 | 49 | |
| 50 | if (ops != NULL && ops->notify_message != NULL) { | |
| 51 | GaimNotifyInfo *info; | |
| 52 | ||
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
53 | info = g_new0(GaimNotifyInfo, 1); |
|
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
54 | info->type = GAIM_NOTIFY_MESSAGE; |
|
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
55 | info->handle = handle; |
|
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
56 | info->ui_handle = ops->notify_message(type, title, primary, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
57 | secondary); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
58 | info->cb = cb; |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
59 | info->cb_user_data = user_data; |
| 5437 | 60 | |
| 61 | handles = g_list_append(handles, info); | |
| 62 | ||
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
63 | return info->ui_handle; |
| 5437 | 64 | } |
| 65 | ||
| 66 | return NULL; | |
| 67 | } | |
| 68 | ||
| 69 | void * | |
| 70 | gaim_notify_email(void *handle, const char *subject, const char *from, | |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
71 | const char *to, const char *url, GaimNotifyCloseCallback cb, |
| 12220 | 72 | gpointer user_data) |
| 5437 | 73 | { |
| 74 | GaimNotifyUiOps *ops; | |
| 75 | ||
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
76 | ops = gaim_notify_get_ui_ops(); |
| 5437 | 77 | |
| 78 | if (ops != NULL && ops->notify_email != NULL) { | |
| 79 | GaimNotifyInfo *info; | |
| 80 | ||
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
81 | info = g_new0(GaimNotifyInfo, 1); |
|
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
82 | info->type = GAIM_NOTIFY_EMAIL; |
|
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
83 | info->handle = handle; |
|
12647
b00d9913117e
[gaim-migrate @ 14985]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
84 | 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
|
85 | info->cb = cb; |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
86 | info->cb_user_data = user_data; |
| 5437 | 87 | |
| 88 | handles = g_list_append(handles, info); | |
| 89 | ||
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
90 | return info->ui_handle; |
| 5437 | 91 | } |
| 92 | ||
| 93 | return NULL; | |
| 94 | } | |
| 95 | ||
| 96 | void * | |
|
5522
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
97 | gaim_notify_emails(void *handle, size_t count, gboolean detailed, |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
98 | const char **subjects, const char **froms, |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
99 | const char **tos, const char **urls, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
100 | GaimNotifyCloseCallback cb, gpointer user_data) |
| 5437 | 101 | { |
| 102 | GaimNotifyUiOps *ops; | |
| 103 | ||
| 104 | g_return_val_if_fail(count != 0, NULL); | |
| 105 | ||
|
5522
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
106 | if (count == 1) { |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
107 | return gaim_notify_email(handle, |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
108 | (subjects == NULL ? NULL : *subjects), |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
109 | (froms == NULL ? NULL : *froms), |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
110 | (tos == NULL ? NULL : *tos), |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
111 | (urls == NULL ? NULL : *urls), |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
112 | cb, user_data); |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
113 | } |
|
faa69c8f503d
[gaim-migrate @ 5922]
Christian Hammond <chipx86@chipx86.com>
parents:
5476
diff
changeset
|
114 | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
115 | ops = gaim_notify_get_ui_ops(); |
| 5437 | 116 | |
| 117 | if (ops != NULL && ops->notify_emails != NULL) { | |
| 118 | GaimNotifyInfo *info; | |
| 119 | ||
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
120 | info = g_new0(GaimNotifyInfo, 1); |
|
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
121 | info->type = GAIM_NOTIFY_EMAILS; |
|
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
122 | info->handle = handle; |
|
12647
b00d9913117e
[gaim-migrate @ 14985]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
123 | info->ui_handle = ops->notify_emails(handle, count, detailed, subjects, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
124 | froms, tos, urls); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
125 | info->cb = cb; |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
126 | info->cb_user_data = user_data; |
| 5437 | 127 | |
| 128 | handles = g_list_append(handles, info); | |
| 129 | ||
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
130 | return info->ui_handle; |
| 5437 | 131 | } |
| 132 | ||
| 133 | return NULL; | |
| 134 | } | |
| 135 | ||
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
136 | void * |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
137 | gaim_notify_formatted(void *handle, const char *title, const char *primary, |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
138 | const char *secondary, const char *text, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
139 | GaimNotifyCloseCallback cb, gpointer user_data) |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
140 | { |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
141 | GaimNotifyUiOps *ops; |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
142 | |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
143 | g_return_val_if_fail(primary != NULL, NULL); |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
144 | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
145 | ops = gaim_notify_get_ui_ops(); |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
146 | |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
147 | if (ops != NULL && ops->notify_formatted != NULL) { |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
148 | GaimNotifyInfo *info; |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
149 | |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
150 | info = g_new0(GaimNotifyInfo, 1); |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
151 | info->type = GAIM_NOTIFY_FORMATTED; |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
152 | info->handle = handle; |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
153 | info->ui_handle = ops->notify_formatted(title, primary, secondary, text); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
154 | info->cb = cb; |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
155 | info->cb_user_data = user_data; |
|
6381
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
156 | |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
157 | handles = g_list_append(handles, info); |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
158 | |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
159 | return info->ui_handle; |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
160 | } |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
161 | |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
162 | return NULL; |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
163 | } |
|
53203c44c731
[gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents:
6356
diff
changeset
|
164 | |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
165 | void * |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
166 | gaim_notify_searchresults(GaimConnection *gc, const char *title, |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
167 | const char *primary, const char *secondary, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
168 | GaimNotifySearchResults *results, GaimNotifyCloseCallback cb, gpointer user_data) |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
169 | { |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
170 | GaimNotifyUiOps *ops; |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
171 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
172 | ops = gaim_notify_get_ui_ops(); |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
173 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
174 | if (ops != NULL && ops->notify_searchresults != NULL) { |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
175 | GaimNotifyInfo *info; |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
176 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
177 | info = g_new0(GaimNotifyInfo, 1); |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
178 | info->type = GAIM_NOTIFY_SEARCHRESULTS; |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
179 | info->handle = gc; |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
180 | info->ui_handle = ops->notify_searchresults(gc, title, primary, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
181 | secondary, results); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
182 | info->cb = cb; |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
183 | info->cb_user_data = user_data; |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
184 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
185 | handles = g_list_append(handles, info); |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
186 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
187 | return info->ui_handle; |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
188 | } |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
189 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
190 | return NULL; |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
191 | } |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
192 | |
| 11359 | 193 | void |
| 194 | gaim_notify_searchresults_free(GaimNotifySearchResults *results) | |
| 195 | { | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
196 | GList *l; |
| 11359 | 197 | |
| 198 | g_return_if_fail(results != NULL); | |
| 199 | ||
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
200 | for (l = results->buttons; l; l = g_list_delete_link(l, l)) { |
| 11359 | 201 | GaimNotifySearchButton *button = l->data; |
| 202 | g_free(button); | |
| 203 | } | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
204 | results->buttons = NULL; |
| 11359 | 205 | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
206 | 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
|
207 | GList *row = l->data; |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
208 | for (; row; row = g_list_delete_link(row, row)) { |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
209 | gchar *str = row->data; |
| 11359 | 210 | g_free(str); |
| 211 | } | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
212 | } |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
213 | results->rows = NULL; |
| 11359 | 214 | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
215 | for (l = results->columns; l; l = g_list_delete_link(l, l)) { |
| 11359 | 216 | GaimNotifySearchColumn *column = l->data; |
| 217 | g_free(column->title); | |
| 218 | g_free(column); | |
| 219 | } | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
220 | results->columns = NULL; |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
221 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
222 | g_free(results); |
| 11359 | 223 | } |
| 224 | ||
| 225 | void | |
| 226 | gaim_notify_searchresults_new_rows(GaimConnection *gc, | |
| 227 | GaimNotifySearchResults *results, | |
| 12220 | 228 | void *data, gpointer user_data) |
| 11359 | 229 | { |
| 230 | GaimNotifyUiOps *ops; | |
| 231 | ||
| 232 | ops = gaim_notify_get_ui_ops(); | |
| 233 | ||
| 234 | if (ops != NULL && ops->notify_searchresults != NULL) { | |
| 235 | ops->notify_searchresults_new_rows(gc, results, data, user_data); | |
| 236 | } | |
| 237 | } | |
| 238 | ||
| 239 | void | |
| 240 | gaim_notify_searchresults_button_add(GaimNotifySearchResults *results, | |
| 241 | GaimNotifySearchButtonType type, | |
| 242 | GaimNotifySearchResultsCallback cb) | |
| 243 | { | |
| 244 | GaimNotifySearchButton *button; | |
| 245 | ||
| 246 | g_return_if_fail(results != NULL); | |
| 247 | g_return_if_fail(cb != NULL); | |
| 248 | ||
| 249 | button = g_new0(GaimNotifySearchButton, 1); | |
| 250 | button->callback = cb; | |
| 251 | button->type = type; | |
| 252 | ||
| 253 | results->buttons = g_list_append(results->buttons, button); | |
| 254 | } | |
| 255 | ||
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
256 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
257 | void |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
258 | gaim_notify_searchresults_button_add_labeled(GaimNotifySearchResults *results, |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
259 | const char *label, |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
260 | GaimNotifySearchResultsCallback cb) { |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
261 | GaimNotifySearchButton *button; |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
262 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
263 | g_return_if_fail(results != NULL); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
264 | g_return_if_fail(cb != NULL); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
265 | g_return_if_fail(label != NULL); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
266 | g_return_if_fail(*label != '\0'); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
267 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
268 | button = g_new0(GaimNotifySearchButton, 1); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
269 | button->callback = cb; |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
270 | button->type = GAIM_NOTIFY_BUTTON_LABELED; |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
271 | button->label = g_strdup(label); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
272 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
273 | results->buttons = g_list_append(results->buttons, button); |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
274 | } |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
275 | |
|
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12257
diff
changeset
|
276 | |
| 11359 | 277 | GaimNotifySearchResults * |
| 278 | gaim_notify_searchresults_new() | |
| 279 | { | |
| 280 | GaimNotifySearchResults *rs = g_new0(GaimNotifySearchResults, 1); | |
| 281 | ||
| 282 | return rs; | |
| 283 | } | |
| 284 | ||
| 285 | void | |
| 286 | gaim_notify_searchresults_column_add(GaimNotifySearchResults *results, | |
| 287 | GaimNotifySearchColumn *column) | |
| 288 | { | |
| 289 | g_return_if_fail(results != NULL); | |
| 290 | g_return_if_fail(column != NULL); | |
| 291 | ||
| 292 | results->columns = g_list_append(results->columns, column); | |
| 293 | } | |
| 294 | ||
| 295 | void gaim_notify_searchresults_row_add(GaimNotifySearchResults *results, | |
| 296 | GList *row) | |
| 297 | { | |
| 298 | g_return_if_fail(results != NULL); | |
| 299 | g_return_if_fail(row != NULL); | |
| 300 | ||
| 301 | results->rows = g_list_append(results->rows, row); | |
| 302 | } | |
| 303 | ||
| 304 | GaimNotifySearchColumn * | |
| 305 | gaim_notify_searchresults_column_new(const char *title) | |
| 306 | { | |
| 307 | GaimNotifySearchColumn *sc; | |
| 308 | ||
| 309 | g_return_val_if_fail(title != NULL, NULL); | |
| 310 | ||
| 311 | sc = g_new0(GaimNotifySearchColumn, 1); | |
| 312 | sc->title = g_strdup(title); | |
| 313 | ||
| 314 | return sc; | |
| 315 | } | |
| 316 | ||
| 12257 | 317 | guint |
| 11359 | 318 | gaim_notify_searchresults_get_columns_count(GaimNotifySearchResults *results) |
| 319 | { | |
| 12257 | 320 | g_return_val_if_fail(results != NULL, 0); |
| 11359 | 321 | |
| 322 | return g_list_length(results->columns); | |
| 323 | } | |
| 324 | ||
| 12257 | 325 | guint |
| 11359 | 326 | gaim_notify_searchresults_get_rows_count(GaimNotifySearchResults *results) |
| 327 | { | |
| 12257 | 328 | g_return_val_if_fail(results != NULL, 0); |
| 11359 | 329 | |
| 330 | return g_list_length(results->rows); | |
| 331 | } | |
| 332 | ||
| 333 | char * | |
| 334 | gaim_notify_searchresults_column_get_title(GaimNotifySearchResults *results, | |
| 335 | unsigned int column_id) | |
| 336 | { | |
| 337 | g_return_val_if_fail(results != NULL, NULL); | |
| 338 | ||
| 339 | return ((GaimNotifySearchColumn *)g_list_nth_data(results->columns, column_id))->title; | |
| 340 | } | |
| 341 | ||
| 342 | GList * | |
| 343 | gaim_notify_searchresults_row_get(GaimNotifySearchResults *results, | |
| 344 | unsigned int row_id) | |
| 345 | { | |
| 346 | g_return_val_if_fail(results != NULL, NULL); | |
| 347 | ||
| 348 | return g_list_nth_data(results->rows, row_id); | |
| 349 | } | |
| 350 | ||
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10240
diff
changeset
|
351 | void * |
|
11531
63c017cfd8d2
[gaim-migrate @ 13780]
Luke Schierer <lschiere@pidgin.im>
parents:
11359
diff
changeset
|
352 | gaim_notify_userinfo(GaimConnection *gc, const char *who, |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
353 | const char *text, GaimNotifyCloseCallback cb, gpointer user_data) |
| 9797 | 354 | { |
| 355 | GaimNotifyUiOps *ops; | |
|
11531
63c017cfd8d2
[gaim-migrate @ 13780]
Luke Schierer <lschiere@pidgin.im>
parents:
11359
diff
changeset
|
356 | |
|
11533
f58436975d44
[gaim-migrate @ 13782]
Richard Laager <rlaager@pidgin.im>
parents:
11531
diff
changeset
|
357 | g_return_val_if_fail(who != NULL, NULL); |
| 9797 | 358 | |
| 359 | ops = gaim_notify_get_ui_ops(); | |
| 360 | ||
| 361 | if (ops != NULL && ops->notify_userinfo != NULL) { | |
| 362 | GaimNotifyInfo *info; | |
| 12129 | 363 | char *infotext = g_strdup(text); |
| 9797 | 364 | |
| 365 | info = g_new0(GaimNotifyInfo, 1); | |
| 366 | info->type = GAIM_NOTIFY_USERINFO; | |
| 367 | info->handle = gc; | |
| 12129 | 368 | |
| 369 | gaim_signal_emit(gaim_notify_get_handle(), "displaying-userinfo", | |
| 370 | gaim_connection_get_account(gc), who, &infotext); | |
| 371 | ||
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
372 | info->ui_handle = ops->notify_userinfo(gc, who, infotext); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
373 | info->cb = cb; |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
374 | info->cb_user_data = user_data; |
| 9797 | 375 | |
| 376 | handles = g_list_append(handles, info); | |
| 377 | ||
| 12129 | 378 | g_free(infotext); |
| 9797 | 379 | return info->ui_handle; |
| 380 | } | |
| 381 | ||
| 382 | return NULL; | |
| 383 | } | |
| 384 | ||
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
385 | void * |
|
10240
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10209
diff
changeset
|
386 | gaim_notify_uri(void *handle, const char *uri) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
387 | { |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
388 | GaimNotifyUiOps *ops; |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
389 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
390 | g_return_val_if_fail(uri != NULL, NULL); |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
391 | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
392 | ops = gaim_notify_get_ui_ops(); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
393 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
394 | if (ops != NULL && ops->notify_uri != NULL) { |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
395 | GaimNotifyInfo *info; |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
396 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
397 | info = g_new0(GaimNotifyInfo, 1); |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
398 | info->type = GAIM_NOTIFY_URI; |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
399 | info->handle = handle; |
|
10240
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10209
diff
changeset
|
400 | info->ui_handle = ops->notify_uri(uri); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
401 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
402 | handles = g_list_append(handles, info); |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
403 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
404 | return info->ui_handle; |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
405 | } |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
406 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
407 | return NULL; |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
408 | } |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6381
diff
changeset
|
409 | |
| 5437 | 410 | void |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
411 | gaim_notify_close(GaimNotifyType type, void *ui_handle) |
| 5437 | 412 | { |
| 413 | GList *l; | |
| 414 | GaimNotifyUiOps *ops; | |
| 415 | ||
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
416 | g_return_if_fail(ui_handle != NULL); |
| 5437 | 417 | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
418 | ops = gaim_notify_get_ui_ops(); |
| 5437 | 419 | |
| 420 | for (l = handles; l != NULL; l = l->next) { | |
| 421 | GaimNotifyInfo *info = l->data; | |
| 422 | ||
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
423 | if (info->ui_handle == ui_handle) { |
| 5437 | 424 | handles = g_list_remove(handles, info); |
| 425 | ||
| 426 | if (ops != NULL && ops->close_notify != NULL) | |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
427 | ops->close_notify(info->type, ui_handle); |
| 5437 | 428 | |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
429 | if (info->cb != NULL) |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
430 | info->cb(info->cb_user_data); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
431 | |
| 5437 | 432 | g_free(info); |
| 433 | ||
| 434 | break; | |
| 435 | } | |
| 436 | } | |
| 437 | } | |
| 438 | ||
| 439 | void | |
| 440 | gaim_notify_close_with_handle(void *handle) | |
| 441 | { | |
| 442 | GList *l, *l_next; | |
| 443 | GaimNotifyUiOps *ops; | |
| 444 | ||
| 445 | g_return_if_fail(handle != NULL); | |
| 446 | ||
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
447 | ops = gaim_notify_get_ui_ops(); |
| 5437 | 448 | |
| 449 | for (l = handles; l != NULL; l = l_next) { | |
| 450 | GaimNotifyInfo *info = l->data; | |
| 451 | ||
| 452 | l_next = l->next; | |
| 453 | ||
| 454 | if (info->handle == handle) { | |
| 455 | handles = g_list_remove(handles, info); | |
| 456 | ||
| 457 | if (ops != NULL && ops->close_notify != NULL) | |
|
5476
6f863ea68018
[gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents:
5437
diff
changeset
|
458 | ops->close_notify(info->type, info->ui_handle); |
| 5437 | 459 | |
|
12242
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
460 | if (info->cb != NULL) |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
461 | info->cb(info->cb_user_data); |
|
e7fc1748eb56
[gaim-migrate @ 14544]
Richard Laager <rlaager@pidgin.im>
parents:
12220
diff
changeset
|
462 | |
| 5437 | 463 | g_free(info); |
| 464 | } | |
| 465 | } | |
| 466 | } | |
| 467 | ||
| 468 | void | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
469 | gaim_notify_set_ui_ops(GaimNotifyUiOps *ops) |
| 5437 | 470 | { |
| 471 | notify_ui_ops = ops; | |
| 472 | } | |
| 473 | ||
| 474 | GaimNotifyUiOps * | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6465
diff
changeset
|
475 | gaim_notify_get_ui_ops(void) |
| 5437 | 476 | { |
| 477 | return notify_ui_ops; | |
| 478 | } | |
| 12129 | 479 | |
| 480 | void * | |
| 481 | gaim_notify_get_handle(void) | |
| 482 | { | |
| 483 | static int handle; | |
| 484 | ||
| 485 | return &handle; | |
| 486 | } | |
| 487 | ||
| 488 | void | |
| 489 | gaim_notify_init(void) | |
| 490 | { | |
| 491 | gpointer handle = gaim_notify_get_handle(); | |
| 492 | ||
| 493 | gaim_signal_register(handle, "displaying-userinfo", | |
| 494 | gaim_marshal_VOID__POINTER_POINTER_POINTER, NULL, 3, | |
| 495 | gaim_value_new(GAIM_TYPE_SUBTYPE, | |
| 496 | GAIM_SUBTYPE_ACCOUNT), | |
| 497 | gaim_value_new(GAIM_TYPE_STRING), | |
| 498 | gaim_value_new_outgoing(GAIM_TYPE_STRING)); | |
| 499 | } | |
| 500 | ||
| 501 | void | |
| 502 | gaim_notify_uninit(void) | |
| 503 | { | |
| 504 | gaim_signals_unregister_by_instance(gaim_notify_get_handle()); | |
| 505 | } |