plugins/notify.c

Mon, 10 Mar 2003 19:59:10 +0000

author
Nathan Walp <nwalp@pidgin.im>
date
Mon, 10 Mar 2003 19:59:10 +0000
changeset 4696
19ae2b8a44c7
parent 4585
cd29170cbc26
child 4793
1da93f6c80f3
permissions
-rw-r--r--

[gaim-migrate @ 5007]
buddy pounces and protocol actions work again

3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
1 /* Rewritten by Etan Reisner <deryni@eden.rutgers.edu>
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
2 *
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
3 * Added config dialog
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
4 * Added control over notification method
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
5 * Added control over when to release notification
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
6 *
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
7 * Added option to get notification for chats also
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
8 * Cleaned up code
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
9 * Added option to notify on click as it's own option
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
10 * rather then as what happens when on focus isn't clicked
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
11 * Added apply button to change the denotification methods for
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
12 * open conversation windows
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
13 * Fixed apply to conversations, count now keeps count across applies
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
14 * Fixed(?) memory leak, and in the process fixed some stupidities
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
15 * Hit enter when done editing the title string entry box to save it
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
16 *
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
17 * Thanks to Carles Pina i Estany <carles@pinux.info>
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
18 * for count of new messages option
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
19 */
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
20
4202
8b92de3b1c07 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4165
diff changeset
21 #include "config.h"
8b92de3b1c07 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4165
diff changeset
22
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
23 #ifndef GAIM_PLUGINS
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
24 #define GAIM_PLUGINS
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
25 #endif
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
26
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
27 #include "gaim.h"
3428
dac9d27beada [gaim-migrate @ 3454]
Etan Reisner <deryni@pidgin.im>
parents: 3427
diff changeset
28 #include <string.h>
dac9d27beada [gaim-migrate @ 3454]
Etan Reisner <deryni@pidgin.im>
parents: 3427
diff changeset
29 #include <ctype.h>
dac9d27beada [gaim-migrate @ 3454]
Etan Reisner <deryni@pidgin.im>
parents: 3427
diff changeset
30 #include <stdlib.h>
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
31 #include <gtk/gtk.h>
3385
994e6baef18e [gaim-migrate @ 3404]
Ben Miller <millebe@cs.earlham.edu>
parents: 3374
diff changeset
32 #include <X11/Xlib.h>
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
33 #include <X11/Xutil.h>
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
34 #include <X11/Xatom.h>
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
35 #include <gdk/gdkx.h>
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
36
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
37 guint type = 1;
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
38 #define TYPE_IM 0x00000001
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
39 #define TYPE_CHAT 0x00000002
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
40
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
41 guint choice = 1;
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
42 #define NOTIFY_FOCUS 0x00000001
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
43 #define NOTIFY_TYPE 0x00000002
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
44 #define NOTIFY_IN_FOCUS 0x00000004
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
45 #define NOTIFY_CLICK 0x00000008
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
46
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
47 guint method = 1;
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
48 #define METHOD_STRING 0x00000001
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
49 #define METHOD_QUOTE 0x00000002
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
50 #define METHOD_URGENT 0x00000004
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
51 #define METHOD_COUNT 0x00000008
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
52
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
53 void *handle;
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
54 GtkWidget *Entry;
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
55 gchar *title_string;
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
56 int Number = 0;
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
57
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
58 /* predefine some functions, less warnings */
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
59 void options(GtkWidget *widget, gpointer data);
4047
ccf8a1cd54fd [gaim-migrate @ 4255]
Etan Reisner <deryni@pidgin.im>
parents: 4043
diff changeset
60 /* this returns an int so that typing events don't get stopped here */
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
61 int un_star(GtkWidget *widget, gpointer data);
3428
dac9d27beada [gaim-migrate @ 3454]
Etan Reisner <deryni@pidgin.im>
parents: 3427
diff changeset
62 int counter (char *buf, int *length);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
63 /*string functions */
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
64 void string_add(GtkWidget *widget);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
65 gboolean string_remove(GtkWidget *widget);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
66 /* count functions */
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
67 void count_add(GtkWidget *widget, int number);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
68 gboolean count_remove(GtkWidget *widget);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
69 /* quote functions */
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
70 void quote_add(GtkWidget *widget);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
71 gboolean quote_remove(GtkWidget *widget);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
72 /* urgent functions */
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
73 void urgent_add(struct gaim_conversation *c);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
74 gboolean urgent_remove(struct gaim_conversation *c);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
75
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
76 int notify(struct gaim_conversation *cnv) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
77 struct gaim_gtk_window *gtkwin;
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
78 Window focus_return;
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
79 int revert_to_return;
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
80
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
81 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(cnv));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
82
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
83 XGetInputFocus(GDK_WINDOW_XDISPLAY(gtkwin->window->window), &focus_return, &revert_to_return);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
84
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
85 if ((choice & NOTIFY_IN_FOCUS) ||
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
86 focus_return != GDK_WINDOW_XWINDOW(gtkwin->window->window)) {
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
87 if (method & METHOD_STRING)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
88 string_add(gtkwin->window);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
89 if (method & METHOD_COUNT)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
90 count_add(gtkwin->window, 0);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
91 if (method & METHOD_QUOTE)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
92 quote_add(gtkwin->window);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
93 if (method & METHOD_URGENT)
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
94 urgent_add(cnv);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
95 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
96 return 0;
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
97 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
98
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
99 guint unnotify(struct gaim_conversation *c, gboolean clean) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
100 struct gaim_gtk_window *gtkwin;
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
101 guint option = 0;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
102
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
103 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
104
4043
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
105 /* The top level ifs check whether we are either cleaning all methods,
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
106 * or whether we have that method is currently selected.
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
107 * If we do then they are cleaned
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
108 *
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
109 * The second level ifs check if we removed something,
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
110 * and if that method is currently selected.
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
111 * If we did and it is then set option so that it can be re-added */
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
112 if (clean || (method & METHOD_QUOTE))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
113 if (quote_remove(gtkwin->window) && (method & METHOD_QUOTE))
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
114 option ^= METHOD_QUOTE;
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
115
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
116 if (clean || (method & METHOD_COUNT))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
117 if (count_remove(gtkwin->window) && (method & METHOD_COUNT))
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
118 option ^= METHOD_COUNT;
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
119
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
120 if (clean || (method & METHOD_STRING))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
121 if (string_remove(gtkwin->window) && (method & METHOD_STRING))
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
122 option ^= METHOD_STRING;
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
123
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
124 if (clean || (method & METHOD_URGENT))
4043
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
125 if (urgent_remove(c) && (method & METHOD_URGENT))
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
126 option ^= METHOD_URGENT;
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
127
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
128 return option;
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
129 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
130
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
131 void chat_recv_im(struct gaim_connection *gc, int id, char **who, char **text) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
132 struct gaim_conversation *c = gaim_find_chat(gc, id);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
133
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
134 if (c && (type & TYPE_CHAT))
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
135 notify(c);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
136 return;
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
137 }
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
138
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
139 void chat_sent_im(struct gaim_connection *gc, int id, char **text) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
140 struct gaim_conversation *c = gaim_find_chat(gc, id);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
141
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
142 if (c && (type & TYPE_CHAT))
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
143 unnotify(c, FALSE);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
144 return;
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
145 }
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
146
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
147 int im_recv_im(struct gaim_connection *gc, char **who, char **what, void *m) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
148 struct gaim_conversation *c = gaim_find_conversation(*who);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
149
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
150 if (c && (type & TYPE_IM))
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
151 notify(c);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
152 return 0;
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
153 }
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
154
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
155 int im_sent_im(struct gaim_connection *gc, char *who, char **what, void *m) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
156 struct gaim_conversation *c = gaim_find_conversation(who);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
157
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
158 if (c && (type & TYPE_IM))
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
159 unnotify(c, FALSE);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
160 return 0;
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
161 }
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
162
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
163 int attach_signals(struct gaim_conversation *c) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
164 struct gaim_gtk_conversation *gtkconv;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
165 struct gaim_gtk_window *gtkwin;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
166
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
167 gtkconv = GAIM_GTK_CONVERSATION(c);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
168 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
169
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
170 if (choice & NOTIFY_FOCUS) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
171 g_signal_connect(G_OBJECT(gtkwin->window), "focus-in-event", G_CALLBACK(un_star), NULL);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
172 }
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
173
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
174 if (choice & NOTIFY_CLICK) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
175 g_signal_connect(G_OBJECT(gtkwin->window), "button_press_event", G_CALLBACK(un_star), NULL);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
176
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
177 g_signal_connect_swapped(G_OBJECT(gtkconv->imhtml), "button_press_event", G_CALLBACK(un_star), G_OBJECT(gtkwin->window));
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
178
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
179 g_signal_connect_swapped(G_OBJECT(gtkconv->entry), "button_press_event", G_CALLBACK(un_star), G_OBJECT(gtkwin->window));
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
180 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
181
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
182 if (choice & NOTIFY_TYPE) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
183 g_signal_connect_swapped(G_OBJECT(gtkconv->entry), "key-press-event", G_CALLBACK(un_star), G_OBJECT(gtkwin->window));
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
184 }
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
185
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
186 g_object_set_data(G_OBJECT(gtkwin->window), "user_data", c);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
187 g_object_set_data(G_OBJECT(gtkwin->window), "notify_data", GUINT_TO_POINTER(choice));
3428
dac9d27beada [gaim-migrate @ 3454]
Etan Reisner <deryni@pidgin.im>
parents: 3427
diff changeset
188 return 0;
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
189 }
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
190
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
191 void detach_signals(struct gaim_conversation *c) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
192 struct gaim_gtk_conversation *gtkconv;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
193 struct gaim_gtk_window *gtkwin;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
194 guint options;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
195
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
196 gtkconv = GAIM_GTK_CONVERSATION(c);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
197 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
198
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
199 options = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(gtkwin->window), "notify_data"));
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
200
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
201 if (options & NOTIFY_FOCUS) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
202 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkwin->window), un_star, NULL);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
203 }
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
204 if (options & NOTIFY_CLICK) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
205 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkwin->window), un_star, NULL);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
206 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkconv->imhtml), un_star, gtkwin->window);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
207 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkconv->entry), un_star, gtkwin->window);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
208 }
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
209
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
210 if (options & NOTIFY_TYPE) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
211 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkconv->entry), un_star, gtkwin->window);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
212 }
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
213 }
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
214
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
215 void new_conv(char *who) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
216 struct gaim_conversation *c = gaim_find_conversation(who);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
217
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
218 if (c && (type & TYPE_IM))
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
219 attach_signals(c);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
220 }
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
221
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
222 void chat_join(struct gaim_connection *gc, int id, char *room) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
223 struct gaim_conversation *c = gaim_find_chat(gc, id);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
224
4043
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
225 if (c && (type & TYPE_CHAT))
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
226 attach_signals(c);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
227 }
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
228
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
229 int un_star(GtkWidget *widget, gpointer data) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
230 struct gaim_conversation *c = g_object_get_data(G_OBJECT(widget), "user_data");
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
231
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
232 if (method & METHOD_QUOTE)
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
233 quote_remove(widget);
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
234 if (method & METHOD_COUNT)
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
235 count_remove(widget);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
236 if (method & METHOD_STRING)
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
237 string_remove(widget);
4043
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
238 if (c && method & METHOD_URGENT)
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
239 urgent_remove(c);
4047
ccf8a1cd54fd [gaim-migrate @ 4255]
Etan Reisner <deryni@pidgin.im>
parents: 4043
diff changeset
240 return 0;
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
241 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
242
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
243 /* This function returns the number in [ ]'s or 0 */
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
244 int counter (char *buf, int *length) {
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
245 char temp[256];
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
246 int i = 1;
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
247 *length = 0;
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
248
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
249 while (isdigit(buf[i]) && i<sizeof(buf)) {
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
250 temp[i-1] = buf[i];
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
251 (*length)++;
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
252 i++;
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
253 }
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
254 temp[i] = '\0';
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
255
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
256 if (buf[i] != ']') {
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
257 *length = 0;
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
258 return (0);
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
259 }
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
260
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
261 return (atoi(temp));
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
262 }
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
263
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
264 void string_add(GtkWidget *widget) {
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
265 char buf[256];
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
266 GtkWindow *win = GTK_WINDOW(widget);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
267
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
268 strncpy(buf, win->title, sizeof(buf));
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
269 if (!strstr(buf, title_string)) {
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
270 g_snprintf(buf, sizeof(buf), "%s%s", title_string, win->title);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
271 gtk_window_set_title(win, buf);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
272 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
273 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
274
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
275 gboolean string_remove(GtkWidget *widget) {
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
276 char buf[256];
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
277 GtkWindow *win = GTK_WINDOW(widget);
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
278
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
279 strncpy(buf, win->title, sizeof(buf));
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
280 if (strstr(buf, title_string)) {
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
281 g_snprintf(buf, sizeof(buf), "%s", &win->title[strlen(title_string)]);
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
282 gtk_window_set_title(win, buf);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
283 return TRUE;
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
284 }
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
285 return FALSE;
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
286 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
287
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
288 void count_add(GtkWidget *widget, int number) {
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
289 char buf[256];
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
290 int c, length;
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
291 GtkWindow *win = GTK_WINDOW(widget);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
292
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
293 strncpy(buf, win->title, sizeof(buf));
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
294 c = counter(buf, &length);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
295 if (number) {
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
296 g_snprintf(buf, sizeof(buf), "[%d] %s", number, win->title);
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
297 } else if (!c) {
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
298 g_snprintf(buf, sizeof(buf), "[1] %s", win->title);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
299 } else if (!g_strncasecmp(buf, "[", 1)) {
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
300 g_snprintf(buf, sizeof(buf), "[%d] %s", c+1, &win->title[3+length]);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
301 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
302 gtk_window_set_title(win, buf);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
303 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
304
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
305 gboolean count_remove(GtkWidget *widget) {
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
306 char buf[256];
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
307 GtkWindow *win = GTK_WINDOW(widget);
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
308 int length;
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
309
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
310 strncpy(buf, win->title, sizeof(buf));
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
311 if (!g_strncasecmp(buf, "[", 1)) {
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
312 Number = counter(buf, &length);
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
313 g_snprintf(buf, sizeof(buf), "%s", &win->title[3+length]);
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
314 gtk_window_set_title(win, buf);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
315 return TRUE;
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
316 }
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
317 return FALSE;
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
318 }
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
319
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
320 void quote_add(GtkWidget *widget) {
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
321 char buf[256];
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
322 GtkWindow *win = GTK_WINDOW(widget);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
323
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
324 strncpy(buf, win->title, sizeof(buf));
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
325 if (g_strncasecmp(buf, "\"", 1)) {
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
326 g_snprintf(buf, sizeof(buf), "\"%s\"", win->title);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
327 gtk_window_set_title(win, buf);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
328 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
329 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
330
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
331 gboolean quote_remove(GtkWidget *widget) {
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
332 char buf[256];
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
333 GtkWindow *win = GTK_WINDOW(widget);
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
334
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
335 strncpy(buf, win->title, sizeof(buf));
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
336 if (!g_strncasecmp(buf, "\"", 1)) {
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
337 g_snprintf(buf, strlen(buf) - 1, "%s", &win->title[1]);
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
338 gtk_window_set_title(win, buf);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
339 return TRUE;
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
340 }
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
341 return FALSE;
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
342 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
343
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
344 void urgent_add(struct gaim_conversation *c) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
345 struct gaim_gtk_window *gtkwin;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
346 XWMHints *hints;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
347
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
348 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
349
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
350 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window));
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
351 hints->flags |= XUrgencyHint;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
352 XSetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window), hints);
4218
a9c71b230676 [gaim-migrate @ 4462]
Etan Reisner <deryni@pidgin.im>
parents: 4203
diff changeset
353 XFree(hints);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
354 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
355
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
356 gboolean urgent_remove(struct gaim_conversation *c) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
357 struct gaim_gtk_conversation *gtkconv;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
358
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
359 gtkconv = GAIM_GTK_CONVERSATION(c);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
360
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
361 if ((gaim_conversation_get_type(c) == GAIM_CONV_CHAT &&
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
362 (chat_options & OPT_CHAT_ONE_WINDOW)) ||
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
363 (gaim_conversation_get_type(c) != GAIM_CONV_CHAT &&
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
364 (im_options & OPT_IM_ONE_WINDOW))) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
365 if (gaim_conversation_get_type(c) == GAIM_CONV_CHAT) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
366 struct gaim_conversation *c = (struct gaim_conversation *)gaim_get_chats()->data;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
367 struct gaim_gtk_window *gtkwin;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
368 GdkWindow *win;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
369 XWMHints *hints;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
370
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
371 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
372
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
373 win = gtkwin->window->window;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
374
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
375 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(win), GDK_WINDOW_XWINDOW(win));
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
376 if (hints->flags & XUrgencyHint) {
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
377 hints->flags &= ~XUrgencyHint;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
378 XSetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window), hints);
4218
a9c71b230676 [gaim-migrate @ 4462]
Etan Reisner <deryni@pidgin.im>
parents: 4203
diff changeset
379 XFree(hints);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
380 return TRUE;
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
381 }
4218
a9c71b230676 [gaim-migrate @ 4462]
Etan Reisner <deryni@pidgin.im>
parents: 4203
diff changeset
382 XFree(hints);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
383 return FALSE;
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
384 } else {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
385 struct gaim_conversation *c;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
386 struct gaim_gtk_window *gtkwin;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
387 GdkWindow *win;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
388 XWMHints *hints;
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
389
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
390 c = (struct gaim_conversation *)gaim_get_ims()->data;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
391 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
392 win = gtkwin->window->window;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
393
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
394 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(win), GDK_WINDOW_XWINDOW(win));
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
395 if (hints->flags & XUrgencyHint) {
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
396 hints->flags &= ~XUrgencyHint;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
397 XSetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window), hints);
4218
a9c71b230676 [gaim-migrate @ 4462]
Etan Reisner <deryni@pidgin.im>
parents: 4203
diff changeset
398 XFree(hints);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
399 return TRUE;
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
400 }
4218
a9c71b230676 [gaim-migrate @ 4462]
Etan Reisner <deryni@pidgin.im>
parents: 4203
diff changeset
401 XFree(hints);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
402 return FALSE;
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
403 }
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
404 } else {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
405 struct gaim_gtk_window *gtkwin;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
406 XWMHints *hints;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
407
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
408 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
409 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
410
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
411 if (hints->flags & XUrgencyHint) {
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
412 hints->flags &= ~XUrgencyHint;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
413 XSetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window), hints);
4218
a9c71b230676 [gaim-migrate @ 4462]
Etan Reisner <deryni@pidgin.im>
parents: 4203
diff changeset
414 XFree(hints);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
415 return TRUE;
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
416 }
4218
a9c71b230676 [gaim-migrate @ 4462]
Etan Reisner <deryni@pidgin.im>
parents: 4203
diff changeset
417 XFree(hints);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
418 return FALSE;
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
419 }
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
420 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
421
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
422 void save_notify_prefs() {
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
423 gchar buf[1000];
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
424 FILE *fp;
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
425
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
426 snprintf(buf, 1000, "%s/.gaim/.notify", getenv("HOME"));
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
427 if (!(fp = fopen(buf, "w"))) {
3561
3f829cc98407 [gaim-migrate @ 3655]
Sean Egan <seanegan@pidgin.im>
parents: 3551
diff changeset
428 do_error_dialog(_("Unable to write to config file"), _("Notify plugin"), GAIM_ERROR);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
429 return;
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
430 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
431
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
432 fprintf(fp, "%d=TYPE\n", type);
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
433 fprintf(fp, "%d=CHOICE\n", choice);
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
434 fprintf(fp, "%d=METHOD\n", method);
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
435 fprintf(fp, "%s=STRING\n", title_string);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
436 fclose(fp);
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
437 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
438
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
439 void load_notify_prefs() {
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
440 gchar buf[1000];
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
441 gchar **parsed;
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
442 FILE *fp;
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
443
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
444 g_snprintf(buf, sizeof(buf), "%s/.gaim/.notify", getenv("HOME"));
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
445 if (!(fp = fopen(buf, "r")))
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
446 return;
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
447
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
448 while (fgets(buf, 1000, fp) != NULL) {
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
449 parsed = g_strsplit(g_strchomp(buf), "=", 2);
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
450 if (parsed[0] && parsed[1]) {
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
451 if (!strcmp(parsed[1], "TYPE"))
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
452 type = atoi(parsed[0]);
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
453 if (!strcmp(parsed[1], "CHOICE"))
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
454 choice = atoi(parsed[0]);
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
455 if (!strcmp(parsed[1], "METHOD"))
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
456 method = atoi(parsed[0]);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
457 if (!strcmp(parsed[1], "STRING")) {
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
458 if (title_string != NULL)
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
459 g_free(title_string);
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
460 title_string = g_strdup(parsed[0]);
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
461 }
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
462 }
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
463 g_strfreev(parsed);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
464 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
465 fclose(fp);
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
466 return;
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
467 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
468
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
469 void options(GtkWidget *widget, gpointer data) {
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
470 gint option = GPOINTER_TO_INT(data);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
471
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
472 if (option == 0)
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
473 choice ^= NOTIFY_FOCUS;
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
474 else if (option == 1)
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
475 choice ^= NOTIFY_CLICK;
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
476 else if (option == 2)
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
477 choice ^= NOTIFY_TYPE;
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
478 else if (option == 3) {
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
479 method ^= METHOD_STRING;
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
480 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
481 gtk_widget_set_sensitive(Entry, TRUE);
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
482 else
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
483 gtk_widget_set_sensitive(Entry, FALSE);
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
484 }
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
485 else if (option == 4)
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
486 method ^= METHOD_QUOTE;
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
487 else if (option == 5)
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
488 method ^= METHOD_URGENT;
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
489 else if (option == 6)
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
490 choice ^= NOTIFY_IN_FOCUS;
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
491 else if (option == 7)
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
492 method ^= METHOD_COUNT;
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
493 else if (option == 8)
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
494 type ^= TYPE_IM;
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
495 else if (option == 9)
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
496 type ^= TYPE_CHAT;
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
497 else if (option == 10) {
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
498 /* I made an option for this as at least a way to have it save correctly
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
499 * I'd much rather there were better ways, and I don't want to save this
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
500 * no matter which pref is changed, that's too much of a hack */
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
501 if (title_string != NULL) {
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
502 g_free(title_string);
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
503 title_string = g_strdup(gtk_entry_get_text(GTK_ENTRY(Entry)));
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
504 }
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
505 }
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
506
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
507 save_notify_prefs();
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
508 }
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
509
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
510 void apply_options(GtkWidget *widget, gpointer data) {
4376
88f8faf7cb61 [gaim-migrate @ 4642]
Christian Hammond <chipx86@chipx86.com>
parents: 4359
diff changeset
511 GList *cnv = gaim_get_conversations();
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
512
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
513 while (cnv) {
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
514 guint notification;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
515 struct gaim_conversation *c = (struct gaim_conversation *) cnv->data;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
516 struct gaim_gtk_conversation *gtkconv;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
517 struct gaim_gtk_window *gtkwin;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
518 guint options = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(c->window), "notify_data"));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
519
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
520 gtkconv = GAIM_GTK_CONVERSATION(c);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
521 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
522
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
523 if (options & NOTIFY_FOCUS)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
524 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkwin->window), un_star, NULL);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
525
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
526 /* remove old notification signals */
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
527 detach_signals(c);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
528
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
529 /* clean off all notification markings */
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
530 notification = unnotify(c, TRUE);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
531
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
532 /* re-add appropriate notification methods cleaned above */
4043
1084e9d28767 [gaim-migrate @ 4251]
Etan Reisner <deryni@pidgin.im>
parents: 4035
diff changeset
533 if (notification & METHOD_STRING) /* re-add string */
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
534 string_add(gtkwin->window);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
535 if (notification & METHOD_QUOTE) /* re-add quote */
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
536 quote_add(gtkwin->window);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
537 if (notification & METHOD_COUNT) /* re-add count */
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
538 count_add(gtkwin->window, Number);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
539 if (notification & METHOD_URGENT) /* re-add urgent */
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
540 urgent_add(c);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
541
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
542 /* attach new unnotification signals */
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
543 attach_signals(c);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
544
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
545 cnv = cnv->next;
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
546 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
547 }
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
548
1047
783f8520d9a0 [gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1000
diff changeset
549 char *gaim_plugin_init(GModule *hndl) {
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
550 handle = hndl;
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
551 title_string = g_strdup("(*) ");
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
552
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
553 load_notify_prefs();
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
554
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
555 gaim_signal_connect(handle, event_im_recv, im_recv_im, NULL);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
556 gaim_signal_connect(handle, event_chat_recv, chat_recv_im, NULL);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
557 gaim_signal_connect(handle, event_im_send, im_sent_im, NULL);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
558 gaim_signal_connect(handle, event_chat_send, chat_sent_im, NULL);
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
559 gaim_signal_connect(handle, event_new_conversation, new_conv, NULL);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
560 gaim_signal_connect(handle, event_chat_join, chat_join, NULL);
1052
d02807295cf3 [gaim-migrate @ 1062]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
561 return NULL;
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
562 }
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
563
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
564 void gaim_plugin_remove() {
4476
bf88170ba269 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4376
diff changeset
565 GList *c = gaim_get_conversations();
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
566
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
567 while (c) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
568 struct gaim_conversation *cnv = (struct gaim_conversation *)c->data;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
569 struct gaim_gtk_window *gtkwin;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
570
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
571 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(cnv));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
572
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
573 detach_signals(cnv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
574 un_star(gtkwin->window, NULL);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
575
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
576 c = c->next;
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
577 }
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
578
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
579 /* this might be a hack I'm not sure, I don't think so but... */
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
580 g_free(title_string);
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
581 }
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
582
3551
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
583 struct gaim_plugin_description desc;
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
584 struct gaim_plugin_description *gaim_plugin_desc() {
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
585 desc.api_version = PLUGIN_API_VERSION;
4585
cd29170cbc26 [gaim-migrate @ 4869]
Matthew Smith <matthew@smigs.co.uk>
parents: 4476
diff changeset
586 desc.name = g_strdup(_("Message Notification"));
3551
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
587 desc.version = g_strdup(VERSION);
4585
cd29170cbc26 [gaim-migrate @ 4869]
Matthew Smith <matthew@smigs.co.uk>
parents: 4476
diff changeset
588 desc.description = g_strdup(_("Provides a variety of ways of notifying you of unread messages."));
3551
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
589 desc.authors = g_strdup("Etan Reisner &lt;deryni@eden.rutgers.edu>");
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
590 desc.url = g_strdup(WEBSITE);
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
591 return &desc;
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
592 }
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 3511
diff changeset
593
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
594 char *name() {
4585
cd29170cbc26 [gaim-migrate @ 4869]
Matthew Smith <matthew@smigs.co.uk>
parents: 4476
diff changeset
595 return _("Message Notification");
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
596 }
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
597
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
598 char *description() {
4585
cd29170cbc26 [gaim-migrate @ 4869]
Matthew Smith <matthew@smigs.co.uk>
parents: 4476
diff changeset
599 return _("Provides a variety of ways of notifying you of unread messages.");
191
b5dc2d299342 [gaim-migrate @ 201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
600 }
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
601
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
602 GtkWidget *gaim_plugin_config_gtk() {
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
603 GtkWidget *ret;
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
604 GtkWidget *vbox, *hbox;
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
605 GtkWidget *toggle, *button;
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
606 ret = gtk_vbox_new(FALSE, 18);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
607 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
608
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
609 vbox = make_frame(ret, _("Notify For"));
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
610 toggle = gtk_check_button_new_with_mnemonic(_("_IM windows"));
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
611 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
612 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), type & TYPE_IM);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
613 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(8));
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
614
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
615 toggle = gtk_check_button_new_with_mnemonic(_("_Chat windows"));
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
616 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
617 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), type & TYPE_CHAT);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
618 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(9));
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
619
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
620 /*--------------*/
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
621 vbox = make_frame(ret, _("Notification Methods"));
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
622 hbox = gtk_hbox_new(FALSE, 18);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
623 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
624 toggle = gtk_check_button_new_with_mnemonic(_("Prepend _string into window title (hit enter to save):"));
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
625 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), method & METHOD_STRING);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
626 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(3));
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
627 gtk_box_pack_start(GTK_BOX(hbox), toggle, FALSE, FALSE, 0);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
628 Entry = gtk_entry_new();
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
629 gtk_entry_set_max_length(GTK_ENTRY(Entry), 10);
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
630 gtk_widget_set_sensitive(GTK_WIDGET(Entry), method & METHOD_STRING);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
631 gtk_box_pack_start(GTK_BOX(hbox), Entry, FALSE, FALSE, 0);
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
632 gtk_entry_set_text(GTK_ENTRY(Entry), title_string);
4203
de3796505980 [gaim-migrate @ 4439]
Etan Reisner <deryni@pidgin.im>
parents: 4202
diff changeset
633 g_signal_connect(G_OBJECT(Entry), "activate", G_CALLBACK(options), GINT_TO_POINTER(10));
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
634
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
635 toggle = gtk_check_button_new_with_mnemonic(_("_Quote window title"));
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
636 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
637 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), method & METHOD_QUOTE);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
638 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(4));
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
639
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
640 toggle = gtk_check_button_new_with_mnemonic(_("Set Window Manager \"_URGENT\" Hint"));
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
641 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
642 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), method & METHOD_URGENT);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
643 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(5));
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
644
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
645 toggle = gtk_check_button_new_with_mnemonic(_("Insert c_ount of new messages into window title"));
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
646 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), method & METHOD_COUNT);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
647 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
648 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(7));
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
649
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
650 toggle = gtk_check_button_new_with_mnemonic(_("_Notify even if conversation is in focus"));
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
651 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), choice & NOTIFY_IN_FOCUS);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
652 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
653 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(6));
3392
797d3b3ebe20 [gaim-migrate @ 3411]
Etan Reisner <deryni@pidgin.im>
parents: 3385
diff changeset
654
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
655 /*--------------*/
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
656 vbox = make_frame(ret, _("Notification Removal"));
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
657 toggle = gtk_check_button_new_with_mnemonic(_("Remove when conversation window gains _focus"));
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
658 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
659 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), choice & NOTIFY_FOCUS);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
660 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(0));
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
661
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
662 toggle = gtk_check_button_new_with_mnemonic(_("Remove when conversation window _receives click"));
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
663 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
664 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), choice & NOTIFY_CLICK);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
665 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(1));
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3565
diff changeset
666
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
667 toggle = gtk_check_button_new_with_mnemonic(_("Remove when _typing in conversation window"));
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
668 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
669 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), choice & NOTIFY_TYPE);
4035
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
670 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(options), GINT_TO_POINTER(2));
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
671
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
672 button = gtk_button_new_with_mnemonic(_("Appl_y"));
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
673 gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 5);
eb7ae74cf1e6 [gaim-migrate @ 4241]
Etan Reisner <deryni@pidgin.im>
parents: 3710
diff changeset
674 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(apply_options), NULL);
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
675
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
676 gtk_widget_show_all(ret);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3561
diff changeset
677 return ret;
3374
4792e03572f4 [gaim-migrate @ 3393]
Sean Egan <seanegan@pidgin.im>
parents: 2313
diff changeset
678 }

mercurial