added menu callback
authorJean-Philippe Orsini <jeanfi@gmail.com>
Mon, 25 Apr 2011 07:23:54 +0000 (07:23 +0000)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Mon, 25 Apr 2011 07:23:54 +0000 (07:23 +0000)
src/ui.c
src/ui.h
src/ui_appindicator.c
src/ui_graph.c

index af021f4..4f81910 100644 (file)
--- 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, "<Branch>"},
        {"/Psensor/Preferences",
-        NULL, NULL, 0, "<Item>"},
+        NULL, cb_menu_preferences, 0, "<Item>"},
        {"/Psensor/sep1",
         NULL, NULL, 0, "<Separator>"},
        {"/Psensor/Quit",
-        "", NULL, 0, "<StockItem>", GTK_STOCK_QUIT},
+        "", cb_menu_quit, 0, "<StockItem>", 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, "<main>", 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, "<main>");
 }
 
-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);
 
index 489f2d7..a1867e0 100644 (file)
--- 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
index 7d507a3..fc5e550 100644 (file)
 #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, "<Item>"},
+        NULL, cb_menu_show, 0, "<Item>"},
        {"/Preferences",
-        NULL, cb_appindicator_preferences, 0, "<Item>"},
+        NULL, cb_menu_preferences, 0, "<Item>"},
        {"/sep1",
         NULL, NULL, 0, "<Separator>"},
        {"/Quit",
-        "", cb_appindicator_quit, 0, "<StockItem>", GTK_STOCK_QUIT},
+        "", cb_menu_quit, 0, "<StockItem>", GTK_STOCK_QUIT},
 };
 
 static gint nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);
index c3361ed..b5683d7 100644 (file)
@@ -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);