comparison src/gtkblist.c @ 12300:6487e68dcef9

[gaim-migrate @ 14604] A patch from Bleeter. A patch from sadrul. Some tweaks from me. Moved the Accounts menu to after Buddies. (Bleeter put it after Tools but I think this makes a bit more sense.) Moved the Debug Window to Tools, since I think it's really a tool. Removed the menu item for the Accounts dialog, I'm making it a plugin soon anyway. committer: Tailor Script <tailor@pidgin.im>
author Etan Reisner <pidgin@unreliablesource.net>
date Sat, 03 Dec 2005 06:48:57 +0000
parents 7298b2015b3b
children 39fca2edf7da
comparison
equal deleted inserted replaced
12299:d10050950c03 12300:6487e68dcef9
2439 /*************************************************** 2439 /***************************************************
2440 * Crap * 2440 * Crap *
2441 ***************************************************/ 2441 ***************************************************/
2442 static GtkItemFactoryEntry blist_menu[] = 2442 static GtkItemFactoryEntry blist_menu[] =
2443 { 2443 {
2444 /* Accounts menu */
2445 { N_("/_Accounts"), NULL, NULL, 0, "<Branch>" },
2446 { "/Accounts/sep1", NULL, NULL, 0, "<Separator>" },
2447 { N_("/Accounts/_Quit"), "<CTL>Q", gaim_core_quit, 0, "<StockItem>", GTK_STOCK_QUIT },
2448
2449 /* Buddies menu */ 2444 /* Buddies menu */
2450 { N_("/_Buddies"), NULL, NULL, 0, "<Branch>" }, 2445 { N_("/_Buddies"), NULL, NULL, 0, "<Branch>" },
2451 { N_("/Buddies/New Instant _Message..."), "<CTL>M", gaim_gtkdialogs_im, 0, "<StockItem>", GAIM_STOCK_IM }, 2446 { N_("/Buddies/New Instant _Message..."), "<CTL>M", gaim_gtkdialogs_im, 0, "<StockItem>", GAIM_STOCK_IM },
2452 { N_("/Buddies/Join a _Chat..."), "<CTL>C", gaim_gtk_blist_joinchat_show, 0, "<StockItem>", GAIM_STOCK_CHAT }, 2447 { N_("/Buddies/Join a _Chat..."), "<CTL>C", gaim_gtk_blist_joinchat_show, 0, "<StockItem>", GAIM_STOCK_CHAT },
2453 { N_("/Buddies/Get User _Info..."), "<CTL>I", gaim_gtkdialogs_info, 0, "<StockItem>", GAIM_STOCK_INFO }, 2448 { N_("/Buddies/Get User _Info..."), "<CTL>I", gaim_gtkdialogs_info, 0, "<StockItem>", GAIM_STOCK_INFO },
2459 { N_("/Buddies/_Sort Buddies"), NULL, NULL, 0, "<Branch>" }, 2454 { N_("/Buddies/_Sort Buddies"), NULL, NULL, 0, "<Branch>" },
2460 { "/Buddies/sep2", NULL, NULL, 0, "<Separator>" }, 2455 { "/Buddies/sep2", NULL, NULL, 0, "<Separator>" },
2461 { N_("/Buddies/_Add Buddy..."), "<CTL>B", gaim_gtk_blist_add_buddy_cb, 0, "<StockItem>", GTK_STOCK_ADD }, 2456 { N_("/Buddies/_Add Buddy..."), "<CTL>B", gaim_gtk_blist_add_buddy_cb, 0, "<StockItem>", GTK_STOCK_ADD },
2462 { N_("/Buddies/Add C_hat..."), NULL, gaim_gtk_blist_add_chat_cb, 0, "<StockItem>", GTK_STOCK_ADD }, 2457 { N_("/Buddies/Add C_hat..."), NULL, gaim_gtk_blist_add_chat_cb, 0, "<StockItem>", GTK_STOCK_ADD },
2463 { N_("/Buddies/Add _Group..."), NULL, gaim_blist_request_add_group, 0, "<StockItem>", GTK_STOCK_ADD }, 2458 { N_("/Buddies/Add _Group..."), NULL, gaim_blist_request_add_group, 0, "<StockItem>", GTK_STOCK_ADD },
2459 { "/Buddies/sep2", NULL, NULL, 0, "<Separator>" },
2460 { N_("/Buddies/_Quit"), "<CTL>Q", gaim_core_quit, 0, "<StockItem>", GTK_STOCK_QUIT },
2461
2462
2463 /* Accounts menu */
2464 { N_("/_Accounts"), NULL, NULL, 0, "<Branch>" },
2464 2465
2465 /* Tools */ 2466 /* Tools */
2466 { N_("/_Tools"), NULL, NULL, 0, "<Branch>" }, 2467 { N_("/_Tools"), NULL, NULL, 0, "<Branch>" },
2467 { N_("/Tools/A_ccounts"), "<CTL>A", gaim_gtk_accounts_window_show, 0, "<StockItem>", GAIM_STOCK_ACCOUNTS },
2468 { N_("/Tools/Buddy _Pounces"), NULL, gaim_gtk_pounces_manager_show, 0, "<StockItem>", GAIM_STOCK_POUNCE }, 2468 { N_("/Tools/Buddy _Pounces"), NULL, gaim_gtk_pounces_manager_show, 0, "<StockItem>", GAIM_STOCK_POUNCE },
2469 { N_("/Tools/Plu_gins"), "<CTL>U", gaim_gtk_plugin_dialog_show, 0, "<StockItem>", GAIM_STOCK_PLUGIN }, 2469 { N_("/Tools/Plu_gins"), "<CTL>U", gaim_gtk_plugin_dialog_show, 0, "<StockItem>", GAIM_STOCK_PLUGIN },
2470 { N_("/Tools/Pr_eferences"), "<CTL>P", gaim_gtk_prefs_show, 0, "<StockItem>", GTK_STOCK_PREFERENCES }, 2470 { N_("/Tools/Pr_eferences"), "<CTL>P", gaim_gtk_prefs_show, 0, "<StockItem>", GTK_STOCK_PREFERENCES },
2471 { N_("/Tools/Pr_ivacy"), NULL, gaim_gtk_privacy_dialog_show, 0, "<StockItem>", GTK_STOCK_DIALOG_ERROR }, 2471 { N_("/Tools/Pr_ivacy"), NULL, gaim_gtk_privacy_dialog_show, 0, "<StockItem>", GTK_STOCK_DIALOG_ERROR },
2472 { "/Tools/sep2", NULL, NULL, 0, "<Separator>" }, 2472 { "/Tools/sep2", NULL, NULL, 0, "<Separator>" },
2473 { N_("/Tools/_Debug Window"), NULL, toggle_debug, 0, "<StockItem>", GAIM_STOCK_DEBUG },
2473 { N_("/Tools/_File Transfers"), "<CTL>T", gaim_show_xfer_dialog, 0, "<StockItem>", GAIM_STOCK_FILE_TRANSFER }, 2474 { N_("/Tools/_File Transfers"), "<CTL>T", gaim_show_xfer_dialog, 0, "<StockItem>", GAIM_STOCK_FILE_TRANSFER },
2474 { N_("/Tools/R_oom List"), NULL, gaim_gtk_roomlist_dialog_show, 0, "<StockItem>", GTK_STOCK_INDEX }, 2475 { N_("/Tools/R_oom List"), NULL, gaim_gtk_roomlist_dialog_show, 0, "<StockItem>", GTK_STOCK_INDEX },
2475 { N_("/Tools/View System _Log"), NULL, gtk_blist_show_systemlog_cb, 0, "<StockItem>", GAIM_STOCK_LOG }, 2476 { N_("/Tools/View System _Log"), NULL, gtk_blist_show_systemlog_cb, 0, "<StockItem>", GAIM_STOCK_LOG },
2476 { "/Tools/sep3", NULL, NULL, 0, "<Separator>" }, 2477 { "/Tools/sep3", NULL, NULL, 0, "<Separator>" },
2477 { N_("/Tools/Mute _Sounds"), "<CTL>S", gaim_gtk_blist_mute_sounds_cb, 0, "<CheckItem>"}, 2478 { N_("/Tools/Mute _Sounds"), "<CTL>S", gaim_gtk_blist_mute_sounds_cb, 0, "<CheckItem>"},
2478 2479
2479 /* Help */ 2480 /* Help */
2480 { N_("/_Help"), NULL, NULL, 0, "<Branch>" }, 2481 { N_("/_Help"), NULL, NULL, 0, "<Branch>" },
2481 { N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP }, 2482 { N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP },
2482 { N_("/Help/_Debug Window"), NULL, toggle_debug, 0, "<StockItem>", GAIM_STOCK_DEBUG },
2483 { N_("/Help/_About"), NULL, gaim_gtkdialogs_about, 0, "<StockItem>", GAIM_STOCK_ABOUT }, 2483 { N_("/Help/_About"), NULL, gaim_gtkdialogs_about, 0, "<StockItem>", GAIM_STOCK_ABOUT },
2484 }; 2484 };
2485 2485
2486 /********************************************************* 2486 /*********************************************************
2487 * Private Utility functions * 2487 * Private Utility functions *
5342 void 5342 void
5343 gaim_gtk_blist_update_accounts_menu(void) 5343 gaim_gtk_blist_update_accounts_menu(void)
5344 { 5344 {
5345 GtkWidget *menuitem = NULL, *submenu = NULL; 5345 GtkWidget *menuitem = NULL, *submenu = NULL;
5346 GList *l = NULL, *accounts = NULL; 5346 GList *l = NULL, *accounts = NULL;
5347 gint count = 0;
5348 5347
5349 if (accountmenu == NULL) 5348 if (accountmenu == NULL)
5350 return; 5349 return;
5351 5350
5352 /* Clear the old Accounts menu */ 5351 /* Clear the old Accounts menu */
5353 for (l = gtk_container_get_children(GTK_CONTAINER(accountmenu)); l; l = l->next) { 5352 for (l = gtk_container_get_children(GTK_CONTAINER(accountmenu)); l; l = l->next) {
5354 menuitem = l->data; 5353 gtk_container_remove(GTK_CONTAINER(accountmenu),
5355 5354 GTK_WIDGET(l->data));
5356 if (menuitem != gtk_item_factory_get_item(gtkblist->ift, N_("/Accounts/Quit")) &&
5357 menuitem != gtk_item_factory_get_item(gtkblist->ift, "/Accounts/sep1")) {
5358 gtk_container_remove(GTK_CONTAINER(accountmenu),
5359 GTK_WIDGET(menuitem));
5360 }
5361 } 5355 }
5362 5356
5363 menuitem = gtk_menu_item_new_with_label(_("Add Account...")); 5357 menuitem = gtk_menu_item_new_with_label(_("Add Account..."));
5364 g_signal_connect(G_OBJECT(menuitem), "activate", 5358 g_signal_connect(G_OBJECT(menuitem), "activate",
5365 G_CALLBACK(add_account_cb), NULL); 5359 G_CALLBACK(add_account_cb), NULL);
5366 gtk_menu_shell_insert(GTK_MENU_SHELL(accountmenu), menuitem, count++); 5360 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem);
5367 gtk_widget_show(menuitem); 5361 gtk_widget_show(menuitem);
5368 5362
5369 for (accounts = gaim_accounts_get_all(); accounts; accounts = accounts->next) { 5363 for (accounts = gaim_accounts_get_all(); accounts; accounts = accounts->next) {
5370 char *buf = NULL; 5364 char *buf = NULL;
5371 GtkWidget *image = NULL; 5365 GtkWidget *image = NULL;
5372 GaimConnection *gc = NULL; 5366 GaimConnection *gc = NULL;
5373 GaimAccount *account = NULL; 5367 GaimAccount *account = NULL;
5368 GaimStatus *status = NULL;
5374 GdkPixbuf *pixbuf = NULL, *scale = NULL; 5369 GdkPixbuf *pixbuf = NULL, *scale = NULL;
5375 5370
5376 account = accounts->data; 5371 account = accounts->data;
5377 5372
5378 buf = g_strconcat(gaim_account_get_username(account), " (", 5373 buf = g_strconcat(gaim_account_get_username(account), " (",
5379 gaim_account_get_protocol_name(account), ")", NULL); 5374 gaim_account_get_protocol_name(account), ")", NULL);
5380 menuitem = gtk_image_menu_item_new_with_label(buf); 5375 menuitem = gtk_image_menu_item_new_with_label(buf);
5381 g_free(buf); 5376 g_free(buf);
5382 pixbuf = gaim_gtk_create_prpl_icon(account); 5377 status = gaim_account_get_active_status(account);
5378 pixbuf = gaim_gtk_create_prpl_icon_with_status(account, gaim_status_get_type(status));
5383 if (pixbuf) { 5379 if (pixbuf) {
5384 scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16, 5380 scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16,
5385 GDK_INTERP_BILINEAR); 5381 GDK_INTERP_BILINEAR);
5386 if (!gaim_account_is_connected(account)) 5382 if (!gaim_account_is_connected(account))
5387 gdk_pixbuf_saturate_and_pixelate(scale, scale, 5383 gdk_pixbuf_saturate_and_pixelate(scale, scale,
5390 g_object_unref(G_OBJECT(pixbuf)); 5386 g_object_unref(G_OBJECT(pixbuf));
5391 g_object_unref(G_OBJECT(scale)); 5387 g_object_unref(G_OBJECT(scale));
5392 gtk_widget_show(image); 5388 gtk_widget_show(image);
5393 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); 5389 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
5394 } 5390 }
5395 gtk_menu_shell_insert(GTK_MENU_SHELL(accountmenu), menuitem, count ++); 5391 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem);
5396 gtk_widget_show(menuitem); 5392 gtk_widget_show(menuitem);
5397 5393
5398 submenu = gtk_menu_new(); 5394 submenu = gtk_menu_new();
5399 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); 5395 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
5400 gtk_widget_show(submenu); 5396 gtk_widget_show(submenu);
5459 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); 5455 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
5460 gtk_widget_show(menuitem); 5456 gtk_widget_show(menuitem);
5461 } 5457 }
5462 5458
5463 menuitem = gtk_menu_item_new_with_label(_("Remove Account")); 5459 menuitem = gtk_menu_item_new_with_label(_("Remove Account"));
5464 gtk_menu_shell_insert(GTK_MENU_SHELL(accountmenu), menuitem, count++); 5460 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem);
5465 gtk_widget_show(menuitem); 5461 gtk_widget_show(menuitem);
5466 5462
5467 submenu = gtk_menu_new(); 5463 submenu = gtk_menu_new();
5468 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); 5464 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
5469 gtk_widget_show(submenu); 5465 gtk_widget_show(submenu);