| 251 status = newstatus; |
251 status = newstatus; |
| 252 pending = newpending; |
252 pending = newpending; |
| 253 connecting = newconnecting; |
253 connecting = newconnecting; |
| 254 |
254 |
| 255 docklet_gtk_status_update_icon(status, connecting, pending); |
255 docklet_gtk_status_update_icon(status, connecting, pending); |
| 256 |
|
| 257 /* and schedule the blinker function if messages are pending */ |
|
| 258 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/docklet/blink") |
|
| 259 && pending && !connecting && docklet_blinking_timer == 0) { |
|
| 260 docklet_blinking_timer = g_timeout_add(500, docklet_blink_icon, NULL); |
|
| 261 } |
|
| 262 } |
256 } |
| 263 |
257 |
| 264 return FALSE; /* for when we're called by the glib idle handler */ |
258 return FALSE; /* for when we're called by the glib idle handler */ |
| 265 } |
259 } |
| 266 |
260 |
| 354 * docklet pop-up menu |
348 * docklet pop-up menu |
| 355 **************************************************************************/ |
349 **************************************************************************/ |
| 356 static void |
350 static void |
| 357 docklet_toggle_mute(GtkWidget *toggle, void *data) |
351 docklet_toggle_mute(GtkWidget *toggle, void *data) |
| 358 { |
352 { |
| 359 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", GTK_CHECK_MENU_ITEM(toggle)->active); |
353 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", |
| 360 } |
354 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(toggle))); |
| 361 |
|
| 362 static void |
|
| 363 docklet_toggle_blink(GtkWidget *toggle, void *data) |
|
| 364 { |
|
| 365 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/docklet/blink", GTK_CHECK_MENU_ITEM(toggle)->active); |
|
| 366 } |
355 } |
| 367 |
356 |
| 368 static void |
357 static void |
| 369 docklet_toggle_blist(GtkWidget *toggle, void *data) |
358 docklet_toggle_blist(GtkWidget *toggle, void *data) |
| 370 { |
359 { |
| 371 purple_blist_set_visible(GTK_CHECK_MENU_ITEM(toggle)->active); |
360 purple_blist_set_visible(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(toggle))); |
| 372 } |
361 } |
| 373 |
362 |
| 374 #ifdef _WIN32 |
363 #ifdef _WIN32 |
| 375 /* This is a workaround for a bug in windows GTK+. Clicking outside of the |
364 /* This is a workaround for a bug in windows GTK+. Clicking outside of the |
| 376 menu does not get rid of it, so instead we get rid of it as soon as the |
365 menu does not get rid of it, so instead we get rid of it as soon as the |
| 562 prim = purple_status_type_get_primitive(status_type); |
551 prim = purple_status_type_get_primitive(status_type); |
| 563 |
552 |
| 564 new_menu_item_with_status_icon(menu, |
553 new_menu_item_with_status_icon(menu, |
| 565 purple_status_type_get_name(status_type), |
554 purple_status_type_get_name(status_type), |
| 566 prim, G_CALLBACK(activate_status_account_cb), |
555 prim, G_CALLBACK(activate_status_account_cb), |
| 567 status_type, 0, 0, NULL); |
556 GINT_TO_POINTER(status_type), 0, 0, NULL); |
| 568 } |
557 } |
| 569 } |
558 } |
| 570 |
559 |
| 571 static GtkWidget * |
560 static GtkWidget * |
| 572 docklet_status_submenu(void) |
561 docklet_status_submenu(void) |
| 772 menuitem = gtk_check_menu_item_new_with_mnemonic(_("Mute _Sounds")); |
761 menuitem = gtk_check_menu_item_new_with_mnemonic(_("Mute _Sounds")); |
| 773 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute")); |
762 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute")); |
| 774 if (!strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"), "none")) |
763 if (!strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"), "none")) |
| 775 gtk_widget_set_sensitive(GTK_WIDGET(menuitem), FALSE); |
764 gtk_widget_set_sensitive(GTK_WIDGET(menuitem), FALSE); |
| 776 g_signal_connect(G_OBJECT(menuitem), "toggled", G_CALLBACK(docklet_toggle_mute), NULL); |
765 g_signal_connect(G_OBJECT(menuitem), "toggled", G_CALLBACK(docklet_toggle_mute), NULL); |
| 777 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
|
| 778 |
|
| 779 menuitem = gtk_check_menu_item_new_with_mnemonic(_("_Blink on New Message")); |
|
| 780 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/docklet/blink")); |
|
| 781 g_signal_connect(G_OBJECT(menuitem), "toggled", G_CALLBACK(docklet_toggle_blink), NULL); |
|
| 782 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
766 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
| 783 |
767 |
| 784 pidgin_separator(menu); |
768 pidgin_separator(menu); |
| 785 |
769 |
| 786 /* add plugin actions */ |
770 /* add plugin actions */ |