annotate plugins/notify.c @ 10562:e06da39b467c

[gaim-migrate @ 11942] This will prevent the connection process from hanging when the DNS lookup fails. We need to call the callback function regardless of whether the lookup succeeded. (This is in the DNS lookup functionality that is currently #ifdef _WIN32, but is actually portable), committer: Tailor Script <tailor@pidgin.im>
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 01 Feb 2005 05:02:40 +0000
parents 45ad1d15fab3
children 1a65fc2d7978
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
1 /*
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
2 * Gaim buddy notification plugin.
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
3 *
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
4 * Copyright (C) 2000-2001, Eric Warmenhoven (original code)
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
5 * Copyright (C) 2002, Etan Reisner <deryni@eden.rutgers.edu> (rewritten code)
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
6 * Copyright (C) 2003, Christian Hammond (update for changed API)
6322
dd2be7cd66df [gaim-migrate @ 6821]
Mark Doliner <mark@kingant.net>
parents: 6302
diff changeset
7 * Copyright (C) 2003, Brian Tarricone <bjt23@cornell.edu> (mostly rewritten)
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
8 * Copyright (C) 2003, Mark Doliner (minor cleanup)
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
9 * Copyright (C) 2003, Etan Reisner (largely rewritten again)
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
10 *
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
11 * This program is free software; you can redistribute it and/or modify
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
12 * it under the terms of the GNU General Public License as published by
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
14 * (at your option) any later version.
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
15 *
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
16 * This program is distributed in the hope that it will be useful,
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
19 * GNU General Public License for more details.
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
20 *
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
21 * You should have received a copy of the GNU General Public License
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
22 * along with this program; if not, write to the Free Software
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
24 *
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
25 */
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
26
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
27 /*
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
28 * From Etan, 2002:
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
29 * -Added config dialog
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
30 * -Added control over notification method
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
31 * -Added control over when to release notification
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
32 *
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
33 * -Added option to get notification for chats also
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
34 * -Cleaned up code
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
35 * -Added option to notify on click as it's own option
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
36 * rather then as what happens when on focus isn't clicked
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
37 * -Added apply button to change the denotification methods for
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
38 * open conversation windows
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
39 * -Fixed apply to conversations, count now keeps count across applies
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
40 * -Fixed(?) memory leak, and in the process fixed some stupidities
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
41 * -Hit enter when done editing the title string entry box to save it
3392
5a5df7968b6e [gaim-migrate @ 3411]
Sean Egan <seanegan@gmail.com>
parents: 3385
diff changeset
42 *
5a5df7968b6e [gaim-migrate @ 3411]
Sean Egan <seanegan@gmail.com>
parents: 3385
diff changeset
43 * Thanks to Carles Pina i Estany <carles@pinux.info>
5a5df7968b6e [gaim-migrate @ 3411]
Sean Egan <seanegan@gmail.com>
parents: 3385
diff changeset
44 * for count of new messages option
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
45 *
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
46 * From Brian, 20 July 2003:
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
47 * -Use new xml prefs
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
48 * -Better handling of notification states tracking
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
49 * -Better pref change handling
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
50 * -Fixed a possible memleak and possible crash (rare)
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
51 * -Use gtk_window_get_title() rather than gtkwin->title
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
52 * -Other random fixes and cleanups
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
53 *
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
54 * Etan again, 12 August 2003:
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
55 * -Better use of the new xml prefs
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
56 * -Removed all bitmask stuff
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
57 * -Even better pref change handling
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
58 * -Removed unnecessary functions
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
59 * -Reworking of notification/unnotification stuff
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
60 * -Header file include cleanup
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
61 * -General code cleanup
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
62 *
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
63 * Etan yet again, 04 April 2004:
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
64 * -Re-added Urgent option
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
65 * -Re-added unnotify on focus option (still needs work, as it will only
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
66 * react to focus-in events when the entry or history widgets are focused)
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
67 *
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
68 * Sean, 08 January, 2005:
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
69 * -Added Raise option, formally in Gaim proper
3392
5a5df7968b6e [gaim-migrate @ 3411]
Sean Egan <seanegan@gmail.com>
parents: 3385
diff changeset
70 */
5a5df7968b6e [gaim-migrate @ 3411]
Sean Egan <seanegan@gmail.com>
parents: 3385
diff changeset
71
9791
4a15962c344a [gaim-migrate @ 10659]
Mark Doliner <mark@kingant.net>
parents: 9303
diff changeset
72 #include "internal.h"
4a15962c344a [gaim-migrate @ 10659]
Mark Doliner <mark@kingant.net>
parents: 9303
diff changeset
73 #include "gtkgaim.h"
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
74 #include "gtkprefs.h"
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
75
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
76 #include "debug.h"
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
77 #include "prefs.h"
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
78 #include "signals.h"
9943
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
79 #include "version.h"
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4165
diff changeset
80
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
81 #include "gtkplugin.h"
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
82 #include "gtkutils.h"
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
83
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
84 #include <X11/Xatom.h>
3385
7931eb8bba19 [gaim-migrate @ 3404]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
85 #include <X11/Xlib.h>
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
86 #include <X11/Xutil.h>
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
87
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
88 #define NOTIFY_PLUGIN_ID "gtk-x11-notify"
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
89
5436
ad445074d239 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
90 static GaimPlugin *my_plugin = NULL;
ad445074d239 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
91
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
92 /* notification set/unset */
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
93 static int notify(GaimConversation *conv, gboolean increment);
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
94 static void notify_win(GaimConvWindow *gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
95 static void unnotify(GaimConversation *conv, gboolean reset);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
96 static int unnotify_cb(GtkWidget *widget, gpointer data, GaimConversation *conv);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
97
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
98 /* gtk widget callbacks for prefs panel */
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
99 static void type_toggle_cb(GtkWidget *widget, gpointer data);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
100 static void method_toggle_cb(GtkWidget *widget, gpointer data);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
101 static void notify_toggle_cb(GtkWidget *widget, gpointer data);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
102 static gboolean options_entry_cb(GtkWidget *widget, GdkEventFocus *event, gpointer data);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
103 static void apply_method();
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
104 static void apply_notify();
191
948100a8cb23 [gaim-migrate @ 201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
105
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
106 /* raise function */
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
107 static void handle_raise(GaimConvWindow *window);
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
108
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
109 /* string function */
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
110 static void handle_string(GaimConvWindow *window);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
111
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
112 /* count function */
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
113 static void handle_count(GaimConvWindow *window);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
114
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
115 /* urgent function */
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
116 static void handle_urgent(GaimConvWindow *window, gboolean add);
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
117
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
118 /****************************************/
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
119 /* Begin doing stuff below this line... */
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
120 /****************************************/
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
121 static int
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
122 count_messages(GaimConvWindow *gaimwin)
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
123 {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
124 gint count = 0;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
125 GList *convs = NULL;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
126
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
127 for (convs = gaim_conv_window_get_conversations(gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
128 convs != NULL; convs = convs->next) {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
129 GaimConversation *conv = convs->data;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
130 count += GPOINTER_TO_INT(gaim_conversation_get_data(conv, "notify-message-count"));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
131 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
132
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
133 return count;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
134 }
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
135
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
136 static int
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
137 notify(GaimConversation *conv, gboolean increment)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
138 {
7118
bf630f7dfdcd [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
139 GaimConvWindow *gaimwin = NULL;
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
140 gint count;
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
141 gboolean has_focus;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
142
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
143 if (conv == NULL)
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
144 return 0;
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
145
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
146 /* We want to remove the notifications, but not reset the counter */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
147 unnotify(conv, FALSE);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
148
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
149 gaimwin = gaim_conversation_get_window(conv);
5021
00b6af528964 [gaim-migrate @ 5357]
Luke Schierer <lschiere@pidgin.im>
parents: 4793
diff changeset
150
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
151 /* If we aren't doing notifications for this type of conversation, return */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
152 if (((gaim_conversation_get_type(conv) == GAIM_CONV_IM) &&
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
153 !gaim_prefs_get_bool("/plugins/gtk/X11/notify/type_im")) ||
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
154 ((gaim_conversation_get_type(conv) == GAIM_CONV_CHAT) &&
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
155 !gaim_prefs_get_bool("/plugins/gtk/X11/notify/type_chat")))
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
156 return 0;
4203
ec6d0c5e5c23 [gaim-migrate @ 4439]
Christian Hammond <chipx86@chipx86.com>
parents: 4202
diff changeset
157
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
158 g_object_get(G_OBJECT(GAIM_GTK_WINDOW(gaimwin)->window),
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
159 "has-toplevel-focus", &has_focus, NULL);
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
160
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
161 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/type_focused") ||
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
162 (has_focus && gaim_conv_window_get_active_conversation(gaimwin) != conv) ||
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
163 !has_focus) {
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
164 if (increment) {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
165 count = GPOINTER_TO_INT(gaim_conversation_get_data(conv, "notify-message-count"));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
166 count++;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
167 gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(count));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
168 }
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
169
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
170 notify_win(gaimwin);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
171 }
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
172
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
173 return 0;
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
174 }
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
175
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
176 static void
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
177 notify_win(GaimConvWindow *gaimwin)
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
178 {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
179 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/method_count"))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
180 handle_count(gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
181 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/method_string"))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
182 handle_string(gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
183 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/method_urgent"))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
184 handle_urgent(gaimwin, TRUE);
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
185 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/method_raise"))
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
186 handle_raise(gaimwin);
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
187 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
188
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
189 static void
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
190 unnotify(GaimConversation *conv, gboolean reset)
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
191 {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
192 GaimConversation *active_conv = NULL;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
193 GaimConvWindow *gaimwin = NULL;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
194
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
195 g_return_if_fail(conv != NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
196
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
197 gaimwin = gaim_conversation_get_window(conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
198 active_conv = gaim_conv_window_get_active_conversation(gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
199
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
200 /* reset the conversation window title */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
201 gaim_conversation_autoset_title(active_conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
202
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
203 if (reset) {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
204 /* Only need to actually remove the urgent hinting here, since removing it
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
205 * just to have it readded in re-notify is an unnecessary couple extra RTs
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
206 * to the server */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
207 handle_urgent(gaimwin, FALSE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
208 gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(0));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
209 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
210
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
211 return;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
212 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
213
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
214 static int
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
215 unnotify_cb(GtkWidget *widget, gpointer data, GaimConversation *conv)
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
216 {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
217 if (GPOINTER_TO_INT(gaim_conversation_get_data(conv, "notify-message-count")) != 0)
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
218 unnotify(conv, TRUE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
219
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
220 return 0;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
221 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
222
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
223 static gboolean
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
224 im_recv_im(GaimAccount *account, char *sender, char *message,
10104
60db14d54914 [gaim-migrate @ 11131]
Stu Tomlinson <stu@nosnilmot.com>
parents: 9943
diff changeset
225 GaimConversation *conv, int *flags)
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
226 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
227 notify(conv, TRUE);
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
228
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
229 return FALSE;
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
230 }
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
231
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
232 static gboolean
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
233 chat_recv_im(GaimAccount *account, char *sender, char *message,
10104
60db14d54914 [gaim-migrate @ 11131]
Stu Tomlinson <stu@nosnilmot.com>
parents: 9943
diff changeset
234 GaimConversation *conv, int *flags)
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
235 {
10345
2e01c503aa4f [gaim-migrate @ 11556]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10246
diff changeset
236 if (gaim_conv_chat_is_user_ignored(GAIM_CONV_CHAT(conv), sender))
2e01c503aa4f [gaim-migrate @ 11556]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10246
diff changeset
237 return FALSE;
2e01c503aa4f [gaim-migrate @ 11556]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10246
diff changeset
238
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
239 notify(conv, TRUE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
240
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
241 return FALSE;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
242 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
243
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
244 static void
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
245 im_sent_im(GaimAccount *account, char *receiver, const char *message) {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
246 GaimConversation *conv = NULL;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
247
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
248 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_send")) {
10246
a66cf83552dc [gaim-migrate @ 11386]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
249 conv = gaim_find_conversation_with_account(GAIM_CONV_IM, receiver, account);
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
250 unnotify(conv, TRUE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
251 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
252 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
253
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
254 static void
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
255 chat_sent_im(GaimAccount *account, const char *message, int id)
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
256 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
257 GaimConversation *conv = NULL;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
258
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
259 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_send")) {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
260 conv = gaim_find_chat(gaim_account_get_connection(account), id);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
261 unnotify(conv, TRUE);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
262 }
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
263 }
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
264
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
265 static int
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
266 attach_signals(GaimConversation *conv)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
267 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
268 GaimGtkConversation *gtkconv = NULL;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
269 GaimGtkWindow *gtkwin = NULL;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
270 GSList *window_ids = NULL, *imhtml_ids = NULL, *entry_ids = NULL;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
271 guint id;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
272
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
273 gtkconv = GAIM_GTK_CONVERSATION(conv);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
274 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(conv));
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
275
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
276 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_focus")) {
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
277 GtkWidget *child = NULL;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
278 gint page_num;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
279
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
280 page_num = gaim_conversation_get_index(conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
281 child = gtk_notebook_get_nth_page(GTK_NOTEBOOK(gtkwin->notebook), page_num);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
282
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
283 /* TODO should really find a way to make this work no matter where the
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
284 * focus is inside the conv window, without having to bind to
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
285 * focus-in-event on the g(d|t)kwindow */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
286 /* try setting the signal on the focus-in-event for
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
287 * gtkwin->notebook->container? */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
288 id = g_signal_connect(G_OBJECT(gtkconv->entry), "focus-in-event",
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
289 G_CALLBACK(unnotify_cb), conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
290 window_ids = g_slist_append(window_ids, GUINT_TO_POINTER(id));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
291
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
292 id = g_signal_connect(G_OBJECT(gtkconv->imhtml), "focus-in-event",
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
293 G_CALLBACK(unnotify_cb), conv);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
294 window_ids = g_slist_append(window_ids, GUINT_TO_POINTER(id));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
295 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
296
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
297 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_click")) {
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
298 /* TODO similarly should really find a way to allow for clicking in other
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
299 * places of the window */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
300 id = g_signal_connect(G_OBJECT(gtkconv->imhtml), "button-press-event",
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
301 G_CALLBACK(unnotify_cb), conv);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
302 imhtml_ids = g_slist_append(imhtml_ids, GUINT_TO_POINTER(id));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
303
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
304 id = g_signal_connect(G_OBJECT(gtkconv->entry), "button-press-event",
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
305 G_CALLBACK(unnotify_cb), conv);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
306 entry_ids = g_slist_append(entry_ids, GUINT_TO_POINTER(id));
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
307 }
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
308
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
309 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_type")) {
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
310 id = g_signal_connect(G_OBJECT(gtkconv->entry), "key-press-event",
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
311 G_CALLBACK(unnotify_cb), conv);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
312 entry_ids = g_slist_append(entry_ids, GUINT_TO_POINTER(id));
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
313 }
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
314
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
315 gaim_conversation_set_data(conv, "notify-window-signals", window_ids);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
316 gaim_conversation_set_data(conv, "notify-imhtml-signals", imhtml_ids);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
317 gaim_conversation_set_data(conv, "notify-entry-signals", entry_ids);
4035
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
318
3428
0202b5e1af69 [gaim-migrate @ 3454]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
319 return 0;
191
948100a8cb23 [gaim-migrate @ 201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
320 }
948100a8cb23 [gaim-migrate @ 201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
321
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
322 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
323 detach_signals(GaimConversation *conv)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
324 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
325 GaimGtkConversation *gtkconv = NULL;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
326 GaimGtkWindow *gtkwin = NULL;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
327 GSList *ids = NULL;
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
328
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
329 gtkconv = GAIM_GTK_CONVERSATION(conv);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
330 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(conv));
4203
ec6d0c5e5c23 [gaim-migrate @ 4439]
Christian Hammond <chipx86@chipx86.com>
parents: 4202
diff changeset
331
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
332 ids = gaim_conversation_get_data(conv, "notify-window-signals");
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
333 for (; ids != NULL; ids = ids->next)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
334 g_signal_handler_disconnect(gtkwin->window, GPOINTER_TO_INT(ids->data));
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
335
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
336 ids = gaim_conversation_get_data(conv, "notify-imhtml-signals");
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
337 for (; ids != NULL; ids = ids->next)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
338 g_signal_handler_disconnect(gtkconv->imhtml, GPOINTER_TO_INT(ids->data));
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
339
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
340 ids = gaim_conversation_get_data(conv, "notify-entry-signals");
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
341 for (; ids != NULL; ids = ids->next)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
342 g_signal_handler_disconnect(gtkconv->entry, GPOINTER_TO_INT(ids->data));
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
343
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
344 gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(0));
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
345
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
346 gaim_conversation_set_data(conv, "notify-window-signals", NULL);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
347 gaim_conversation_set_data(conv, "notify-imhtml-signals", NULL);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
348 gaim_conversation_set_data(conv, "notify-entry-signals", NULL);
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
349 }
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
350
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
351 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
352 conv_created(GaimConversation *conv)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
353 {
7118
bf630f7dfdcd [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
354 GaimConvWindow *gaimwin = NULL;
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
355 GaimGtkWindow *gtkwin = NULL;
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
356
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
357 gaimwin = gaim_conversation_get_window(conv);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
358
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
359 if (gaimwin == NULL)
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
360 return;
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
361
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
362 gtkwin = GAIM_GTK_WINDOW(gaimwin);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
363
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
364 gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(0));
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
365
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
366 /* always attach the signals, notify() will take care of conversation type
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
367 * checking */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
368 attach_signals(conv);
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
369 }
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
370
9303
fe931c791fc0 [gaim-migrate @ 10107]
Mark Doliner <mark@kingant.net>
parents: 9298
diff changeset
371 #if 0
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
372 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
373 conv_switched(GaimConversation *old_conv, GaimConversation *new_conv)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
374 {
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
375 GaimConvWindow *gaimwin = gaim_conversation_get_window(new_conv);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
376
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
377 printf("conv_switched - %p - %p\n", old_conv, new_conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
378 printf("count - %d\n", count_messages(gaimwin));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
379 if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_switch"))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
380 unnotify(new_conv, FALSE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
381 else {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
382 /* if we don't have notification on the window then we don't want to
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
383 * re-notify it */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
384 if (count_messages(gaimwin))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
385 notify_win(gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
386 }
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
387 }
9303
fe931c791fc0 [gaim-migrate @ 10107]
Mark Doliner <mark@kingant.net>
parents: 9298
diff changeset
388 #endif
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
389
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
390 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
391 deleting_conv(GaimConversation *conv)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
392 {
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
393 GaimConvWindow *gaimwin = NULL;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
394
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
395 detach_signals(conv);
3392
5a5df7968b6e [gaim-migrate @ 3411]
Sean Egan <seanegan@gmail.com>
parents: 3385
diff changeset
396
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
397 unnotify(conv, TRUE);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
398
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
399 gaimwin = gaim_conversation_get_window(conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
400 if (count_messages(gaimwin))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
401 notify_win(gaimwin);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
402 }
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
403
9303
fe931c791fc0 [gaim-migrate @ 10107]
Mark Doliner <mark@kingant.net>
parents: 9298
diff changeset
404 #if 0
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
405 static void
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
406 conversation_drag_ended(GaimConversation *active_conv,
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
407 GaimConvWindow *old_gaimwin,
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
408 GaimConvWindow *new_gaimwin)
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
409 {
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
410 if (old_gaimwin != new_gaimwin) {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
411 if (old_gaimwin == NULL) {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
412 /*
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
413 gaim_conversation_autoset_title(active_conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
414 handle_urgent(new_gaimwin, FALSE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
415 */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
416
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
417 if (count_messages(new_gaimwin))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
418 notify_win(new_gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
419 } else {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
420 printf("if else count = %d\n", count_messages(new_gaimwin));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
421 printf("if else count = %d\n", count_messages(old_gaimwin));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
422 /*
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
423 GaimConversation *old_active_conv = NULL;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
424 old_active_conv = gaim_conv_window_get_active_conversation(new_gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
425
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
426 gaim_conversation_autoset_title(old_active_conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
427 handle_urgent(old_gaimwin, FALSE);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
428
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
429 if (count_messages(old_gaimwin))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
430 notify_win(old_gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
431
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
432 gaim_conversation_autoset_title(active_conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
433 handle_urgent(new_gaimwin, FALSE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
434
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
435 if (count_messages(new_gaimwin))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
436 notify_win(new_gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
437 */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
438 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
439 } else {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
440 printf("else count = %d\n", count_messages(new_gaimwin));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
441 printf("else count = %d\n", count_messages(old_gaimwin));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
442 /*
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
443 gaim_conversation_autoset_title(active_conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
444 handle_urgent(old_gaimwin, FALSE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
445
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
446 if (count_messages(old_gaimwin))
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
447 notify_win(old_gaimwin);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
448 */
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
449 }
4035
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
450 }
9303
fe931c791fc0 [gaim-migrate @ 10107]
Mark Doliner <mark@kingant.net>
parents: 9298
diff changeset
451 #endif
4035
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
452
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
453 static void
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
454 handle_string(GaimConvWindow *gaimwin)
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
455 {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
456 GtkWindow *window = NULL;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
457 gchar newtitle[256];
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
458
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
459 g_return_if_fail(gaimwin != NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
460
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
461 window = GTK_WINDOW(GAIM_GTK_WINDOW(gaimwin)->window);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
462 g_return_if_fail(window != NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
463
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
464 g_snprintf(newtitle, sizeof(newtitle), "%s%s",
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
465 gaim_prefs_get_string("/plugins/gtk/X11/notify/title_string"),
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
466 gtk_window_get_title(window));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
467 gtk_window_set_title(window, newtitle);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
468 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
469
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
470 static void
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
471 handle_raise(GaimConvWindow *gaimwin)
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
472 {
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
473 GtkWindow *window = GTK_WINDOW(GAIM_GTK_WINDOW(gaimwin)->window);
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
474 gtk_window_present(window);
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
475 }
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
476
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
477 static void
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
478 handle_count(GaimConvWindow *gaimwin)
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
479 {
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
480 GtkWindow *window;
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
481 char newtitle[256];
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
482
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
483 g_return_if_fail(gaimwin != NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
484
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
485 window = GTK_WINDOW(GAIM_GTK_WINDOW(gaimwin)->window);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
486 g_return_if_fail(window != NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
487
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
488 g_snprintf(newtitle, sizeof(newtitle), "[%d] %s", count_messages(gaimwin),
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
489 gtk_window_get_title(window));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
490 gtk_window_set_title(window, newtitle);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
491 }
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
492
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
493 static void
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
494 handle_urgent(GaimConvWindow *gaimwin, gboolean add)
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
495 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
496 XWMHints *hints;
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
497 GaimGtkWindow *gtkwin = GAIM_GTK_WINDOW(gaimwin);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
498
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
499 g_return_if_fail(gtkwin != NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
500 g_return_if_fail(gtkwin->window != NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
501 g_return_if_fail(gtkwin->window->window != NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
502
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
503 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
504 if (add)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
505 hints->flags |= XUrgencyHint;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
506 else
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
507 hints->flags &= ~XUrgencyHint;
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
508 XSetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window),
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
509 GDK_WINDOW_XWINDOW(gtkwin->window->window), hints);
4218
fac89c0d55c2 [gaim-migrate @ 4462]
Sean Egan <seanegan@gmail.com>
parents: 4203
diff changeset
510 XFree(hints);
4035
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
511 }
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
512
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
513 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
514 type_toggle_cb(GtkWidget *widget, gpointer data)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
515 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
516 gboolean on = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
517 gchar pref[256];
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
518
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
519 g_snprintf(pref, sizeof(pref), "/plugins/gtk/X11/notify/%s", (char *)data);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4218
diff changeset
520
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
521 gaim_prefs_set_bool(pref, on);
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
522 }
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
523
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
524 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
525 method_toggle_cb(GtkWidget *widget, gpointer data)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
526 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
527 gboolean on = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
528 gchar pref[256];
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
529
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
530 g_snprintf(pref, sizeof(pref), "/plugins/gtk/X11/notify/%s", (char *)data);
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
531
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
532 gaim_prefs_set_bool(pref, on);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
533
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
534 if (!strcmp(data, "method_string")) {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
535 GtkWidget *entry = g_object_get_data(G_OBJECT(widget), "title-entry");
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
536 gtk_widget_set_sensitive(entry, on);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
537
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
538 gaim_prefs_set_string("/plugins/gtk/X11/notify/title_string", gtk_entry_get_text(GTK_ENTRY(entry)));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
539 }
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
540
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
541 apply_method();
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
542 }
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
543
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
544 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
545 notify_toggle_cb(GtkWidget *widget, gpointer data)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
546 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
547 gboolean on = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
548 gchar pref[256];
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
549
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
550 g_snprintf(pref, sizeof(pref), "/plugins/gtk/X11/notify/%s", (char *)data);
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
551
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
552 gaim_prefs_set_bool(pref, on);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
553
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
554 apply_notify();
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
555 }
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
556
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
557 static gboolean
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
558 options_entry_cb(GtkWidget *widget, GdkEventFocus *evt, gpointer data)
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
559 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
560 if (data == NULL)
6982
083d1e4a9c78 [gaim-migrate @ 7538]
Mark Doliner <mark@kingant.net>
parents: 6977
diff changeset
561 return FALSE;
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
562
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
563 if (!strcmp(data, "method_string")) {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
564 gaim_prefs_set_string("/plugins/gtk/X11/notify/title_string", gtk_entry_get_text(GTK_ENTRY(widget)));
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
565 }
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
566
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
567 apply_method();
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
568
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
569 return FALSE;
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
570 }
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
571
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
572 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
573 apply_method() {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
574 GList *convs = gaim_get_conversations();
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
575 GaimConvWindow *gaimwin = NULL;
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
576
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
577 for (convs = gaim_get_conversations(); convs != NULL; convs = convs->next) {
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
578 GaimConversation *conv = (GaimConversation *)convs->data;
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
579
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
580 /* remove notifications */
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
581 unnotify(conv, FALSE);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
582
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
583 gaimwin = gaim_conversation_get_window(conv);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
584 if (GPOINTER_TO_INT(gaim_conversation_get_data(conv, "notify-message-count")) != 0)
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
585 /* reattach appropriate notifications */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
586 notify(conv, FALSE);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
587 }
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
588 }
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
589
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
590 static void
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
591 apply_notify()
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
592 {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
593 GList *convs = gaim_get_conversations();
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
594
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
595 while (convs) {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
596 GaimConversation *conv = (GaimConversation *)convs->data;
4203
ec6d0c5e5c23 [gaim-migrate @ 4439]
Christian Hammond <chipx86@chipx86.com>
parents: 4202
diff changeset
597
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
598 /* detach signals */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
599 detach_signals(conv);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
600 /* reattach appropriate signals */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
601 attach_signals(conv);
4035
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
602
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
603 convs = convs->next;
4035
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
604 }
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
605 }
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
606
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
607 static GtkWidget *
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
608 get_config_frame(GaimPlugin *plugin)
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
609 {
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
610 GtkWidget *ret = NULL, *frame = NULL;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
611 GtkWidget *vbox = NULL, *hbox = NULL;
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
612 GtkWidget *toggle = NULL, *entry = NULL;
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
613
3565
154c4a9d9b6d [gaim-migrate @ 3660]
Sean Egan <seanegan@gmail.com>
parents: 3561
diff changeset
614 ret = gtk_vbox_new(FALSE, 18);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
615 gtk_container_set_border_width(GTK_CONTAINER (ret), 12);
3392
5a5df7968b6e [gaim-migrate @ 3411]
Sean Egan <seanegan@gmail.com>
parents: 3385
diff changeset
616
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
617 /*---------- "Notify For" ----------*/
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
618 frame = gaim_gtk_make_frame(ret, _("Notify For"));
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
619 vbox = gtk_vbox_new(FALSE, 5);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
620 gtk_container_add(GTK_CONTAINER(frame), vbox);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
621
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
622 toggle = gtk_check_button_new_with_mnemonic(_("_IM windows"));
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
623 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
624 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
625 gaim_prefs_get_bool("/plugins/gtk/X11/notify/type_im"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
626 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
627 G_CALLBACK(type_toggle_cb), "type_im");
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
628
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
629 toggle = gtk_check_button_new_with_mnemonic(_("C_hat windows"));
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
630 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
631 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
632 gaim_prefs_get_bool("/plugins/gtk/X11/notify/type_chat"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
633 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
634 G_CALLBACK(type_toggle_cb), "type_chat");
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
635
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
636 toggle = gtk_check_button_new_with_mnemonic(_("_Focused windows"));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
637 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
638 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
639 gaim_prefs_get_bool("/plugins/gtk/X11/notify/type_focused"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
640 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
641 G_CALLBACK(type_toggle_cb), "type_focused");
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
642
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
643 /*---------- "Notification Methods" ----------*/
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
644 frame = gaim_gtk_make_frame(ret, _("Notification Methods"));
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
645 vbox = gtk_vbox_new(FALSE, 5);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
646 gtk_container_add(GTK_CONTAINER(frame), vbox);
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
647
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
648 /* Raise method button */
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
649 gaim_gtk_prefs_checkbox("R_aise window", "/plugins/gtk/X11/notify/method_raise", vbox);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
650
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
651 /* String method button */
3565
154c4a9d9b6d [gaim-migrate @ 3660]
Sean Egan <seanegan@gmail.com>
parents: 3561
diff changeset
652 hbox = gtk_hbox_new(FALSE, 18);
154c4a9d9b6d [gaim-migrate @ 3660]
Sean Egan <seanegan@gmail.com>
parents: 3561
diff changeset
653 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
654 toggle = gtk_check_button_new_with_mnemonic(_("Prepend _string into window title:"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
655 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
656 gaim_prefs_get_bool("/plugins/gtk/X11/notify/method_string"));
3565
154c4a9d9b6d [gaim-migrate @ 3660]
Sean Egan <seanegan@gmail.com>
parents: 3561
diff changeset
657 gtk_box_pack_start(GTK_BOX(hbox), toggle, FALSE, FALSE, 0);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
658
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
659 entry = gtk_entry_new();
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
660 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
661 gtk_entry_set_max_length(GTK_ENTRY(entry), 10);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
662 gtk_widget_set_sensitive(GTK_WIDGET(entry),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
663 gaim_prefs_get_bool("/plugins/gtk/X11/notify/method_string"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
664 gtk_entry_set_text(GTK_ENTRY(entry),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
665 gaim_prefs_get_string("/plugins/gtk/X11/notify/title_string"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
666 g_object_set_data(G_OBJECT(toggle), "title-entry", entry);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
667 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
668 G_CALLBACK(method_toggle_cb), "method_string");
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
669 g_signal_connect(G_OBJECT(entry), "focus-out-event",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
670 G_CALLBACK(options_entry_cb), "method_string");
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
671
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
672 /* Count method button */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
673 toggle = gtk_check_button_new_with_mnemonic(_("Insert c_ount of new messages into window title"));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
674 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
675 gaim_prefs_get_bool("/plugins/gtk/X11/notify/method_count"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
676 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
677 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
678 G_CALLBACK(method_toggle_cb), "method_count");
4035
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
679
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
680 /* Urgent method button */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
681 toggle = gtk_check_button_new_with_mnemonic(_("Set window manager \"_URGENT\" hint"));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
682 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
683 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
684 gaim_prefs_get_bool("/plugins/gtk/X11/notify/method_urgent"));
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
685 g_signal_connect(G_OBJECT(toggle), "toggled",
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
686 G_CALLBACK(method_toggle_cb), "method_urgent");
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
687
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
688 /*---------- "Notification Removals" ----------*/
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
689 frame = gaim_gtk_make_frame(ret, _("Notification Removal"));
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
690 vbox = gtk_vbox_new(FALSE, 5);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
691 gtk_container_add(GTK_CONTAINER(frame), vbox);
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
692
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
693 /* Remove on focus button */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
694 toggle = gtk_check_button_new_with_mnemonic(_("Remove when conversation window _gains focus"));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
695 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
696 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
697 gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_focus"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
698 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(notify_toggle_cb), "notify_focus");
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
699
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
700 /* Remove on click button */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
701 toggle = gtk_check_button_new_with_mnemonic(_("Remove when conversation window _receives click"));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
702 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
703 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
704 gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_click"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
705 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
706 G_CALLBACK(notify_toggle_cb), "notify_click");
3710
03ba413ca20b [gaim-migrate @ 3843]
Luke Schierer <lschiere@pidgin.im>
parents: 3565
diff changeset
707
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
708 /* Remove on type button */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
709 toggle = gtk_check_button_new_with_mnemonic(_("Remove when _typing in conversation window"));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
710 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
711 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
712 gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_type"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
713 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
714 G_CALLBACK(notify_toggle_cb), "notify_type");
4035
4cea75cf291d [gaim-migrate @ 4241]
Luke Schierer <lschiere@pidgin.im>
parents: 3710
diff changeset
715
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
716 /* Remove on message send button */
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
717 toggle = gtk_check_button_new_with_mnemonic(_("Remove when a _message gets sent"));
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
718 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
719 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
720 gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_send"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
721 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
722 G_CALLBACK(notify_toggle_cb), "notify_send");
3565
154c4a9d9b6d [gaim-migrate @ 3660]
Sean Egan <seanegan@gmail.com>
parents: 3561
diff changeset
723
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
724 #if 0
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
725 /* Remove on conversation switch button */
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
726 toggle = gtk_check_button_new_with_mnemonic(_("Remove on switch to conversation ta_b"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
727 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
728 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
729 gaim_prefs_get_bool("/plugins/gtk/X11/notify/notify_switch"));
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
730 g_signal_connect(G_OBJECT(toggle), "toggled",
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
731 G_CALLBACK(notify_toggle_cb), "notify_switch");
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
732 #endif
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
733
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
734 gtk_widget_show_all(ret);
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
735 return ret;
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 2313
diff changeset
736 }
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
737
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
738 static gboolean
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
739 plugin_load(GaimPlugin *plugin)
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
740 {
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
741 GList *convs = gaim_get_conversations();
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
742 void *conv_handle = gaim_conversations_get_handle();
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
743 /*
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
744 void *gtk_conv_handle = gaim_gtk_conversations_get_handle();
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
745 */
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
746
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
747 my_plugin = plugin;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
748
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
749 gaim_signal_connect(conv_handle, "received-im-msg", plugin,
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
750 GAIM_CALLBACK(im_recv_im), NULL);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
751 gaim_signal_connect(conv_handle, "received-chat-msg", plugin,
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
752 GAIM_CALLBACK(chat_recv_im), NULL);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
753 gaim_signal_connect(conv_handle, "sent-im-msg", plugin,
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
754 GAIM_CALLBACK(im_sent_im), NULL);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
755 gaim_signal_connect(conv_handle, "sent-chat-msg", plugin,
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
756 GAIM_CALLBACK(chat_sent_im), NULL);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
757 gaim_signal_connect(conv_handle, "conversation-created", plugin,
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
758 GAIM_CALLBACK(conv_created), NULL);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
759 gaim_signal_connect(conv_handle, "chat-joined", plugin,
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
760 GAIM_CALLBACK(conv_created), NULL);
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
761 gaim_signal_connect(conv_handle, "deleting-conversation", plugin,
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
762 GAIM_CALLBACK(deleting_conv), NULL);
9303
fe931c791fc0 [gaim-migrate @ 10107]
Mark Doliner <mark@kingant.net>
parents: 9298
diff changeset
763 #if 0
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
764 gaim_signal_connect(conv_handle, "conversation-switched", plugin,
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
765 GAIM_CALLBACK(conv_switched), NULL);
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
766 gaim_signal_connect(gtk_conv_handle, "conversation-drag-ended", plugin,
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
767 GAIM_CALLBACK(conversation_drag_ended), NULL);
9303
fe931c791fc0 [gaim-migrate @ 10107]
Mark Doliner <mark@kingant.net>
parents: 9298
diff changeset
768 #endif
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
769
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
770 while (convs) {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
771 GaimConversation *conv = (GaimConversation *)convs->data;
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
772
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
773 /* attach signals */
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
774 attach_signals(conv);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
775
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
776 convs = convs->next;
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
777 }
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
778
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
779 return TRUE;
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
780 }
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
781
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
782 static gboolean
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
783 plugin_unload(GaimPlugin *plugin)
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
784 {
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
785 GList *convs = gaim_get_conversations();
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
786
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
787 while (convs) {
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
788 GaimConversation *conv = (GaimConversation *)convs->data;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
789
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
790 /* kill signals */
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
791 detach_signals(conv);
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
792
6977
996a182029f7 [gaim-migrate @ 7530]
Luke Schierer <lschiere@pidgin.im>
parents: 6735
diff changeset
793 convs = convs->next;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
794 }
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
795
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
796 return TRUE;
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
797 }
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
798
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
799 static GaimGtkPluginUiInfo ui_info =
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
800 {
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
801 get_config_frame
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
802 };
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
803
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
804 static GaimPluginInfo info =
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
805 {
9943
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
806 GAIM_PLUGIN_MAGIC,
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
807 GAIM_MAJOR_VERSION,
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
808 GAIM_MINOR_VERSION,
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
809 GAIM_PLUGIN_STANDARD, /**< type */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
810 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
811 0, /**< flags */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
812 NULL, /**< dependencies */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
813 GAIM_PRIORITY_DEFAULT, /**< priority */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
814
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
815 NOTIFY_PLUGIN_ID, /**< id */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
816 N_("Message Notification"), /**< name */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
817 VERSION, /**< version */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
818 /** summary */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
819 N_("Provides a variety of ways of notifying you of unread messages."),
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
820 /** description */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
821 N_("Provides a variety of ways of notifying you of unread messages."),
9298
b0b544e0f246 [gaim-migrate @ 10101]
Luke Schierer <lschiere@pidgin.im>
parents: 8999
diff changeset
822 "Etan Reisner <deryni@eden.rutgers.edu>\n\t\t\tBrian Tarricone <bjt23@cornell.edu>",
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
823 /**< author */
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6464
diff changeset
824 GAIM_WEBSITE, /**< homepage */
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
825
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
826 plugin_load, /**< load */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
827 plugin_unload, /**< unload */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
828 NULL, /**< destroy */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
829
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
830 &ui_info, /**< ui_info */
8993
294ae6548d4e [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
831 NULL, /**< extra_info */
294ae6548d4e [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
832 NULL,
294ae6548d4e [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
833 NULL
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
834 };
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
835
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
836 static void
5920
7d385de2f9cd [gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
837 init_plugin(GaimPlugin *plugin)
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
838 {
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
839 gaim_prefs_add_none("/plugins/gtk");
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
840 gaim_prefs_add_none("/plugins/gtk/X11");
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
841 gaim_prefs_add_none("/plugins/gtk/X11/notify");
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
842
6464
059649ed25ed [gaim-migrate @ 6973]
Mark Doliner <mark@kingant.net>
parents: 6371
diff changeset
843 gaim_prefs_add_bool("/plugins/gtk/X11/notify/type_im", TRUE);
059649ed25ed [gaim-migrate @ 6973]
Mark Doliner <mark@kingant.net>
parents: 6371
diff changeset
844 gaim_prefs_add_bool("/plugins/gtk/X11/notify/type_chat", FALSE);
059649ed25ed [gaim-migrate @ 6973]
Mark Doliner <mark@kingant.net>
parents: 6371
diff changeset
845 gaim_prefs_add_bool("/plugins/gtk/X11/notify/type_focused", FALSE);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
846 gaim_prefs_add_bool("/plugins/gtk/X11/notify/method_string", FALSE);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
847 gaim_prefs_add_string("/plugins/gtk/X11/notify/title_string", "(*)");
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
848 gaim_prefs_add_bool("/plugins/gtk/X11/notify/method_urgent", FALSE);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
849 gaim_prefs_add_bool("/plugins/gtk/X11/notify/method_count", FALSE);
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10345
diff changeset
850 gaim_prefs_add_bool("/plugins/gtk/X11/notify/method_raise", FALSE);
6302
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
851 gaim_prefs_add_bool("/plugins/gtk/X11/notify/notify_focus", FALSE);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
852 gaim_prefs_add_bool("/plugins/gtk/X11/notify/notify_click", FALSE);
511003c99302 [gaim-migrate @ 6801]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
853 gaim_prefs_add_bool("/plugins/gtk/X11/notify/notify_type", TRUE);
6464
059649ed25ed [gaim-migrate @ 6973]
Mark Doliner <mark@kingant.net>
parents: 6371
diff changeset
854 gaim_prefs_add_bool("/plugins/gtk/X11/notify/notify_send", TRUE);
059649ed25ed [gaim-migrate @ 6973]
Mark Doliner <mark@kingant.net>
parents: 6371
diff changeset
855 gaim_prefs_add_bool("/plugins/gtk/X11/notify/notify_switch", TRUE);
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
856 }
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5021
diff changeset
857
6063
5239a3b4ab33 [gaim-migrate @ 6513]
Nathan Walp <nwalp@pidgin.im>
parents: 5920
diff changeset
858 GAIM_INIT_PLUGIN(notify, init_plugin, info)