Mercurial > pidgin
annotate plugins/docklet/docklet.c @ 5943:a4f2aba0848d
[gaim-migrate @ 6384]
This should fix corruption in the blist, accounts, and pounces when some
protocol plugins cannot load. Some parts of gaim now use the new unique
Plugin or Protocol Plugin IDs, while some still use the old protocol
numbers. Accounts kind of used both, and when prpls were missing, it had
trouble finding accounts. It would find the names, even without mapping the
protocol numbers to IDs, and any duplicate accounts would get nuked. That
would then affect pounce saving. Anyhow, long story short (well, it's
already long, too late for that), this should fix all that mess. And
introduce new mess, but hopefully temporary mess.
committer: Tailor Script <tailor@pidgin.im>
| author | Christian Hammond <chipx86@chipx86.com> |
|---|---|
| date | Mon, 23 Jun 2003 02:00:15 +0000 |
| parents | 7d385de2f9cd |
| children | 5239a3b4ab33 |
| rev | line source |
|---|---|
| 4093 | 1 /* System tray icon (aka docklet) plugin for Gaim |
| 3510 | 2 * Copyright (C) 2002 Robert McQueen <robot101@debian.org> |
| 3 * Inspired by a similar plugin by: | |
| 4 * John (J5) Palmieri <johnp@martianrock.com> | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or | |
| 7 * modify it under the terms of the GNU General Public License as | |
| 8 * published by the Free Software Foundation; either version 2 of the | |
| 9 * License, or (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, but | |
| 12 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 14 * General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
| 19 * 02111-1307, USA. | |
| 20 */ | |
| 21 | |
| 22 /* todo (in order of importance): | |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
23 - unify the queue so we can have a global away without the dialog |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
24 - handle and update tooltips to show your current accounts/queued messages? |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
25 - show a count of queued messages in the unified queue |
| 3510 | 26 - dernyi's account status menu in the right click |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
27 - optional pop up notices when GNOME2's system-tray-applet supports it */ |
| 3510 | 28 |
| 29 /* includes */ | |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
30 #include "internal.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
31 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
32 #include "debug.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
33 #include "prefs.h" |
| 4561 | 34 #include "sound.h" |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
35 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
36 #include "gtkaccount.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
37 #include "gtkblist.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
38 #include "gtkft.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
39 #include "gtkplugin.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
40 #include "gtkprefs.h" |
| 5684 | 41 #include "gtksound.h" |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
42 #include "gtkutils.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
43 #include "stock.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
44 |
| 3510 | 45 #include "eggtrayicon.h" |
| 46 | |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
47 #include "gaim.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
48 #include "ui.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
49 |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
50 #define DOCKLET_PLUGIN_ID "gtk-docklet" |
| 3867 | 51 |
| 3510 | 52 /* types */ |
| 53 enum docklet_status { | |
| 4157 | 54 offline, |
| 55 offline_connecting, | |
| 3510 | 56 online, |
| 4157 | 57 online_connecting, |
| 58 online_pending, | |
| 3510 | 59 away, |
| 4157 | 60 away_pending |
| 3510 | 61 }; |
| 62 | |
| 63 /* functions */ | |
| 4093 | 64 static gboolean docklet_create(); |
| 4157 | 65 static gboolean docklet_update_status(); |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
66 static gboolean plugin_unload(GaimPlugin *plugin); |
| 3510 | 67 |
| 68 /* globals */ | |
| 3513 | 69 static EggTrayIcon *docklet = NULL; |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
70 static GtkWidget *image = NULL; |
| 3510 | 71 static enum docklet_status status; |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
72 static enum docklet_status icon; |
| 3510 | 73 |
| 3554 | 74 static void docklet_toggle_mute(GtkWidget *toggle, void *data) { |
| 5684 | 75 gaim_gtk_sound_set_mute(GTK_CHECK_MENU_ITEM(toggle)->active); |
| 3510 | 76 } |
| 77 | |
|
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
78 static void docklet_set_bool(GtkWidget *widget, const char *key) { |
|
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
79 gaim_prefs_set_bool(key, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); |
| 3510 | 80 } |
| 3570 | 81 |
|
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
82 static void docklet_auto_login() { |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
83 gaim_accounts_auto_login(GAIM_GTK_UI); |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
84 } |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
85 |
| 3554 | 86 static void docklet_flush_queue() { |
| 3570 | 87 if (unread_message_queue) { |
| 4274 | 88 purge_away_queue(&unread_message_queue); |
| 3570 | 89 } |
| 3510 | 90 } |
| 91 | |
| 92 static void docklet_menu(GdkEventButton *event) { | |
| 3513 | 93 static GtkWidget *menu = NULL; |
| 3512 | 94 GtkWidget *entry; |
| 3510 | 95 |
| 96 if (menu) { | |
| 97 gtk_widget_destroy(menu); | |
| 98 } | |
| 99 | |
| 100 menu = gtk_menu_new(); | |
| 101 | |
| 4157 | 102 switch (status) { |
| 103 case offline: | |
| 104 case offline_connecting: | |
|
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
105 gaim_new_item_from_stock(menu, _("Auto-login"), GAIM_STOCK_SIGN_ON, G_CALLBACK(docklet_auto_login), NULL, 0, 0, NULL); |
| 4567 | 106 break; |
| 107 default: | |
| 5024 | 108 gaim_new_item_from_stock(menu, _("New Message.."), GAIM_STOCK_IM, G_CALLBACK(show_im_dialog), NULL, 0, 0, NULL); |
| 109 gaim_new_item_from_stock(menu, _("Join A Chat..."), GAIM_STOCK_CHAT, G_CALLBACK(join_chat), NULL, 0, 0, NULL); | |
| 4567 | 110 break; |
| 111 } | |
| 112 | |
| 113 switch (status) { | |
| 114 case offline: | |
| 115 case offline_connecting: | |
| 4157 | 116 break; |
| 117 case online: | |
| 118 case online_connecting: | |
| 119 case online_pending: { | |
| 3510 | 120 GtkWidget *docklet_awaymenu; |
| 121 GSList *awy = NULL; | |
| 122 struct away_message *a = NULL; | |
| 123 | |
| 124 docklet_awaymenu = gtk_menu_new(); | |
| 125 awy = away_messages; | |
| 126 | |
| 127 while (awy) { | |
| 128 a = (struct away_message *)awy->data; | |
| 129 | |
| 130 entry = gtk_menu_item_new_with_label(a->name); | |
| 3554 | 131 g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(do_away_message), a); |
| 4635 | 132 gtk_menu_shell_append(GTK_MENU_SHELL(docklet_awaymenu), entry); |
| 3510 | 133 |
| 134 awy = g_slist_next(awy); | |
| 135 } | |
| 136 | |
| 4157 | 137 if (away_messages) |
| 138 gaim_separator(docklet_awaymenu); | |
| 3510 | 139 |
| 140 entry = gtk_menu_item_new_with_label(_("New...")); | |
| 3554 | 141 g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(create_away_mess), NULL); |
| 4635 | 142 gtk_menu_shell_append(GTK_MENU_SHELL(docklet_awaymenu), entry); |
| 3510 | 143 |
| 144 entry = gtk_menu_item_new_with_label(_("Away")); | |
| 3512 | 145 gtk_menu_item_set_submenu(GTK_MENU_ITEM(entry), docklet_awaymenu); |
| 4635 | 146 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry); |
| 4157 | 147 } break; |
| 148 case away: | |
| 149 case away_pending: | |
| 3510 | 150 entry = gtk_menu_item_new_with_label(_("Back")); |
| 3554 | 151 g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(do_im_back), NULL); |
| 4635 | 152 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry); |
| 4157 | 153 break; |
| 3510 | 154 } |
| 155 | |
| 4567 | 156 gaim_separator(menu); |
| 157 | |
| 158 entry = gtk_check_menu_item_new_with_label(_("Mute Sounds")); | |
| 5684 | 159 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(entry), gaim_gtk_sound_get_mute()); |
| 4567 | 160 g_signal_connect(G_OBJECT(entry), "toggled", G_CALLBACK(docklet_toggle_mute), NULL); |
| 4635 | 161 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry); |
| 4567 | 162 |
| 5669 | 163 gaim_new_item_from_stock(menu, _("File Transfers"), GAIM_STOCK_FILE_TRANSFER, G_CALLBACK(gaim_show_xfer_dialog), NULL, 0, 0, NULL); |
| 164 gaim_new_item_from_stock(menu, _("Accounts"), GAIM_STOCK_ACCOUNTS, G_CALLBACK(gaim_gtk_account_dialog_show), NULL, 0, 0, NULL); | |
| 165 gaim_new_item_from_stock(menu, _("Preferences"), GTK_STOCK_PREFERENCES, G_CALLBACK(gaim_gtk_prefs_show), NULL, 0, 0, NULL); | |
| 4567 | 166 |
| 167 gaim_separator(menu); | |
| 168 | |
| 4157 | 169 switch (status) { |
| 170 case offline: | |
| 171 case offline_connecting: | |
| 172 break; | |
| 173 default: | |
| 5607 | 174 gaim_new_item_from_stock(menu, _("Signoff"), GTK_STOCK_CLOSE, G_CALLBACK(gaim_connections_disconnect_all), NULL, 0, 0, 0); |
| 4157 | 175 break; |
| 176 } | |
| 177 | |
| 178 gaim_new_item_from_stock(menu, _("Quit"), GTK_STOCK_QUIT, G_CALLBACK(do_quit), NULL, 0, 0, 0); | |
| 3510 | 179 |
| 180 gtk_widget_show_all(menu); | |
| 181 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); | |
| 182 } | |
| 183 | |
| 184 static void docklet_clicked(GtkWidget *button, GdkEventButton *event, void *data) { | |
| 3939 | 185 if (event->type != GDK_BUTTON_PRESS) |
| 186 return; | |
| 187 | |
| 3510 | 188 switch (event->button) { |
| 189 case 1: | |
| 3517 | 190 if (unread_message_queue) { |
| 3570 | 191 docklet_flush_queue(); |
| 3517 | 192 docklet_update_status(); |
| 3570 | 193 } else { |
| 4698 | 194 gaim_gtk_blist_docklet_toggle(); |
| 3554 | 195 } |
| 3510 | 196 break; |
| 197 case 2: | |
|
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
198 switch (status) { |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
199 case offline: |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
200 case offline_connecting: |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
201 docklet_auto_login(); |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
202 break; |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
203 default: |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
204 break; |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
205 } |
| 3510 | 206 break; |
| 207 case 3: | |
| 208 docklet_menu(event); | |
| 209 break; | |
| 210 } | |
| 211 } | |
| 212 | |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
213 static void docklet_update_icon() { |
|
4250
3b884e35e6b5
[gaim-migrate @ 4500]
Christian Hammond <chipx86@chipx86.com>
parents:
4157
diff
changeset
|
214 const gchar *icon_name = NULL; |
| 3510 | 215 |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
216 switch (icon) { |
| 4157 | 217 case offline: |
| 5024 | 218 icon_name = GAIM_STOCK_ICON_OFFLINE; |
| 4157 | 219 break; |
| 220 case offline_connecting: | |
| 221 case online_connecting: | |
| 5024 | 222 icon_name = GAIM_STOCK_ICON_CONNECT; |
| 4157 | 223 break; |
| 3510 | 224 case online: |
| 5024 | 225 icon_name = GAIM_STOCK_ICON_ONLINE; |
| 3510 | 226 break; |
| 4157 | 227 case online_pending: |
| 5024 | 228 icon_name = GAIM_STOCK_ICON_ONLINE_MSG; |
| 4157 | 229 break; |
| 3510 | 230 case away: |
| 5024 | 231 icon_name = GAIM_STOCK_ICON_AWAY; |
| 3510 | 232 break; |
| 233 case away_pending: | |
| 5024 | 234 icon_name = GAIM_STOCK_ICON_AWAY_MSG; |
| 3510 | 235 break; |
| 236 } | |
| 237 | |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
238 gtk_image_set_from_stock(GTK_IMAGE(image), icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
239 } |
| 3510 | 240 |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
241 static gboolean docklet_blink_icon() { |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
242 if (status == online_pending) { |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
243 if (status == icon) { |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
244 /* last icon was the right one... let's change it */ |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
245 icon = online; |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
246 } else { |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
247 /* last icon was the wrong one, change it back */ |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
248 icon = online_pending; |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
249 } |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
250 } else if (status == away_pending) { |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
251 if (status == icon) { |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
252 /* last icon was the right one... let's change it */ |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
253 icon = away; |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
254 } else { |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
255 /* last icon was the wrong one, change it back */ |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
256 icon = away_pending; |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
257 } |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
258 } else { |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
259 /* no messages, stop blinking */ |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
260 return FALSE; |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
261 } |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
262 |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
263 docklet_update_icon(); |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
264 |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
265 return TRUE; /* keep blinking */ |
| 3510 | 266 } |
| 267 | |
| 4157 | 268 static gboolean docklet_update_status() { |
| 3510 | 269 enum docklet_status oldstatus; |
| 270 | |
| 271 oldstatus = status; | |
| 272 | |
| 5584 | 273 if (gaim_connections_get_all()) { |
| 3517 | 274 if (unread_message_queue) { |
| 4157 | 275 status = online_pending; |
| 3517 | 276 } else if (awaymessage) { |
| 3510 | 277 if (message_queue) { |
| 278 status = away_pending; | |
| 279 } else { | |
| 280 status = away; | |
| 281 } | |
|
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
282 } else if (gaim_connections_get_connecting()) { |
| 4157 | 283 status = online_connecting; |
| 3510 | 284 } else { |
| 285 status = online; | |
| 286 } | |
| 287 } else { | |
|
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
288 if (gaim_connections_get_connecting()) { |
| 4157 | 289 status = offline_connecting; |
| 3517 | 290 } else { |
| 291 status = offline; | |
| 292 } | |
| 3510 | 293 } |
| 294 | |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
295 /* update the icon if we changed status */ |
| 3510 | 296 if (status != oldstatus) { |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
297 icon = status; |
| 3510 | 298 docklet_update_icon(); |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
299 |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
300 /* and schedule the blinker function if messages are pending */ |
|
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
301 if (status == online_pending || status == away_pending) { |
| 4274 | 302 g_timeout_add(500, docklet_blink_icon, &docklet); |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
303 } |
| 3510 | 304 } |
| 4157 | 305 |
| 306 return FALSE; /* for when we're called by the glib idle handler */ | |
| 3510 | 307 } |
| 308 | |
| 3554 | 309 static void docklet_embedded(GtkWidget *widget, void *data) { |
|
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
310 gaim_debug(GAIM_DEBUG_INFO, "docklet", "Tray Icon: embedded\n"); |
| 4698 | 311 gaim_gtk_blist_docklet_add(); |
| 3554 | 312 } |
| 313 | |
| 4274 | 314 static void docklet_remove_callbacks() { |
|
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
315 gaim_debug(GAIM_DEBUG_INFO, "docklet", "Tray Icon: removing callbacks"); |
| 4274 | 316 |
| 317 while (g_source_remove_by_user_data(&docklet)) { | |
|
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
318 gaim_debug(GAIM_DEBUG_INFO, NULL, "."); |
| 4274 | 319 } |
| 320 | |
|
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
321 gaim_debug(GAIM_DEBUG_INFO, NULL, "\n"); |
| 4274 | 322 } |
| 323 | |
| 3554 | 324 static void docklet_destroyed(GtkWidget *widget, void *data) { |
|
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
325 gaim_debug(GAIM_DEBUG_INFO, "docklet", "Tray Icon: destroyed\n"); |
| 4093 | 326 |
| 4698 | 327 gaim_gtk_blist_docklet_remove(); |
| 4093 | 328 |
| 3570 | 329 docklet_flush_queue(); |
| 4093 | 330 |
| 4274 | 331 docklet_remove_callbacks(); |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
332 |
| 4093 | 333 g_object_unref(G_OBJECT(docklet)); |
| 334 docklet = NULL; | |
| 335 | |
| 4274 | 336 g_idle_add(docklet_create, &docklet); |
| 3554 | 337 } |
| 338 | |
| 4274 | 339 static gboolean docklet_create() { |
| 3510 | 340 GtkWidget *box; |
| 341 | |
| 3570 | 342 if (docklet) { |
| 4093 | 343 /* if this is being called when a tray icon exists, it's because |
| 344 something messed up. try destroying it before we proceed, | |
| 345 although docklet_refcount may be all hosed. hopefully won't happen. */ | |
|
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
346 gaim_debug(GAIM_DEBUG_WARNING, "docklet", |
|
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
347 "Tray Icon: trying to create icon but it already exists?\n"); |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
348 plugin_unload(NULL); |
| 3510 | 349 } |
| 350 | |
| 351 docklet = egg_tray_icon_new("Gaim"); | |
| 352 box = gtk_event_box_new(); | |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
353 image = gtk_image_new(); |
| 3510 | 354 |
| 3554 | 355 g_signal_connect(G_OBJECT(docklet), "embedded", G_CALLBACK(docklet_embedded), NULL); |
| 356 g_signal_connect(G_OBJECT(docklet), "destroy", G_CALLBACK(docklet_destroyed), NULL); | |
| 357 g_signal_connect(G_OBJECT(box), "button-press-event", G_CALLBACK(docklet_clicked), NULL); | |
| 3510 | 358 |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
359 gtk_container_add(GTK_CONTAINER(box), image); |
| 3510 | 360 gtk_container_add(GTK_CONTAINER(docklet), box); |
| 361 gtk_widget_show_all(GTK_WIDGET(docklet)); | |
| 362 | |
| 3554 | 363 /* ref the docklet before we bandy it about the place */ |
| 364 g_object_ref(G_OBJECT(docklet)); | |
| 3510 | 365 docklet_update_status(); |
| 366 docklet_update_icon(); | |
| 367 | |
|
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
368 gaim_debug(GAIM_DEBUG_INFO, "docklet", "Tray Icon: created\n"); |
| 4093 | 369 |
| 370 return FALSE; /* for when we're called by the glib idle handler */ | |
| 3510 | 371 } |
| 372 | |
| 5584 | 373 static void gaim_signon(GaimConnection *gc, void *data) { |
| 3510 | 374 docklet_update_status(); |
| 375 } | |
| 376 | |
| 5584 | 377 static void gaim_signoff(GaimConnection *gc, void *data) { |
| 4157 | 378 /* do this when idle so that if the prpl was connecting |
| 379 and was cancelled, we register that connecting_count | |
| 380 has returned to 0 */ | |
|
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
381 /* no longer necessary because Chip decided that us plugins |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
382 * didn't need to know if an account was connecting or not |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
383 * g_idle_add(docklet_update_status, &docklet); */ |
|
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
384 docklet_update_status(); |
| 3510 | 385 } |
| 386 | |
| 5584 | 387 static void gaim_connecting(GaimAccount *account, void *data) { |
| 3510 | 388 docklet_update_status(); |
| 389 } | |
| 390 | |
| 5584 | 391 static void gaim_away(GaimConnection *gc, char *state, char *message, void *data) { |
| 3510 | 392 /* we only support global away. this is the way it is, ok? */ |
| 393 docklet_update_status(); | |
| 394 } | |
| 395 | |
| 5584 | 396 static void gaim_im_recv(GaimConnection *gc, char **who, char **what, void *data) { |
| 3510 | 397 /* if message queuing while away is enabled, this event could be the first |
| 4274 | 398 message so we need to see if the status (and hence icon) needs changing. |
| 399 do this when idle so that all message processing is completed, queuing | |
| 400 etc, before we run. */ | |
| 401 g_idle_add(docklet_update_status, &docklet); | |
| 3510 | 402 } |
| 403 | |
| 5584 | 404 /* static void gaim_buddy_signon(GaimConnection *gc, char *who, void *data) { |
| 3510 | 405 } |
| 406 | |
| 5584 | 407 static void gaim_buddy_signoff(GaimConnection *gc, char *who, void *data) { |
| 3510 | 408 } |
| 409 | |
| 5584 | 410 static void gaim_buddy_away(GaimConnection *gc, char *who, void *data) { |
| 3510 | 411 } |
| 412 | |
| 5584 | 413 static void gaim_buddy_back(GaimConnection *gc, char *who, void *data) { |
| 3510 | 414 } |
| 415 | |
| 416 static void gaim_new_conversation(char *who, void *data) { | |
| 3570 | 417 } */ |
| 3510 | 418 |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
419 static gboolean |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
420 plugin_load(GaimPlugin *plugin) |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
421 { |
|
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
422 gaim_prefs_add_none("/plugins/gtk/docklet"); |
|
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
423 gaim_prefs_add_bool("/plugins/gtk/docklet/queue_messages", FALSE); |
|
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
424 |
| 4093 | 425 docklet_create(NULL); |
| 3510 | 426 |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
427 gaim_signal_connect(plugin, event_signon, gaim_signon, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
428 gaim_signal_connect(plugin, event_signoff, gaim_signoff, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
429 gaim_signal_connect(plugin, event_connecting, gaim_connecting, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
430 gaim_signal_connect(plugin, event_away, gaim_away, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
431 gaim_signal_connect(plugin, event_im_recv, gaim_im_recv, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
432 /* gaim_signal_connect(plugin, event_buddy_signon, gaim_buddy_signon, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
433 gaim_signal_connect(plugin, event_buddy_signoff, gaim_buddy_signoff, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
434 gaim_signal_connect(plugin, event_buddy_away, gaim_buddy_away, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
435 gaim_signal_connect(plugin, event_buddy_back, gaim_buddy_back, NULL); |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
436 gaim_signal_connect(plugin, event_new_conversation, gaim_new_conversation, NULL); */ |
| 3510 | 437 |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
438 return TRUE; |
| 3510 | 439 } |
| 440 | |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
441 static gboolean |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
442 plugin_unload(GaimPlugin *plugin) |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
443 { |
| 3570 | 444 if (GTK_WIDGET_VISIBLE(docklet)) { |
| 4698 | 445 gaim_gtk_blist_docklet_remove(); |
| 3570 | 446 } |
| 3554 | 447 |
| 3570 | 448 docklet_flush_queue(); |
| 3554 | 449 |
| 4274 | 450 docklet_remove_callbacks(); |
|
4261
e252238f99df
[gaim-migrate @ 4512]
Christian Hammond <chipx86@chipx86.com>
parents:
4250
diff
changeset
|
451 |
| 3570 | 452 g_signal_handlers_disconnect_by_func(G_OBJECT(docklet), G_CALLBACK(docklet_destroyed), NULL); |
| 453 gtk_widget_destroy(GTK_WIDGET(docklet)); | |
| 3554 | 454 |
| 4093 | 455 g_object_unref(G_OBJECT(docklet)); |
| 456 docklet = NULL; | |
| 457 | |
|
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
458 /* XXX: do this while gaim has no other way to toggle the global mute */ |
| 5684 | 459 gaim_gtk_sound_set_mute(FALSE); |
| 4567 | 460 |
|
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
461 gaim_debug(GAIM_DEBUG_INFO, "docklet", "Tray Icon: removed\n"); |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
462 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
463 return TRUE; |
| 3554 | 464 } |
| 465 | |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
466 static GtkWidget * |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
467 get_config_frame(GaimPlugin *plugin) |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
468 { |
| 3570 | 469 GtkWidget *frame; |
| 470 GtkWidget *vbox, *hbox; | |
| 471 GtkWidget *toggle; | |
|
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
472 static const char *qmpref = "/plugins/gtk/docklet/queue_messages"; |
| 3517 | 473 |
| 3570 | 474 frame = gtk_vbox_new(FALSE, 18); |
| 475 gtk_container_set_border_width(GTK_CONTAINER(frame), 12); | |
| 476 | |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5234
diff
changeset
|
477 vbox = gaim_gtk_make_frame(frame, _("Tray Icon Configuration")); |
| 3570 | 478 hbox = gtk_hbox_new(FALSE, 18); |
| 479 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 3517 | 480 |
| 4093 | 481 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
|
482 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
|
483 g_signal_connect(G_OBJECT(toggle), "clicked", G_CALLBACK(docklet_set_bool), (void *)qmpref); |
| 3570 | 484 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0); |
| 485 | |
| 486 gtk_widget_show_all(frame); | |
| 487 return frame; | |
| 3517 | 488 } |
| 3570 | 489 |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
490 static GaimGtkPluginUiInfo ui_info = |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
491 { |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
492 get_config_frame |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
493 }; |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
494 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
495 static GaimPluginInfo info = |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
496 { |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
497 2, /**< api_version */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
498 GAIM_PLUGIN_STANDARD, /**< type */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
499 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
500 0, /**< flags */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
501 NULL, /**< dependencies */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
502 GAIM_PRIORITY_DEFAULT, /**< priority */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
503 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
504 DOCKLET_PLUGIN_ID, /**< id */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
505 N_("System Tray Icon"), /**< name */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
506 VERSION, /**< version */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
507 /** summary */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
508 N_("Displays an icon for Gaim in the system tray."), |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
509 /** description */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
510 N_("Interacts with a Notification Area applet (in GNOME or KDE, " |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
511 "for example) to display the current status of Gaim, allow fast " |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
512 "access to commonly used functions, and to toggle display of the " |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
513 "buddy list or login window. Also allows messages to be queued " |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
514 "until the icon is clicked, similar to ICQ."), |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
515 "Robert McQueen <robot101@debian.org>", /**< author */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
516 WEBSITE, /**< homepage */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
517 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
518 plugin_load, /**< load */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
519 plugin_unload, /**< unload */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
520 NULL, /**< destroy */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
521 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
522 &ui_info, /**< ui_info */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
523 NULL /**< extra_info */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
524 }; |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
525 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
526 static void |
|
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
527 init_plugin(GaimPlugin *plugin) |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
528 { |
| 3551 | 529 } |
| 3510 | 530 |
|
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
531 GAIM_INIT_PLUGIN(docklet, init_plugin, info); |
