Mercurial > pidgin
diff src/buddy.c @ 1634:d029dc28a61e
[gaim-migrate @ 1644]
good things. patches from baldnik, aechols. still haven't put in decklin's patch, i need to get to that.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 23 Mar 2001 11:37:41 +0000 |
parents | 8c92ea5d854f |
children | 6cea395b627d |
line wrap: on
line diff
--- a/src/buddy.c Fri Mar 23 07:12:10 2001 +0000 +++ b/src/buddy.c Fri Mar 23 11:37:41 2001 +0000 @@ -37,6 +37,7 @@ #include <time.h> #include <unistd.h> +#include <gdk/gdkkeysyms.h> #include <gtk/gtk.h> #include <gdk/gdkx.h> #include "prpl.h" @@ -72,6 +73,7 @@ #include "pixmaps/group.xpm" static GtkTooltips *tips; +static GtkAccelGroup *accel; static GtkWidget *editpane; static GtkWidget *buddypane; static GtkWidget *imchatbox; @@ -378,6 +380,11 @@ show_log(name); } +void show_syslog() +{ + show_log(NULL); +} + void pressed_ticker(char *buddy) { struct conversation *c; @@ -2093,19 +2100,30 @@ gtk_widget_show(sep); } -GtkWidget *gaim_new_item(GtkWidget *menu, const char *str, GtkSignalFunc sf) +GtkWidget *gaim_new_item(GtkWidget *menu, const char *str) { GtkWidget *menuitem; - menuitem = gtk_menu_item_new_with_label(str); + GtkWidget *label; + + menuitem = gtk_menu_item_new(); if (menu) gtk_menu_append(GTK_MENU(menu), menuitem); gtk_widget_show(menuitem); - if (sf) - gtk_signal_connect(GTK_OBJECT(menuitem), "activate", sf, NULL); + + label = gtk_label_new(str); + gtk_label_set_pattern(GTK_LABEL(label), "_"); + gtk_container_add(GTK_CONTAINER(menuitem), label); + gtk_widget_show(label); + + gtk_widget_add_accelerator(menuitem, "activate-item", accel, str[0], + GDK_MOD1_MASK, GTK_ACCEL_LOCKED); + gtk_widget_lock_accelerators(menuitem); + return menuitem; } -GtkWidget *gaim_new_item_with_pixmap(GtkWidget *menu, const char *str, char **xpm, GtkSignalFunc sf) +GtkWidget *gaim_new_item_with_pixmap(GtkWidget *menu, const char *str, char **xpm, GtkSignalFunc sf, + guint accel_key, guint accel_mods, char *mod) { GtkWidget *menuitem; GtkWidget *hbox; @@ -2115,40 +2133,44 @@ GdkBitmap *mask; menuitem = gtk_menu_item_new(); + if (menu) + gtk_menu_append(GTK_MENU(menu), menuitem); + if (sf) + /* passing 1 is necessary so if we sign off closing the account editor doesn't exit */ + gtk_signal_connect(GTK_OBJECT(menuitem), "activate", sf, (void *)1); gtk_widget_show(menuitem); /* Create our container */ hbox = gtk_hbox_new(FALSE, 2); + gtk_container_add(GTK_CONTAINER(menuitem), hbox); + gtk_widget_show(hbox); /* Create our pixmap and pack it */ gtk_widget_realize(menu->parent); pm = gdk_pixmap_create_from_xpm_d(menu->parent->window, &mask, NULL, xpm); - pixmap = gtk_pixmap_new(pm, mask); gtk_widget_show(pixmap); gdk_pixmap_unref(pm); gdk_bitmap_unref(mask); - gtk_box_pack_start(GTK_BOX(hbox), pixmap, FALSE, FALSE, 2); /* Create our label and pack it */ - label = gtk_label_new(str); - gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); - - /* And finally, pack our box within our menu item */ - - gtk_container_add(GTK_CONTAINER(menuitem), hbox); - gtk_widget_show(hbox); - - if (menu) - gtk_menu_append(GTK_MENU(menu), menuitem); - - if (sf) - /* passing 1 is necessary so if we sign off closing the account editor doesn't - * exit */ - gtk_signal_connect(GTK_OBJECT(menuitem), "activate", sf, (void *)1); + gtk_widget_show(label); + + if (mod) { + label = gtk_label_new(mod); + gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + } + + if (accel_key) { + gtk_widget_add_accelerator(menuitem, "activate", accel, accel_key, + accel_mods, GTK_ACCEL_LOCKED); + gtk_widget_lock_accelerators(menuitem); + } + return menuitem; } @@ -2242,45 +2264,58 @@ aol_icon(blist->window); gtk_window_set_policy(GTK_WINDOW(blist), TRUE, TRUE, TRUE); + + accel = gtk_accel_group_new(); + gtk_accel_group_attach(accel, GTK_OBJECT(blist)); menubar = gtk_menu_bar_new(); menu = gtk_menu_new(); - - - menuitem = gaim_new_item(NULL, _("File"), NULL); + gtk_menu_set_accel_group(GTK_MENU(menu), accel); + + + menuitem = gaim_new_item(NULL, _("File")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem); - // gaim_new_item(menu, _("Add A Buddy"), GTK_SIGNAL_FUNC(add_buddy_callback)); - gaim_new_item_with_pixmap(menu, _("Add A Buddy"), add_small_xpm, GTK_SIGNAL_FUNC(add_buddy_callback)); - gaim_new_item_with_pixmap(menu, _("Join A Chat"), pounce_small_xpm, GTK_SIGNAL_FUNC(chat_callback)); - gaim_new_item_with_pixmap(menu, _("New Instant Message"), send_small_xpm, GTK_SIGNAL_FUNC(show_im_dialog)); + gaim_new_item_with_pixmap(menu, _("Add A Buddy"), add_small_xpm, + GTK_SIGNAL_FUNC(add_buddy_callback), 'b', GDK_CONTROL_MASK, "Ctl+B"); + gaim_new_item_with_pixmap(menu, _("Join A Chat"), pounce_small_xpm, + GTK_SIGNAL_FUNC(chat_callback), 'c', GDK_CONTROL_MASK, "Ctl+C"); + gaim_new_item_with_pixmap(menu, _("New Instant Message"), send_small_xpm, + GTK_SIGNAL_FUNC(show_im_dialog), 'i', GDK_CONTROL_MASK, "Ctl+I"); + gaim_separator(menu); - gaim_new_item_with_pixmap(menu, _("Import Buddy List"), import_small_xpm, GTK_SIGNAL_FUNC(import_callback)); - gaim_new_item_with_pixmap(menu, _("Export Buddy List"), export_small_xpm,GTK_SIGNAL_FUNC(export_callback)); + + gaim_new_item_with_pixmap(menu, _("Import Buddy List"), import_small_xpm, + GTK_SIGNAL_FUNC(import_callback), 0, 0, 0); + gaim_new_item_with_pixmap(menu, _("Export Buddy List"), export_small_xpm, + GTK_SIGNAL_FUNC(export_callback), 0, 0, 0); gaim_separator(menu); - gaim_new_item_with_pixmap(menu, _("Signoff"), logout_icon_xpm, GTK_SIGNAL_FUNC(signoff_all)); + gaim_new_item_with_pixmap(menu, _("Signoff"), logout_icon_xpm, + GTK_SIGNAL_FUNC(signoff_all), 'd', GDK_CONTROL_MASK, "Ctl+D"); #ifndef USE_APPLET - gaim_new_item_with_pixmap(menu, _("Quit"), exit_small_xpm, GTK_SIGNAL_FUNC(do_quit)); + gaim_new_item_with_pixmap(menu, _("Quit"), exit_small_xpm, + GTK_SIGNAL_FUNC(do_quit), 'q', GDK_CONTROL_MASK, "Ctl+Q"); #else - gaim_new_item_with_pixmap(menu, _("Close"), close_small_xpm, GTK_SIGNAL_FUNC(applet_destroy_buddy)); + gaim_new_item_with_pixmap(menu, _("Close"), close_small_xpm, + GTK_SIGNAL_FUNC(applet_destroy_buddy), 'x', GDK_CONTROL_MASK, "Ctl+X"); #endif menu = gtk_menu_new(); - menuitem = gaim_new_item(NULL, _("Tools"), NULL); + menuitem = gaim_new_item(NULL, _("Tools")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem); awaymenu = gtk_menu_new(); - menuitem = gaim_new_item_with_pixmap(menu, _("Away"), away_small_xpm, NULL); + menuitem = gaim_new_item_with_pixmap(menu, _("Away"), away_small_xpm, NULL, 0, 0, 0); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), awaymenu); do_away_menu(); bpmenu = gtk_menu_new(); - menuitem = gaim_new_item_with_pixmap(menu, _("Buddy Pounce"), pounce_small_xpm, NULL); + menuitem = gaim_new_item_with_pixmap(menu, _("Buddy Pounce"), pounce_small_xpm, NULL, 0, 0, 0); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), bpmenu); do_bp_menu(); @@ -2320,25 +2355,29 @@ gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(show_change_passwd), NULL); gtk_widget_show(menuitem); #else - gaim_new_item_with_pixmap(menu, _("Accounts"), add_small_xpm, GTK_SIGNAL_FUNC(account_editor)); + gaim_new_item_with_pixmap(menu, _("Accounts"), add_small_xpm, + GTK_SIGNAL_FUNC(account_editor), 'a', GDK_CONTROL_MASK, "Ctl+A"); protomenu = gtk_menu_new(); - menuitem = gaim_new_item_with_pixmap(menu, _("Protocol Actions"), prefs_small_xpm, NULL); + menuitem = gaim_new_item_with_pixmap(menu, _("Protocol Actions"), prefs_small_xpm, NULL, 0, 0, 0); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), protomenu); do_proto_menu(); #endif - gaim_new_item_with_pixmap(menu, _("Preferences"), prefs_small_xpm, GTK_SIGNAL_FUNC(show_prefs)); + gaim_new_item_with_pixmap(menu, _("Preferences"), prefs_small_xpm, + GTK_SIGNAL_FUNC(show_prefs), 'p', GDK_CONTROL_MASK, "Ctl+P"); + gaim_new_item_with_pixmap(menu, _("View System Log"), prefs_small_xpm, + GTK_SIGNAL_FUNC(show_syslog), 0, 0, 0); gaim_separator(menu); #ifdef GAIM_PLUGINS - gaim_new_item_with_pixmap(menu, _("Plugins"), plugins_small_xpm, GTK_SIGNAL_FUNC(show_plugins)); + gaim_new_item_with_pixmap(menu, _("Plugins"), plugins_small_xpm, GTK_SIGNAL_FUNC(show_plugins), 0, 0, 0); #endif #ifdef USE_PERL perlmenu = gtk_menu_new(); gtk_widget_show(perlmenu); - menuitem = gaim_new_item_with_pixmap(menu, _("Perl"), plugins_small_xpm, NULL); + menuitem = gaim_new_item_with_pixmap(menu, _("Perl"), plugins_small_xpm, NULL, 0, 0, 0); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), perlmenu); gtk_widget_show(menuitem); menuitem = gtk_menu_item_new_with_label(_("Load Script")); @@ -2357,12 +2396,12 @@ menu = gtk_menu_new(); - menuitem = gaim_new_item(NULL, _("Help"), NULL); + menuitem = gaim_new_item(NULL, _("Help")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_menu_item_right_justify(GTK_MENU_ITEM(menuitem)); gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem); - gaim_new_item_with_pixmap(menu, _("About Gaim"), about_small_xpm, show_about); + gaim_new_item_with_pixmap(menu, _("About Gaim"), about_small_xpm, show_about, GDK_F1, 0, NULL); gtk_widget_show(menubar);