Mercurial > pidgin.yaz
annotate finch/plugins/gntgf.c @ 31699:a3bfd9439d37
merge of '974d79cf8eb22b7138c9a3d7313e89585fd8b443'
and 'a657534f694305a613db4946ca8ea9ab4c8f1c1d'
author | Evan Schoenberg <evan.s@dreskin.net> |
---|---|
date | Mon, 21 Feb 2011 22:56:48 +0000 |
parents | a8cc50c2279f |
children | 49a33bd1baf1 |
rev | line source |
---|---|
15818 | 1 /** |
2 * @file gntgf.c Minimal toaster plugin in Gnt. | |
3 * | |
4 * Copyright (C) 2006 Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | |
5 * | |
6 * This program is free software; you can redistribute it and/or modify | |
7 * it under the terms of the GNU General Public License as published by | |
8 * the Free Software Foundation; either version 2 of the License, or | |
9 * (at your option) any later version. | |
10 * | |
11 * This program is distributed in the hope that it will be useful, | |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 * GNU General Public License for more details. | |
15 * | |
16 * You should have received a copy of the GNU General Public License | |
17 * along with this program; if not, write to the Free Software | |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
17147
diff
changeset
|
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15818 | 19 */ |
20 | |
21 | |
22 #include "internal.h" | |
23 | |
25124
ea62e934c80b
Fix some more mis-identified plugins, like 3b3526a0...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
22007
diff
changeset
|
24 #define PLUGIN_STATIC_NAME GntGf |
15818 | 25 |
26 #define PREFS_PREFIX "/plugins/gnt/gntgf" | |
27 #define PREFS_EVENT PREFS_PREFIX "/events" | |
28 #define PREFS_EVENT_SIGNONF PREFS_EVENT "/signonf" | |
29 #define PREFS_EVENT_IM_MSG PREFS_EVENT "/immsg" | |
30 #define PREFS_EVENT_CHAT_MSG PREFS_EVENT "/chatmsg" | |
31 #define PREFS_EVENT_CHAT_NICK PREFS_EVENT "/chatnick" | |
32 #define PREFS_BEEP PREFS_PREFIX "/beep" | |
33 | |
34 #define MAX_COLS 3 | |
35 | |
36 #ifdef HAVE_X11 | |
37 #define PREFS_URGENT PREFS_PREFIX "/urgent" | |
38 | |
39 #include <X11/Xlib.h> | |
40 #include <X11/Xutil.h> | |
41 #endif | |
42 | |
43 #include <glib.h> | |
44 | |
45 #include <plugin.h> | |
46 #include <version.h> | |
47 #include <blist.h> | |
48 #include <conversation.h> | |
49 #include <debug.h> | |
25877
bd18bb4915ba
*** Plucked rev 143e16e9 (sadrul@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
25124
diff
changeset
|
50 #include <eventloop.h> |
15818 | 51 #include <util.h> |
52 | |
53 #include <gnt.h> | |
54 #include <gntbox.h> | |
55 #include <gntbutton.h> | |
56 #include <gntcheckbox.h> | |
57 #include <gntlabel.h> | |
58 #include <gnttree.h> | |
59 | |
17147
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
60 #include "gntplugin.h" |
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
61 #include "gntconv.h" |
15818 | 62 |
63 typedef struct | |
64 { | |
65 GntWidget *window; | |
66 int timer; | |
67 int column; | |
68 } GntToast; | |
69 | |
70 static GList *toasters; | |
71 static int gpsy[MAX_COLS]; | |
72 static int gpsw[MAX_COLS]; | |
73 | |
74 static void | |
75 destroy_toaster(GntToast *toast) | |
76 { | |
77 toasters = g_list_remove(toasters, toast); | |
78 gnt_widget_destroy(toast->window); | |
25877
bd18bb4915ba
*** Plucked rev 143e16e9 (sadrul@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
25124
diff
changeset
|
79 purple_timeout_remove(toast->timer); |
15818 | 80 g_free(toast); |
81 } | |
82 | |
83 static gboolean | |
84 remove_toaster(GntToast *toast) | |
85 { | |
86 GList *iter; | |
87 int h; | |
88 int col; | |
89 int nwin[MAX_COLS]; | |
90 | |
91 gnt_widget_get_size(toast->window, NULL, &h); | |
92 gpsy[toast->column] -= h; | |
93 col = toast->column; | |
94 | |
95 memset(&nwin, 0, sizeof(nwin)); | |
96 destroy_toaster(toast); | |
97 | |
98 for (iter = toasters; iter; iter = iter->next) | |
99 { | |
100 int x, y; | |
101 toast = iter->data; | |
102 nwin[toast->column]++; | |
103 if (toast->column != col) continue; | |
104 gnt_widget_get_position(toast->window, &x, &y); | |
105 y += h; | |
106 gnt_screen_move_widget(toast->window, x, y); | |
107 } | |
108 | |
109 if (nwin[col] == 0) | |
110 gpsw[col] = 0; | |
111 | |
112 return FALSE; | |
113 } | |
114 | |
115 #ifdef HAVE_X11 | |
16320
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
116 static int |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
117 error_handler(Display *dpy, XErrorEvent *error) |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
118 { |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
119 char buffer[1024]; |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
120 XGetErrorText(dpy, error->error_code, buffer, sizeof(buffer)); |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
121 purple_debug_error("gntgf", "Could not set urgent to the window: %s.\n", buffer); |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
122 return 0; |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
123 } |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
124 |
15818 | 125 static void |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21030
diff
changeset
|
126 urgent(void) |
15818 | 127 { |
128 /* This is from deryni/tuomov's urgent_test.c */ | |
129 Display *dpy; | |
130 Window id; | |
131 const char *ids; | |
132 XWMHints *hints; | |
133 | |
134 ids = getenv("WINDOWID"); | |
135 if (ids == NULL) | |
136 return; | |
31534
a8cc50c2279f
Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents:
25877
diff
changeset
|
137 |
15818 | 138 id = atoi(ids); |
139 | |
140 dpy = XOpenDisplay(NULL); | |
141 if (dpy == NULL) | |
142 return; | |
143 | |
16320
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
144 XSetErrorHandler(error_handler); |
15818 | 145 hints = XGetWMHints(dpy, id); |
16320
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
146 if (hints) { |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
147 hints->flags|=XUrgencyHint; |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
148 XSetWMHints(dpy, id, hints); |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
149 XFree(hints); |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
150 } |
94843d812e69
Gracefully do nothing if the WINDOWID is invalid. And plug a leak, thanks to deryni.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15864
diff
changeset
|
151 XSetErrorHandler(NULL); |
15818 | 152 |
153 XFlush(dpy); | |
154 XCloseDisplay(dpy); | |
155 } | |
156 #endif | |
157 | |
158 static void | |
17147
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
159 notify(PurpleConversation *conv, const char *fmt, ...) |
15818 | 160 { |
161 GntWidget *window; | |
162 GntToast *toast; | |
163 char *str; | |
164 int h, w, i; | |
165 va_list args; | |
166 | |
15823 | 167 if (purple_prefs_get_bool(PREFS_BEEP)) |
15818 | 168 beep(); |
17147
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
169 |
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
170 if (conv != NULL) { |
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
171 FinchConv *fc = conv->ui_data; |
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
172 if (gnt_widget_has_focus(fc->window)) |
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
173 return; |
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
174 } |
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
175 |
15818 | 176 #ifdef HAVE_X11 |
15823 | 177 if (purple_prefs_get_bool(PREFS_URGENT)) |
15818 | 178 urgent(); |
179 #endif | |
180 | |
181 window = gnt_vbox_new(FALSE); | |
182 GNT_WIDGET_SET_FLAGS(window, GNT_WIDGET_TRANSIENT); | |
183 GNT_WIDGET_UNSET_FLAGS(window, GNT_WIDGET_NO_BORDER); | |
184 | |
185 va_start(args, fmt); | |
186 str = g_strdup_vprintf(fmt, args); | |
187 va_end(args); | |
188 | |
189 gnt_box_add_widget(GNT_BOX(window), | |
190 gnt_label_new_with_format(str, GNT_TEXT_FLAG_HIGHLIGHT)); | |
191 | |
192 g_free(str); | |
193 gnt_widget_size_request(window); | |
194 gnt_widget_get_size(window, &w, &h); | |
195 for (i = 0; i < MAX_COLS && gpsy[i] + h >= getmaxy(stdscr) ; ++i) | |
196 ; | |
197 if (i >= MAX_COLS) { | |
15823 | 198 purple_debug_warning("GntGf", "Dude, that's way too many popups\n"); |
15818 | 199 gnt_widget_destroy(window); |
200 return; | |
201 } | |
202 | |
203 toast = g_new0(GntToast, 1); | |
204 toast->window = window; | |
205 toast->column = i; | |
206 gpsy[i] += h; | |
207 if (w > gpsw[i]) { | |
208 if (i == 0) | |
209 gpsw[i] = w; | |
210 else | |
211 gpsw[i] = gpsw[i - 1] + w + 1; | |
212 } | |
213 | |
214 if (i == 0 || (w + gpsw[i - 1] >= getmaxx(stdscr))) { | |
215 /* if it's going to be too far left, overlap. */ | |
216 gnt_widget_set_position(window, getmaxx(stdscr) - w - 1, | |
217 getmaxy(stdscr) - gpsy[i] - 1); | |
218 } else { | |
219 gnt_widget_set_position(window, getmaxx(stdscr) - gpsw[i - 1] - w - 1, | |
220 getmaxy(stdscr) - gpsy[i] - 1); | |
221 } | |
222 gnt_widget_draw(window); | |
223 | |
25877
bd18bb4915ba
*** Plucked rev 143e16e9 (sadrul@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
25124
diff
changeset
|
224 toast->timer = purple_timeout_add_seconds(4, (GSourceFunc)remove_toaster, toast); |
15818 | 225 toasters = g_list_prepend(toasters, toast); |
226 } | |
227 | |
228 static void | |
15823 | 229 buddy_signed_on(PurpleBuddy *buddy, gpointer null) |
15818 | 230 { |
15823 | 231 if (purple_prefs_get_bool(PREFS_EVENT_SIGNONF)) |
17147
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
232 notify(NULL, _("%s just signed on"), purple_buddy_get_alias(buddy)); |
15818 | 233 } |
234 | |
235 static void | |
15823 | 236 buddy_signed_off(PurpleBuddy *buddy, gpointer null) |
15818 | 237 { |
15823 | 238 if (purple_prefs_get_bool(PREFS_EVENT_SIGNONF)) |
17147
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
239 notify(NULL, _("%s just signed off"), purple_buddy_get_alias(buddy)); |
15818 | 240 } |
241 | |
242 static void | |
15823 | 243 received_im_msg(PurpleAccount *account, const char *sender, const char *msg, |
244 PurpleConversation *conv, PurpleMessageFlags flags, gpointer null) | |
15818 | 245 { |
15823 | 246 if (purple_prefs_get_bool(PREFS_EVENT_IM_MSG)) |
17147
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
247 notify(conv, _("%s sent you a message"), sender); |
15818 | 248 } |
249 | |
250 static void | |
15823 | 251 received_chat_msg(PurpleAccount *account, const char *sender, const char *msg, |
252 PurpleConversation *conv, PurpleMessageFlags flags, gpointer null) | |
15818 | 253 { |
254 const char *nick; | |
255 | |
15823 | 256 if (flags & PURPLE_MESSAGE_WHISPER) |
15818 | 257 return; |
31534
a8cc50c2279f
Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents:
25877
diff
changeset
|
258 |
15823 | 259 nick = PURPLE_CONV_CHAT(conv)->nick; |
15818 | 260 |
261 if (g_utf8_collate(sender, nick) == 0) | |
262 return; | |
263 | |
15823 | 264 if (purple_prefs_get_bool(PREFS_EVENT_CHAT_NICK) && |
265 (purple_utf8_has_word(msg, nick))) | |
17147
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
266 notify(conv, _("%s said your nick in %s"), sender, purple_conversation_get_name(conv)); |
15823 | 267 else if (purple_prefs_get_bool(PREFS_EVENT_CHAT_MSG)) |
17147
e22968d33131
Do not show the popup for focused conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
268 notify(conv, _("%s sent a message in %s"), sender, purple_conversation_get_name(conv)); |
15818 | 269 } |
270 | |
271 static gboolean | |
15823 | 272 plugin_load(PurplePlugin *plugin) |
15818 | 273 { |
15823 | 274 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", plugin, |
275 PURPLE_CALLBACK(buddy_signed_on), NULL); | |
276 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", plugin, | |
277 PURPLE_CALLBACK(buddy_signed_off), NULL); | |
278 purple_signal_connect(purple_conversations_get_handle(), "received-im-msg", plugin, | |
279 PURPLE_CALLBACK(received_im_msg), NULL); | |
280 purple_signal_connect(purple_conversations_get_handle(), "received-chat-msg", plugin, | |
281 PURPLE_CALLBACK(received_chat_msg), NULL); | |
15818 | 282 |
283 memset(&gpsy, 0, sizeof(gpsy)); | |
284 memset(&gpsw, 0, sizeof(gpsw)); | |
285 | |
286 return TRUE; | |
287 } | |
288 | |
289 static gboolean | |
15823 | 290 plugin_unload(PurplePlugin *plugin) |
15818 | 291 { |
292 while (toasters) | |
293 { | |
294 GntToast *toast = toasters->data; | |
295 destroy_toaster(toast); | |
296 } | |
297 return TRUE; | |
298 } | |
299 | |
300 static struct | |
301 { | |
302 char *pref; | |
303 char *display; | |
304 } prefs[] = | |
305 { | |
306 {PREFS_EVENT_SIGNONF, N_("Buddy signs on/off")}, | |
307 {PREFS_EVENT_IM_MSG, N_("You receive an IM")}, | |
308 {PREFS_EVENT_CHAT_MSG, N_("Someone speaks in a chat")}, | |
309 {PREFS_EVENT_CHAT_NICK, N_("Someone says your name in a chat")}, | |
310 {NULL, NULL} | |
311 }; | |
312 | |
313 static void | |
314 pref_toggled(GntTree *tree, char *key, gpointer null) | |
315 { | |
15823 | 316 purple_prefs_set_bool(key, gnt_tree_get_choice(tree, key)); |
15818 | 317 } |
318 | |
319 static void | |
320 toggle_option(GntCheckBox *check, gpointer str) | |
321 { | |
15823 | 322 purple_prefs_set_bool(str, gnt_check_box_get_checked(check)); |
15818 | 323 } |
324 | |
325 static GntWidget * | |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21030
diff
changeset
|
326 config_frame(void) |
15818 | 327 { |
328 GntWidget *window, *tree, *check; | |
329 int i; | |
330 | |
331 window = gnt_vbox_new(FALSE); | |
332 gnt_box_set_pad(GNT_BOX(window), 0); | |
333 gnt_box_set_alignment(GNT_BOX(window), GNT_ALIGN_MID); | |
334 gnt_box_set_fill(GNT_BOX(window), TRUE); | |
335 | |
336 gnt_box_add_widget(GNT_BOX(window), | |
337 gnt_label_new(_("Notify with a toaster when"))); | |
338 | |
339 tree = gnt_tree_new(); | |
340 gnt_box_add_widget(GNT_BOX(window), tree); | |
341 | |
342 for (i = 0; prefs[i].pref; i++) | |
343 { | |
344 gnt_tree_add_choice(GNT_TREE(tree), prefs[i].pref, | |
345 gnt_tree_create_row(GNT_TREE(tree), prefs[i].display), NULL, NULL); | |
346 gnt_tree_set_choice(GNT_TREE(tree), prefs[i].pref, | |
15823 | 347 purple_prefs_get_bool(prefs[i].pref)); |
15818 | 348 } |
349 gnt_tree_set_col_width(GNT_TREE(tree), 0, 40); | |
350 g_signal_connect(G_OBJECT(tree), "toggled", G_CALLBACK(pref_toggled), NULL); | |
351 | |
352 check = gnt_check_box_new(_("Beep too!")); | |
15823 | 353 gnt_check_box_set_checked(GNT_CHECK_BOX(check), purple_prefs_get_bool(PREFS_BEEP)); |
15818 | 354 g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(toggle_option), PREFS_BEEP); |
355 gnt_box_add_widget(GNT_BOX(window), check); | |
356 | |
357 #ifdef HAVE_X11 | |
358 check = gnt_check_box_new(_("Set URGENT for the terminal window.")); | |
15823 | 359 gnt_check_box_set_checked(GNT_CHECK_BOX(check), purple_prefs_get_bool(PREFS_URGENT)); |
15818 | 360 g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(toggle_option), PREFS_URGENT); |
361 gnt_box_add_widget(GNT_BOX(window), check); | |
362 #endif | |
363 | |
364 return window; | |
365 } | |
366 | |
15823 | 367 static PurplePluginInfo info = |
15818 | 368 { |
15823 | 369 PURPLE_PLUGIN_MAGIC, |
370 PURPLE_MAJOR_VERSION, | |
371 PURPLE_MINOR_VERSION, | |
372 PURPLE_PLUGIN_STANDARD, | |
373 FINCH_PLUGIN_TYPE, | |
15818 | 374 0, |
375 NULL, | |
15823 | 376 PURPLE_PRIORITY_DEFAULT, |
15818 | 377 "gntgf", |
378 N_("GntGf"), | |
21030
3cc856ca2338
Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <stu@nosnilmot.com>
parents:
19680
diff
changeset
|
379 DISPLAY_VERSION, |
15818 | 380 N_("Toaster plugin"), |
381 N_("Toaster plugin"), | |
382 "Sadrul H Chowdhury <sadrul@users.sourceforge.net>", | |
15864
4c707efebc0c
Use PURPLE_WEBSITE instead of listing the website directly (which was wrong because of the sed).
Richard Laager <rlaager@wiktel.com>
parents:
15823
diff
changeset
|
383 PURPLE_WEBSITE, |
15818 | 384 plugin_load, |
385 plugin_unload, | |
386 NULL, | |
387 config_frame, | |
388 NULL, | |
389 NULL, | |
16677
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16320
diff
changeset
|
390 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16320
diff
changeset
|
391 |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16320
diff
changeset
|
392 /* padding */ |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16320
diff
changeset
|
393 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16320
diff
changeset
|
394 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16320
diff
changeset
|
395 NULL, |
15818 | 396 NULL |
397 }; | |
398 | |
399 static void | |
15823 | 400 init_plugin(PurplePlugin *plugin) |
15818 | 401 { |
15823 | 402 purple_prefs_add_none("/plugins"); |
403 purple_prefs_add_none("/plugins/gnt"); | |
31534
a8cc50c2279f
Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents:
25877
diff
changeset
|
404 |
15823 | 405 purple_prefs_add_none("/plugins/gnt/gntgf"); |
406 purple_prefs_add_none(PREFS_EVENT); | |
15818 | 407 |
15823 | 408 purple_prefs_add_bool(PREFS_EVENT_SIGNONF, TRUE); |
409 purple_prefs_add_bool(PREFS_EVENT_IM_MSG, TRUE); | |
410 purple_prefs_add_bool(PREFS_EVENT_CHAT_MSG, TRUE); | |
411 purple_prefs_add_bool(PREFS_EVENT_CHAT_NICK, TRUE); | |
15818 | 412 |
15823 | 413 purple_prefs_add_bool(PREFS_BEEP, TRUE); |
15818 | 414 #ifdef HAVE_X11 |
15823 | 415 purple_prefs_add_bool(PREFS_URGENT, FALSE); |
15818 | 416 #endif |
417 } | |
418 | |
15823 | 419 PURPLE_INIT_PLUGIN(PLUGIN_STATIC_NAME, init_plugin, info) |