Mercurial > pidgin
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); |