Mercurial > pidgin
comparison plugins/docklet/docklet.c @ 5905:dbe2a2174be9
[gaim-migrate @ 6337]
Some stuff from Robot101. It puts some docklet functionality back in,
fixes a bug where connected accounts was being listed as connecting accounts,
and something I'm not allowed to say, because it's just that cool.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Mon, 16 Jun 2003 04:15:35 +0000 |
parents | 059d95c67cda |
children | 7d385de2f9cd |
comparison
equal
deleted
inserted
replaced
5904:ad8497bee878 | 5905:dbe2a2174be9 |
---|---|
77 | 77 |
78 static void docklet_set_bool(GtkWidget *widget, const char *key) { | 78 static void docklet_set_bool(GtkWidget *widget, const char *key) { |
79 gaim_prefs_set_bool(key, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); | 79 gaim_prefs_set_bool(key, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); |
80 } | 80 } |
81 | 81 |
82 static void docklet_auto_login() { | |
83 gaim_accounts_auto_login(GAIM_GTK_UI); | |
84 } | |
85 | |
82 static void docklet_flush_queue() { | 86 static void docklet_flush_queue() { |
83 if (unread_message_queue) { | 87 if (unread_message_queue) { |
84 purge_away_queue(&unread_message_queue); | 88 purge_away_queue(&unread_message_queue); |
85 } | 89 } |
86 } | 90 } |
96 menu = gtk_menu_new(); | 100 menu = gtk_menu_new(); |
97 | 101 |
98 switch (status) { | 102 switch (status) { |
99 case offline: | 103 case offline: |
100 case offline_connecting: | 104 case offline_connecting: |
101 /* XXX CHIP KILLED AUTO CONNECTING */ | 105 gaim_new_item_from_stock(menu, _("Auto-login"), GAIM_STOCK_SIGN_ON, G_CALLBACK(docklet_auto_login), NULL, 0, 0, NULL); |
102 #if 0 | |
103 gaim_new_item_from_stock(menu, _("Auto-login"), GAIM_STOCK_SIGN_ON, G_CALLBACK(auto_login), NULL, 0, 0, NULL); | |
104 #endif | |
105 break; | 106 break; |
106 default: | 107 default: |
107 gaim_new_item_from_stock(menu, _("New Message.."), GAIM_STOCK_IM, G_CALLBACK(show_im_dialog), NULL, 0, 0, NULL); | 108 gaim_new_item_from_stock(menu, _("New Message.."), GAIM_STOCK_IM, G_CALLBACK(show_im_dialog), NULL, 0, 0, NULL); |
108 gaim_new_item_from_stock(menu, _("Join A Chat..."), GAIM_STOCK_CHAT, G_CALLBACK(join_chat), 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); |
109 break; | 110 break; |
192 } else { | 193 } else { |
193 gaim_gtk_blist_docklet_toggle(); | 194 gaim_gtk_blist_docklet_toggle(); |
194 } | 195 } |
195 break; | 196 break; |
196 case 2: | 197 case 2: |
198 switch (status) { | |
199 case offline: | |
200 case offline_connecting: | |
201 docklet_auto_login(); | |
202 break; | |
203 default: | |
204 break; | |
205 } | |
197 break; | 206 break; |
198 case 3: | 207 case 3: |
199 docklet_menu(event); | 208 docklet_menu(event); |
200 break; | 209 break; |
201 } | 210 } |
268 if (message_queue) { | 277 if (message_queue) { |
269 status = away_pending; | 278 status = away_pending; |
270 } else { | 279 } else { |
271 status = away; | 280 status = away; |
272 } | 281 } |
273 /* XXX Chip killed my dog... */ | 282 } else if (gaim_connections_get_connecting()) { |
274 #if 0 | |
275 } else if (connecting_count) { | |
276 status = online_connecting; | 283 status = online_connecting; |
277 #endif | |
278 } else { | 284 } else { |
279 status = online; | 285 status = online; |
280 } | 286 } |
281 } else { | 287 } else { |
282 /* XXX ... and my pet goldfish ... */ | 288 if (gaim_connections_get_connecting()) { |
283 #if 0 | |
284 if (connecting_count) { | |
285 status = offline_connecting; | 289 status = offline_connecting; |
286 } else { | 290 } else { |
287 #endif | |
288 status = offline; | 291 status = offline; |
289 /* XXX ... both of them. */ | |
290 #if 0 | |
291 } | 292 } |
292 #endif | |
293 } | 293 } |
294 | 294 |
295 /* update the icon if we changed status */ | 295 /* update the icon if we changed status */ |
296 if (status != oldstatus) { | 296 if (status != oldstatus) { |
297 icon = status; | 297 icon = status; |
376 | 376 |
377 static void gaim_signoff(GaimConnection *gc, void *data) { | 377 static void gaim_signoff(GaimConnection *gc, void *data) { |
378 /* do this when idle so that if the prpl was connecting | 378 /* do this when idle so that if the prpl was connecting |
379 and was cancelled, we register that connecting_count | 379 and was cancelled, we register that connecting_count |
380 has returned to 0 */ | 380 has returned to 0 */ |
381 g_idle_add(docklet_update_status, &docklet); | 381 /* no longer necessary because Chip decided that us plugins |
382 * didn't need to know if an account was connecting or not | |
383 * g_idle_add(docklet_update_status, &docklet); */ | |
384 docklet_update_status(); | |
382 } | 385 } |
383 | 386 |
384 static void gaim_connecting(GaimAccount *account, void *data) { | 387 static void gaim_connecting(GaimAccount *account, void *data) { |
385 docklet_update_status(); | 388 docklet_update_status(); |
386 } | 389 } |
450 gtk_widget_destroy(GTK_WIDGET(docklet)); | 453 gtk_widget_destroy(GTK_WIDGET(docklet)); |
451 | 454 |
452 g_object_unref(G_OBJECT(docklet)); | 455 g_object_unref(G_OBJECT(docklet)); |
453 docklet = NULL; | 456 docklet = NULL; |
454 | 457 |
455 /* do this while gaim has no other way to toggle the global mute */ | 458 /* XXX: do this while gaim has no other way to toggle the global mute */ |
456 gaim_gtk_sound_set_mute(FALSE); | 459 gaim_gtk_sound_set_mute(FALSE); |
457 | 460 |
458 gaim_debug(GAIM_DEBUG_INFO, "docklet", "Tray Icon: removed\n"); | 461 gaim_debug(GAIM_DEBUG_INFO, "docklet", "Tray Icon: removed\n"); |
459 | 462 |
460 return TRUE; | 463 return TRUE; |