Mercurial > pidgin
annotate plugins/docklet/docklet.c @ 10087:9fdbfe832fac
[gaim-migrate @ 11098]
gaim_prefs_connect_callback() now takes a handle that can be used to disconnect
the callbacks later on. The callback id's remain, so people can still use those
if they want, although I'm not sure if there's any need for them any more.
I also switched the order for initializing the prefs subsystem and statically
compiled protocol plugins so that prpl prefs can work for statically compiled
prpls.
committer: Tailor Script <tailor@pidgin.im>
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Tue, 12 Oct 2004 00:49:19 +0000 |
parents | 2e225cd35615 |
children | 60db14d54914 |
rev | line source |
---|---|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
1 /* |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
2 * System tray icon (aka docklet) plugin for Gaim |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
3 * |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
4 * Copyright (C) 2002-3 Robert McQueen <robot101@debian.org> |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
5 * Copyright (C) 2003 Herman Bloggs <hermanator12002@yahoo.com> |
3510 | 6 * Inspired by a similar plugin by: |
7 * John (J5) Palmieri <johnp@martianrock.com> | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
8 * |
3510 | 9 * This program is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU General Public License as | |
11 * published by the Free Software Foundation; either version 2 of the | |
12 * License, or (at your option) any later version. | |
13 * | |
14 * This program is distributed in the hope that it will be useful, but | |
15 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
17 * General Public License for more details. | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
18 * |
3510 | 19 * You should have received a copy of the GNU General Public License |
20 * along with this program; if not, write to the Free Software | |
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
22 * 02111-1307, USA. | |
23 */ | |
24 | |
9962 | 25 /* TODO (in order of importance): |
26 * - unify the queue so we can have a global away without the dialog | |
27 * - handle and update tooltips to show your current accounts/queued messages? | |
28 * - show a count of queued messages in the unified queue | |
29 * - dernyi's account status menu in the right click | |
30 * - optional pop up notices when GNOME2's system-tray-applet supports it | |
31 */ | |
3510 | 32 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
33 #include "internal.h" |
9791 | 34 #include "gtkgaim.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
35 |
6179
16e384bb7fbf
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6138
diff
changeset
|
36 #include "core.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
37 #include "debug.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
38 #include "prefs.h" |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
39 #include "signals.h" |
4561 | 40 #include "sound.h" |
9943 | 41 #include "version.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
42 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
43 #include "gtkaccount.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
44 #include "gtkblist.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
45 #include "gtkft.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
46 #include "gtkplugin.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
47 #include "gtkprefs.h" |
5684 | 48 #include "gtksound.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
49 #include "gtkutils.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
50 #include "stock.h" |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
51 #include "docklet.h" |
3510 | 52 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
53 #include "gaim.h" |
9709 | 54 #include "gtkdialogs.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
55 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
56 /* globals */ |
3867 | 57 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
58 GaimPlugin *handle = NULL; |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
59 static struct docklet_ui_ops *ui_ops = NULL; |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
60 static enum docklet_status status = offline; |
9958 | 61 #if 0 /* XXX CUI */ |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
62 #ifdef _WIN32 |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
63 __declspec(dllimport) GSList *unread_message_queue; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
64 __declspec(dllimport) GSList *away_messages; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
65 __declspec(dllimport) struct away_message *awaymessage; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
66 __declspec(dllimport) GSList *message_queue; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
67 #endif |
9958 | 68 #endif |
3510 | 69 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
70 /* private functions */ |
3510 | 71 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
72 static void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
73 docklet_toggle_mute(GtkWidget *toggle, void *data) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
74 { |
10074 | 75 gaim_prefs_set_bool("/gaim/gtk/sound/mute", GTK_CHECK_MENU_ITEM(toggle)->active); |
3510 | 76 } |
77 | |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
78 static void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
79 docklet_set_bool(GtkWidget *widget, const char *key) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
80 { |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
81 gaim_prefs_set_bool(key, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); |
3510 | 82 } |
3570 | 83 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
84 static void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
85 docklet_auto_login() |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
86 { |
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
87 gaim_accounts_auto_login(GAIM_GTK_UI); |
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
88 } |
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
89 |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
90 #ifdef _WIN32 |
9958 | 91 #if 0 /* XXX NEW STATUS */ |
9813 | 92 /* This is workaround for a bug in windows GTK+. Clicking outside of the |
93 parent menu (including on a submenu-item) close the whole menu before | |
94 the "activate" event is thrown for the given submenu-item. Fixed by | |
95 replacing "activate" by "button-release-event". */ | |
96 static gboolean | |
97 docklet_menu_do_away_message(GtkWidget *widget, GdkEventButton *event, gpointer user_data) | |
98 { | |
99 do_away_message(widget, user_data); | |
100 return FALSE; | |
101 } | |
102 | |
103 static gboolean | |
104 docklet_menu_create_away_mess(GtkWidget *widget, GdkEventButton *event, gpointer user_data) | |
105 { | |
106 create_away_mess(widget, user_data); | |
107 return FALSE; | |
108 } | |
9958 | 109 #endif |
9813 | 110 |
6894
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
111 /* This is a workaround for a bug in windows GTK+. Clicking outside of the |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
112 menu does not get rid of it, so instead we get rid of it as soon as the |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
113 pointer leaves the menu. */ |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
114 static gboolean |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
115 docklet_menu_leave(GtkWidget *menu, GdkEventCrossing *event, void *data) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
116 { |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
117 if(event->detail == GDK_NOTIFY_ANCESTOR) { |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
118 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "menu leave-notify-event\n"); |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
119 gtk_menu_popdown(GTK_MENU(menu)); |
3570 | 120 } |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
121 return FALSE; |
3510 | 122 } |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
123 #endif |
3510 | 124 |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
125 static void docklet_menu() { |
3513 | 126 static GtkWidget *menu = NULL; |
3512 | 127 GtkWidget *entry; |
3510 | 128 |
129 if (menu) { | |
130 gtk_widget_destroy(menu); | |
131 } | |
132 | |
133 menu = gtk_menu_new(); | |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
134 |
4157 | 135 switch (status) { |
136 case offline: | |
137 case offline_connecting: | |
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
138 gaim_new_item_from_stock(menu, _("Auto-login"), GAIM_STOCK_SIGN_ON, G_CALLBACK(docklet_auto_login), NULL, 0, 0, NULL); |
4567 | 139 break; |
140 default: | |
9714 | 141 gaim_new_item_from_stock(menu, _("New Message..."), GAIM_STOCK_IM, G_CALLBACK(gaim_gtkdialogs_im), NULL, 0, 0, NULL); |
8940 | 142 gaim_new_item_from_stock(menu, _("Join A Chat..."), GAIM_STOCK_CHAT, G_CALLBACK(gaim_gtk_blist_joinchat_show), NULL, 0, 0, NULL); |
4567 | 143 break; |
144 } | |
145 | |
146 switch (status) { | |
147 case offline: | |
148 case offline_connecting: | |
4157 | 149 break; |
150 case online: | |
151 case online_connecting: | |
152 case online_pending: { | |
9958 | 153 #if 0 /* XXX NEW STATUS */ |
3510 | 154 GtkWidget *docklet_awaymenu; |
155 GSList *awy = NULL; | |
156 struct away_message *a = NULL; | |
157 | |
158 docklet_awaymenu = gtk_menu_new(); | |
159 awy = away_messages; | |
160 | |
161 while (awy) { | |
162 a = (struct away_message *)awy->data; | |
163 | |
164 entry = gtk_menu_item_new_with_label(a->name); | |
9813 | 165 #ifdef _WIN32 |
166 g_signal_connect(G_OBJECT(entry), "button-release-event", G_CALLBACK(docklet_menu_do_away_message), a); | |
167 #else | |
3554 | 168 g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(do_away_message), a); |
9813 | 169 #endif |
4635 | 170 gtk_menu_shell_append(GTK_MENU_SHELL(docklet_awaymenu), entry); |
3510 | 171 |
172 awy = g_slist_next(awy); | |
173 } | |
174 | |
4157 | 175 if (away_messages) |
176 gaim_separator(docklet_awaymenu); | |
3510 | 177 |
178 entry = gtk_menu_item_new_with_label(_("New...")); | |
9813 | 179 #ifdef _WIN32 |
180 g_signal_connect(G_OBJECT(entry), "button-release-event", G_CALLBACK(docklet_menu_create_away_mess), NULL); | |
181 #else | |
3554 | 182 g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(create_away_mess), NULL); |
9813 | 183 #endif |
4635 | 184 gtk_menu_shell_append(GTK_MENU_SHELL(docklet_awaymenu), entry); |
3510 | 185 |
186 entry = gtk_menu_item_new_with_label(_("Away")); | |
3512 | 187 gtk_menu_item_set_submenu(GTK_MENU_ITEM(entry), docklet_awaymenu); |
4635 | 188 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry); |
9958 | 189 #endif |
4157 | 190 } break; |
191 case away: | |
192 case away_pending: | |
9958 | 193 #if 0 /* XXX NEW STATUS */ |
3510 | 194 entry = gtk_menu_item_new_with_label(_("Back")); |
3554 | 195 g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(do_im_back), NULL); |
4635 | 196 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry); |
9958 | 197 #endif |
4157 | 198 break; |
3510 | 199 } |
200 | |
4567 | 201 gaim_separator(menu); |
202 | |
203 entry = gtk_check_menu_item_new_with_label(_("Mute Sounds")); | |
10074 | 204 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(entry), gaim_prefs_get_bool("/gaim/gtk/sound/mute")); |
205 if (!strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none")) | |
206 gtk_widget_set_sensitive(GTK_WIDGET(entry), FALSE); | |
4567 | 207 g_signal_connect(G_OBJECT(entry), "toggled", G_CALLBACK(docklet_toggle_mute), NULL); |
4635 | 208 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry); |
4567 | 209 |
5669 | 210 gaim_new_item_from_stock(menu, _("File Transfers"), GAIM_STOCK_FILE_TRANSFER, G_CALLBACK(gaim_show_xfer_dialog), NULL, 0, 0, NULL); |
6138 | 211 gaim_new_item_from_stock(menu, _("Accounts"), GAIM_STOCK_ACCOUNTS, G_CALLBACK(gaim_gtk_accounts_window_show), NULL, 0, 0, NULL); |
5669 | 212 gaim_new_item_from_stock(menu, _("Preferences"), GTK_STOCK_PREFERENCES, G_CALLBACK(gaim_gtk_prefs_show), NULL, 0, 0, NULL); |
4567 | 213 |
214 gaim_separator(menu); | |
215 | |
4157 | 216 switch (status) { |
217 case offline: | |
218 case offline_connecting: | |
219 break; | |
220 default: | |
5607 | 221 gaim_new_item_from_stock(menu, _("Signoff"), GTK_STOCK_CLOSE, G_CALLBACK(gaim_connections_disconnect_all), NULL, 0, 0, 0); |
4157 | 222 break; |
223 } | |
224 | |
9994 | 225 gaim_new_item_from_stock(menu, _("Quit"), GTK_STOCK_QUIT, G_CALLBACK(gaim_core_quit), NULL, 0, 0, NULL); |
3510 | 226 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
227 #ifdef _WIN32 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
228 g_signal_connect(menu, "leave-notify-event", G_CALLBACK(docklet_menu_leave), NULL); |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
229 #endif |
3510 | 230 gtk_widget_show_all(menu); |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
231 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time()); |
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
232 } |
3510 | 233 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
234 static gboolean |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
235 docklet_blink_icon() |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
236 { |
6211
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
237 static gboolean blinked = FALSE; |
6910 | 238 gboolean ret = FALSE; /* by default, don't keep blinking */ |
6211
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
239 |
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
240 blinked = !blinked; |
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
241 |
6894
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
242 switch (status) { |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
243 case online_pending: |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
244 case away_pending: |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
245 if (blinked) { |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
246 if (ui_ops && ui_ops->blank_icon) |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
247 ui_ops->blank_icon(); |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
248 } else { |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
249 if (ui_ops && ui_ops->update_icon) |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
250 ui_ops->update_icon(status); |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
251 } |
6910 | 252 ret = TRUE; /* keep blinking */ |
6894
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
253 break; |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
254 case offline: |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
255 case offline_connecting: |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
256 case online: |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
257 case online_connecting: |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
258 case away: |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
259 blinked = FALSE; |
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
260 break; |
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
261 } |
6906 | 262 |
6910 | 263 return ret; |
3510 | 264 } |
265 | |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
266 static gboolean |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
267 docklet_update_status() |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
268 { |
3510 | 269 enum docklet_status oldstatus; |
270 | |
271 oldstatus = status; | |
272 | |
5584 | 273 if (gaim_connections_get_all()) { |
9958 | 274 #if 0 /* XXX NEW STATUS */ |
3517 | 275 if (unread_message_queue) { |
4157 | 276 status = online_pending; |
3517 | 277 } else if (awaymessage) { |
3510 | 278 if (message_queue) { |
279 status = away_pending; | |
280 } else { | |
281 status = away; | |
282 } | |
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
283 } else if (gaim_connections_get_connecting()) { |
9958 | 284 #else |
285 if (gaim_connections_get_connecting()) { | |
286 #endif | |
4157 | 287 status = online_connecting; |
3510 | 288 } else { |
289 status = online; | |
290 } | |
291 } else { | |
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
292 if (gaim_connections_get_connecting()) { |
4157 | 293 status = offline_connecting; |
3517 | 294 } else { |
295 status = offline; | |
296 } | |
3510 | 297 } |
298 | |
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
299 /* update the icon if we changed status */ |
3510 | 300 if (status != oldstatus) { |
6894
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
301 if (ui_ops && ui_ops->update_icon) |
6211
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
302 ui_ops->update_icon(status); |
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
303 |
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
304 /* and schedule the blinker function if messages are pending */ |
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
305 if (status == online_pending || status == away_pending) { |
6310 | 306 g_timeout_add(500, docklet_blink_icon, &handle); |
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
307 } |
3510 | 308 } |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
309 |
4093 | 310 return FALSE; /* for when we're called by the glib idle handler */ |
3510 | 311 } |
312 | |
9958 | 313 #if 0 /* XXX CUI */ |
314 static void | |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
315 docklet_flush_queue() |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
316 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
317 if (unread_message_queue) { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
318 purge_away_queue(&unread_message_queue); |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
319 } |
3510 | 320 } |
9958 | 321 #endif |
3510 | 322 |
9958 | 323 static void |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
324 docklet_remove_callbacks() |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
325 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
326 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "removing callbacks"); |
3510 | 327 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
328 while (g_source_remove_by_user_data(&handle)) { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
329 gaim_debug(GAIM_DEBUG_INFO, NULL, "."); |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
330 } |
3510 | 331 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
332 gaim_debug(GAIM_DEBUG_INFO, NULL, "\n"); |
3510 | 333 } |
334 | |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
335 /* public code */ |
3510 | 336 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
337 void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
338 docklet_clicked(int button_type) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
339 { |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
340 switch (button_type) { |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
341 case 1: |
9958 | 342 #if 0 /* XXX CUI */ |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
343 if (unread_message_queue) { |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
344 docklet_flush_queue(); |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
345 } else { |
9958 | 346 #endif |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
347 gaim_gtk_blist_docklet_toggle(); |
9958 | 348 #if 0 /* XXX CUI */ |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
349 } |
9958 | 350 #endif |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
351 break; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
352 case 2: |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
353 switch (status) { |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
354 case offline: |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
355 case offline_connecting: |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
356 docklet_auto_login(); |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
357 break; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
358 default: |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
359 break; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
360 } |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
361 break; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
362 case 3: |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
363 docklet_menu(); |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
364 break; |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
365 } |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
366 } |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
367 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
368 void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
369 docklet_embedded() |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
370 { |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
371 gaim_gtk_blist_docklet_add(); |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
372 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
373 docklet_update_status(); |
6894
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
374 if (ui_ops && ui_ops->update_icon) |
6211
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
375 ui_ops->update_icon(status); |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
376 } |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
377 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
378 void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
379 docklet_remove(gboolean visible) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
380 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
381 if (visible) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
382 gaim_gtk_blist_docklet_remove(); |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
383 |
9958 | 384 #if 0 /* XXX CUI */ |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
385 docklet_flush_queue(); |
9958 | 386 #endif |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
387 } |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
388 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
389 void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
390 docklet_set_ui_ops(struct docklet_ui_ops *ops) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
391 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
392 ui_ops = ops; |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
393 } |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
394 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
395 /* callbacks */ |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
396 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
397 static void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
398 gaim_signon(GaimConnection *gc, void *data) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
399 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
400 docklet_update_status(); |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
401 } |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
402 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
403 static void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
404 gaim_signoff(GaimConnection *gc, void *data) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
405 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
406 /* do this when idle so that if the prpl was connecting |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
407 and was cancelled, we register that connecting_count |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
408 has returned to 0 */ |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
409 /* no longer necessary because Chip decided that us plugins |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
410 didn't need to know if an account was connecting or not |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
411 g_idle_add(docklet_update_status, &docklet); */ |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
412 docklet_update_status(); |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
413 } |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
414 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
415 static void |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
416 gaim_connecting(GaimAccount *account, void *data) |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
417 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
418 docklet_update_status(); |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
419 } |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
420 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
421 static void |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
422 gaim_away(GaimAccount *account, char *state, char *message, void *data) |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
423 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
424 /* we only support global away. this is the way it is, ok? */ |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
425 docklet_update_status(); |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
426 } |
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
427 |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
428 static gboolean |
8999 | 429 gaim_conv_im_recv(GaimAccount *account, char *sender, |
430 char *message, int flags, void *data) | |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
431 { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
432 /* if message queuing while away is enabled, this event could be the first |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
433 message so we need to see if the status (and hence icon) needs changing. |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
434 do this when idle so that all message processing is completed, queuing |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
435 etc, before we run. */ |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
436 g_idle_add(docklet_update_status, &handle); |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
437 |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
438 return FALSE; |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
439 } |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
440 |
6211
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
441 static void |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
442 gaim_new_conversation(GaimConversation *conv, void *data) |
6211
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
443 { |
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
444 /* queue a callback here so if the queue is being |
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
445 flushed, we stop flashing. thanks javabsp. */ |
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
446 g_idle_add(docklet_update_status, &handle); |
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
447 } |
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
448 |
9893 | 449 /* We need this because the blist purge_away_queue cb won't be called before the |
450 plugin is unloaded, when quitting */ | |
451 static void gaim_quit_cb() { | |
452 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "dealing with queued messages on exit\n"); | |
9958 | 453 #if 0 /* XXX CUI */ |
9893 | 454 docklet_flush_queue(); |
9958 | 455 #endif |
9893 | 456 } |
457 | |
458 | |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
459 /* static void gaim_buddy_signon(GaimConnection *gc, char *who, void *data) { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
460 } |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
461 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
462 static void gaim_buddy_signoff(GaimConnection *gc, char *who, void *data) { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
463 } |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
464 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
465 static void gaim_buddy_away(GaimConnection *gc, char *who, void *data) { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
466 } |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
467 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
468 static void gaim_buddy_back(GaimConnection *gc, char *who, void *data) { |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
469 } */ |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
470 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
471 /* plugin glue */ |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
472 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
473 #define DOCKLET_PLUGIN_ID "gtk-docklet" |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
474 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
475 static gboolean |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
476 plugin_load(GaimPlugin *plugin) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
477 { |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
478 void *conn_handle = gaim_connections_get_handle(); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
479 void *conv_handle = gaim_conversations_get_handle(); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
480 void *accounts_handle = gaim_accounts_get_handle(); |
9893 | 481 void *core_handle = gaim_get_core(); |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
482 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
483 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "plugin loaded\n"); |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
484 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
485 handle = plugin; |
6077
b2c8e08508af
[gaim-migrate @ 6536]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
486 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
487 docklet_ui_init(); |
6894
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
488 if (ui_ops && ui_ops->create) |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
489 ui_ops->create(); |
3510 | 490 |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
491 gaim_signal_connect(conn_handle, "signed-on", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
492 plugin, GAIM_CALLBACK(gaim_signon), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
493 gaim_signal_connect(conn_handle, "signed-off", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
494 plugin, GAIM_CALLBACK(gaim_signoff), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
495 gaim_signal_connect(accounts_handle, "account-connecting", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
496 plugin, GAIM_CALLBACK(gaim_connecting), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
497 gaim_signal_connect(accounts_handle, "account-away", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
498 plugin, GAIM_CALLBACK(gaim_away), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
499 gaim_signal_connect(conv_handle, "received-im-msg", |
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
6979
diff
changeset
|
500 plugin, GAIM_CALLBACK(gaim_conv_im_recv), NULL); |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
501 gaim_signal_connect(conv_handle, "conversation-created", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
502 plugin, GAIM_CALLBACK(gaim_new_conversation), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
503 |
9893 | 504 gaim_signal_connect(core_handle, "quitting", |
505 plugin, GAIM_CALLBACK(gaim_quit_cb), NULL); | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
506 /* gaim_signal_connect(plugin, event_buddy_signon, gaim_buddy_signon, NULL); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
507 gaim_signal_connect(plugin, event_buddy_signoff, gaim_buddy_signoff, NULL); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
508 gaim_signal_connect(plugin, event_buddy_away, gaim_buddy_away, NULL); |
6211
9fd7716068d9
[gaim-migrate @ 6697]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6208
diff
changeset
|
509 gaim_signal_connect(plugin, event_buddy_back, gaim_buddy_back, NULL); */ |
3510 | 510 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
511 return TRUE; |
3510 | 512 } |
513 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
514 static gboolean |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
515 plugin_unload(GaimPlugin *plugin) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
516 { |
6894
c2fb9192377b
[gaim-migrate @ 7441]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6485
diff
changeset
|
517 if (ui_ops && ui_ops->destroy) |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
518 ui_ops->destroy(); |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
519 |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
520 docklet_remove_callbacks(); |
4567 | 521 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
522 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "plugin unloaded\n"); |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
523 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
524 return TRUE; |
3554 | 525 } |
526 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
527 static GtkWidget * |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
528 plugin_config_frame(GaimPlugin *plugin) |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
529 { |
3570 | 530 GtkWidget *frame; |
531 GtkWidget *vbox, *hbox; | |
532 GtkWidget *toggle; | |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
533 static const char *qmpref = "/plugins/gtk/docklet/queue_messages"; |
3517 | 534 |
3570 | 535 frame = gtk_vbox_new(FALSE, 18); |
536 gtk_container_set_border_width(GTK_CONTAINER(frame), 12); | |
537 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5234
diff
changeset
|
538 vbox = gaim_gtk_make_frame(frame, _("Tray Icon Configuration")); |
3570 | 539 hbox = gtk_hbox_new(FALSE, 18); |
540 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
3517 | 541 |
4093 | 542 toggle = gtk_check_button_new_with_mnemonic(_("_Hide new messages until tray icon is clicked")); |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
543 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), gaim_prefs_get_bool(qmpref)); |
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
544 g_signal_connect(G_OBJECT(toggle), "clicked", G_CALLBACK(docklet_set_bool), (void *)qmpref); |
3570 | 545 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0); |
546 | |
547 gtk_widget_show_all(frame); | |
548 return frame; | |
3517 | 549 } |
3570 | 550 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
551 static GaimGtkPluginUiInfo ui_info = |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
552 { |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
553 plugin_config_frame |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
554 }; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
555 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
556 static GaimPluginInfo info = |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
557 { |
9943 | 558 GAIM_PLUGIN_MAGIC, |
559 GAIM_MAJOR_VERSION, | |
560 GAIM_MINOR_VERSION, | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
561 GAIM_PLUGIN_STANDARD, /**< type */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
562 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
563 0, /**< flags */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
564 NULL, /**< dependencies */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
565 GAIM_PRIORITY_DEFAULT, /**< priority */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
566 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
567 DOCKLET_PLUGIN_ID, /**< id */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
568 N_("System Tray Icon"), /**< name */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
569 VERSION, /**< version */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
570 /** summary */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
571 N_("Displays an icon for Gaim in the system tray."), |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
572 /** description */ |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
573 N_("Displays a system tray icon (in GNOME, KDE or Windows for example) " |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
574 "to show the current status of Gaim, allow fast access to commonly " |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
575 "used functions, and to toggle display of the buddy list or login " |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
576 "window. Also allows messages to be queued until the icon is " |
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
577 "clicked, similar to ICQ."), |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
578 "Robert McQueen <robot101@debian.org>", /**< author */ |
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6310
diff
changeset
|
579 GAIM_WEBSITE, /**< homepage */ |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
580 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
581 plugin_load, /**< load */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
582 plugin_unload, /**< unload */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
583 NULL, /**< destroy */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
584 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
585 &ui_info, /**< ui_info */ |
8993 | 586 NULL, /**< extra_info */ |
587 NULL, | |
588 NULL | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
589 }; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
590 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
591 static void |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
592 plugin_init(GaimPlugin *plugin) |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
593 { |
6226
6b95da075de9
[gaim-migrate @ 6719]
Christian Hammond <chipx86@chipx86.com>
parents:
6211
diff
changeset
|
594 gaim_prefs_add_none("/plugins/gtk/docklet"); |
6b95da075de9
[gaim-migrate @ 6719]
Christian Hammond <chipx86@chipx86.com>
parents:
6211
diff
changeset
|
595 gaim_prefs_add_bool("/plugins/gtk/docklet/queue_messages", FALSE); |
3551 | 596 } |
3510 | 597 |
6208
3e3ee3cba192
[gaim-migrate @ 6694]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6179
diff
changeset
|
598 GAIM_INIT_PLUGIN(docklet, plugin_init, info) |