plugins/docklet/docklet.c

changeset 12470
f70a8568bc48
parent 12468
fe558afb01b4
child 12471
5d7c12d525ed
equal deleted inserted replaced
12469:e5f46f852486 12470:f70a8568bc48
283 #endif 283 #endif
284 284
285 static void 285 static void
286 docklet_menu() { 286 docklet_menu() {
287 static GtkWidget *menu = NULL; 287 static GtkWidget *menu = NULL;
288 GtkWidget *entry;
289 GtkWidget *menuitem; 288 GtkWidget *menuitem;
290 289
291 if (menu) { 290 if (menu) {
292 gtk_widget_destroy(menu); 291 gtk_widget_destroy(menu);
293 } 292 }
294 293
295 menu = gtk_menu_new(); 294 menu = gtk_menu_new();
296 295
297 entry = gtk_check_menu_item_new_with_label(_("Show Buddy List")); 296 menuitem = gtk_check_menu_item_new_with_label(_("Show Buddy List"));
298 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(entry), gaim_prefs_get_bool("/gaim/gtk/blist/list_visible")); 297 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), gaim_prefs_get_bool("/gaim/gtk/blist/list_visible"));
299 g_signal_connect(G_OBJECT(entry), "toggled", G_CALLBACK(docklet_toggle_blist), NULL); 298 g_signal_connect(G_OBJECT(menuitem), "toggled", G_CALLBACK(docklet_toggle_blist), NULL);
300 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry); 299 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
300
301 menuitem = gtk_menu_item_new_with_label(_("Unread Messages"));
302
303 if (status == DOCKLET_STATUS_ONLINE_PENDING || status == DOCKLET_STATUS_AWAY_PENDING) {
304 GtkWidget *submenu = gtk_menu_new();
305 GList *l = gaim_gtk_conversations_find_unseen_list(GAIM_CONV_TYPE_IM, GAIM_UNSEEN_TEXT, FALSE, 0);
306 if (l == NULL) {
307 gtk_widget_set_sensitive(menuitem, FALSE);
308 gaim_debug_warning("docklet",
309 "status indicates messages pending, but no conversations with unseen messages were found.");
310 } else {
311 gaim_gtk_conversations_fill_menu(submenu, l);
312 g_list_free(l);
313 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
314 }
315 } else {
316 gtk_widget_set_sensitive(menuitem, FALSE);
317 }
318 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
301 319
302 gaim_separator(menu); 320 gaim_separator(menu);
303 321
304 menuitem = gaim_new_item_from_stock(menu, _("New Message..."), GAIM_STOCK_IM, G_CALLBACK(gaim_gtkdialogs_im), NULL, 0, 0, NULL); 322 menuitem = gaim_new_item_from_stock(menu, _("New Message..."), GAIM_STOCK_IM, G_CALLBACK(gaim_gtkdialogs_im), NULL, 0, 0, NULL);
305 if (status == DOCKLET_STATUS_OFFLINE) 323 if (status == DOCKLET_STATUS_OFFLINE)
316 334
317 gaim_separator(menu); 335 gaim_separator(menu);
318 336
319 gaim_new_item_from_stock(menu, _("File Transfers"), GAIM_STOCK_FILE_TRANSFER, G_CALLBACK(gaim_show_xfer_dialog), NULL, 0, 0, NULL); 337 gaim_new_item_from_stock(menu, _("File Transfers"), GAIM_STOCK_FILE_TRANSFER, G_CALLBACK(gaim_show_xfer_dialog), NULL, 0, 0, NULL);
320 338
321 entry = gtk_check_menu_item_new_with_label(_("Mute Sounds")); 339 menuitem = gtk_check_menu_item_new_with_label(_("Mute Sounds"));
322 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(entry), gaim_prefs_get_bool("/gaim/gtk/sound/mute")); 340 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), gaim_prefs_get_bool("/gaim/gtk/sound/mute"));
323 if (!strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none")) 341 if (!strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none"))
324 gtk_widget_set_sensitive(GTK_WIDGET(entry), FALSE); 342 gtk_widget_set_sensitive(GTK_WIDGET(menuitem), FALSE);
325 g_signal_connect(G_OBJECT(entry), "toggled", G_CALLBACK(docklet_toggle_mute), NULL); 343 g_signal_connect(G_OBJECT(menuitem), "toggled", G_CALLBACK(docklet_toggle_mute), NULL);
326 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry); 344 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
327 345
328 gaim_separator(menu); 346 gaim_separator(menu);
329 347
330 /* TODO: need a submenu to change status, this needs to "link" 348 /* TODO: need a submenu to change status, this needs to "link"
331 * to the status in the buddy list gtkstatusbox 349 * to the status in the buddy list gtkstatusbox

mercurial