From d328f8eeb05bb5080697b583ba813d325cdbeddd Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Mon, 25 Apr 2011 07:23:54 +0000 Subject: [PATCH] added menu callback --- src/ui.c | 29 +++++++++++++++++++++++------ src/ui.h | 2 +- src/ui_appindicator.c | 24 ++++++++++++------------ src/ui_graph.c | 4 ++-- 4 files changed, 38 insertions(+), 21 deletions(-) diff --git a/src/ui.c b/src/ui.c index af021f4..4f81910 100644 --- a/src/ui.c +++ b/src/ui.c @@ -20,6 +20,7 @@ #include "cfg.h" #include "ui.h" #include "ui_graph.h" +#include "ui_pref.h" #include "ui_sensorlist.h" static void on_destroy(GtkWidget *widget, gpointer data) @@ -27,6 +28,21 @@ static void on_destroy(GtkWidget *widget, gpointer data) ui_psensor_quit(); } +static void cb_menu_quit(gpointer data, + guint cb_action, + GtkWidget *item) +{ + ui_psensor_quit(); +} + +static void cb_menu_preferences(gpointer data, + guint cb_action, + GtkWidget *item) +{ + ui_pref_dialog_run((struct ui_psensor *)data); +} + + void ui_psensor_quit() { gtk_main_quit(); @@ -35,26 +51,27 @@ void ui_psensor_quit() static GtkItemFactoryEntry menu_items[] = { {"/Psensor", NULL, NULL, 0, ""}, {"/Psensor/Preferences", - NULL, NULL, 0, ""}, + NULL, cb_menu_preferences, 0, ""}, {"/Psensor/sep1", NULL, NULL, 0, ""}, {"/Psensor/Quit", - "", NULL, 0, "", GTK_STOCK_QUIT}, + "", cb_menu_quit, 0, "", GTK_STOCK_QUIT}, }; static gint nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]); -static GtkWidget *get_menu() + +static GtkWidget *get_menu(struct ui_psensor *ui) { GtkItemFactory *item_factory; item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "
", NULL); gtk_item_factory_create_items(item_factory, - nmenu_items, menu_items, NULL); + nmenu_items, menu_items, ui); return gtk_item_factory_get_widget(item_factory, "
"); } -void ui_window_create(struct ui_psensor * ui) +void ui_window_create(struct ui_psensor *ui) { GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); GdkScreen *screen; @@ -99,7 +116,7 @@ void ui_window_create(struct ui_psensor * ui) ui->config->window_keep_below_enabled); /* main box */ - menubar = get_menu(); + menubar = get_menu(ui); ui->main_box = gtk_vbox_new(FALSE, 1); diff --git a/src/ui.h b/src/ui.h index 489f2d7..a1867e0 100644 --- a/src/ui.h +++ b/src/ui.h @@ -86,6 +86,6 @@ void ui_psensor_quit(); /* Creates the main GTK window */ -void ui_window_create(struct ui_psensor * ui); +void ui_window_create(struct ui_psensor *ui); #endif diff --git a/src/ui_appindicator.c b/src/ui_appindicator.c index 7d507a3..fc5e550 100644 --- a/src/ui_appindicator.c +++ b/src/ui_appindicator.c @@ -29,25 +29,25 @@ #include "ui_appindicator.h" #include "ui_pref.h" -static void cb_appindicator_show(gpointer data, - guint cb_action, - GtkWidget *item) +static void cb_menu_show(gpointer data, + guint cb_action, + GtkWidget *item) { struct ui_psensor *ui = (struct ui_psensor *)data; gtk_window_present(GTK_WINDOW(ui->main_window)); } -static void cb_appindicator_quit(gpointer data, - guint cb_action, - GtkWidget *item) +static void cb_menu_quit(gpointer data, + guint cb_action, + GtkWidget *item) { ui_psensor_quit(data); } -static void cb_appindicator_preferences(gpointer data, - guint cb_action, - GtkWidget *item) +static void cb_menu_preferences(gpointer data, + guint cb_action, + GtkWidget *item) { #ifdef HAVE_APPINDICATOR_029 gdk_threads_enter(); @@ -62,13 +62,13 @@ static void cb_appindicator_preferences(gpointer data, static GtkItemFactoryEntry menu_items[] = { {"/Show", - NULL, cb_appindicator_show, 0, ""}, + NULL, cb_menu_show, 0, ""}, {"/Preferences", - NULL, cb_appindicator_preferences, 0, ""}, + NULL, cb_menu_preferences, 0, ""}, {"/sep1", NULL, NULL, 0, ""}, {"/Quit", - "", cb_appindicator_quit, 0, "", GTK_STOCK_QUIT}, + "", cb_menu_quit, 0, "", GTK_STOCK_QUIT}, }; static gint nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]); diff --git a/src/ui_graph.c b/src/ui_graph.c index c3361ed..b5683d7 100644 --- a/src/ui_graph.c +++ b/src/ui_graph.c @@ -40,7 +40,7 @@ static GtkItemFactoryEntry menu_items[] = { static gint nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]); -GtkWidget *ui_graph_create_popupmenu(struct ui_psensor *ui) +static GtkWidget *get_menu(struct ui_psensor *ui) { GtkItemFactory *item_factory; @@ -57,7 +57,7 @@ int on_graph_clicked(GtkWidget *widget, GdkEventButton *event, gpointer data) if (event->type != GDK_BUTTON_PRESS) return FALSE; - menu = ui_graph_create_popupmenu((struct ui_psensor *)data); + menu = get_menu((struct ui_psensor *)data); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); -- 2.7.4