diff -ru logjam-4.5.3.orig/src/docklet.c logjam-4.5.3/src/docklet.c --- logjam-4.5.3.orig/src/docklet.c Mon Feb 21 18:27:51 2005 +++ logjam-4.5.3/src/docklet.c Mon Jul 24 16:13:32 2006 @@ -8,19 +8,84 @@ #include "gtk-all.h" +#include "jam.h" #include "conf.h" #include "eggtrayicon.h" +#include "settings.h" static void docklet_destroy_cb(GtkWidget *widget) { app.docklet = NULL; } +void about_dlg(GtkWidget *mainwin); +void menu_friends_manager(JamWin *jw); + +static void +docklet_menu(GtkWidget *win) { + static GtkWidget *menu = NULL; + GtkWidget *entry; + GtkWidget *menuitem; + GtkWidget *image; + + if (menu) { + gtk_widget_destroy(menu); + } + + menu = gtk_menu_new(); + + { /* About... */ + menuitem = gtk_image_menu_item_new_with_mnemonic(_("About LogJam...")); + image = gtk_image_new_from_stock("logjam-goat", GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); + g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(about_dlg), win); + gtk_widget_show_all(menuitem); + } + + { /* Friends... */ + menuitem = gtk_menu_item_new_with_mnemonic(_("Friends...")); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); + g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(menu_friends_manager), win); + gtk_widget_show_all(menuitem); + } + + { /* Preferences... */ + menuitem = gtk_image_menu_item_new_with_mnemonic(_("Preferences...")); + image = gtk_image_new_from_stock(GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); + g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(settings_run), win); + gtk_widget_show_all(menuitem); + } + + { /* -------------- */ + menuitem = gtk_separator_menu_item_new(); + gtk_widget_show(menuitem); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); + } + + { /* Quit */ + menuitem = gtk_image_menu_item_new_with_mnemonic(_("Quit")); + image = gtk_image_new_from_stock(GTK_STOCK_QUIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); + g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(jam_quit), win); + gtk_widget_show_all(menuitem); + } + + gtk_widget_show_all(menu); + gtk_menu_popup(GTK_MENU(menu), NULL, NULL, + NULL /*ui_ops->position_menu*/, + NULL, 0, gtk_get_current_event_time()); + +} + static gboolean click_cb(GtkWidget* w, GdkEventButton *ev, GtkWidget *win) { /* right-clicks start context menu (note: this case is terminal) */ if (ev->button == 3) { - //cf_context_menu(cfi, ev); + docklet_menu(win); return TRUE; } diff -ru logjam-4.5.3.orig/src/menu.c logjam-4.5.3/src/menu.c --- logjam-4.5.3.orig/src/menu.c Sun Oct 23 17:11:08 2005 +++ logjam-4.5.3/src/menu.c Mon Jul 24 13:45:02 2006 @@ -289,7 +289,7 @@ console_dialog_run(GTK_WINDOW(jw), JAM_ACCOUNT_LJ(jw->account)); } -static void +void menu_friends_manager(JamWin *jw) { g_assert(JAM_ACCOUNT_IS_LJ(jw->account)); friends_manager_show(GTK_WINDOW(jw), JAM_ACCOUNT_LJ(jw->account));