summaryrefslogtreecommitdiff
path: root/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c63
1 files changed, 52 insertions, 11 deletions
diff --git a/menu.c b/menu.c
index d5303507..4d6373e5 100644
--- a/menu.c
+++ b/menu.c
@@ -1,6 +1,6 @@
/*
* HardInfo
- * Copyright(C) 2003-2006 Leandro A. F. Pereira.
+ * Copyright(C) 2003-2007 Leandro A. F. Pereira.
*
* menu.c is based on UI Manager tutorial by Ryan McDougall
* Copyright(C) 2005 Ryan McDougall.
@@ -24,29 +24,67 @@
#include <config.h>
#include <stock.h>
-#include <binreloc.h>
#include <callbacks.h>
+#include <hardinfo.h>
+
+#include "uidefs.h"
static GtkActionEntry entries[] =
{
- { "FileMenuAction", NULL, "_File" }, /* name, stock id, label */
+ { "InformationMenuAction", NULL, "_Information" }, /* name, stock id, label */
{ "ViewMenuAction", NULL, "_View" },
{ "HelpMenuAction", NULL, "_Help" },
+ { "HelpMenuModulesAction", HI_STOCK_ABOUT_MODULES, "About _Modules" },
{ "MainMenuBarAction", NULL, "" },
{ "ReportAction", HI_STOCK_REPORT, /* name, stock id */
"Generate _Report", "<control>R", /* label, accelerator */
- "Creates a report in HTML", /* tooltip */
+ NULL, /* tooltip */
G_CALLBACK(cb_generate_report) },
+ { "SyncManagerAction", HI_STOCK_SYNC_MENU,
+ "_Network Updater...", NULL,
+ NULL,
+ G_CALLBACK(cb_sync_manager) },
+
+ { "CopyAction", GTK_STOCK_COPY,
+ "_Copy to Clipboard", "<control>C",
+ NULL,
+ G_CALLBACK(cb_copy_to_clipboard) },
+
+ { "SaveGraphAction", GTK_STOCK_SAVE_AS,
+ "_Save image as...", "<control>S",
+ NULL,
+ G_CALLBACK(cb_save_graphic) },
+
{ "RefreshAction", GTK_STOCK_REFRESH,
"_Refresh", "F5",
NULL,
G_CALLBACK(cb_refresh) },
+ { "OnlineDocsAction", GTK_STOCK_HELP,
+ "Contents (online)", "F1",
+ NULL,
+ G_CALLBACK(cb_open_online_docs) },
+
+ { "HomePageAction", HI_STOCK_INTERNET,
+ "_Open HardInfo Web Site", NULL,
+ NULL,
+ G_CALLBACK(cb_open_web_page) },
+
+ { "ReportBugAction", HI_STOCK_INTERNET,
+ "_Report bug", NULL,
+ NULL,
+ G_CALLBACK(cb_report_bug) },
+
+ { "DonateAction", HI_STOCK_DONATE,
+ "_Donate to the project", NULL,
+ NULL,
+ G_CALLBACK(cb_donate) },
+
{ "AboutAction", GTK_STOCK_ABOUT,
- "_About\342\200\246", NULL,
+ "_About HardInfo", NULL,
"Displays program version information",
G_CALLBACK(cb_about) },
@@ -83,7 +121,7 @@ void menu_init(Shell *shell)
GtkActionGroup *action_group; /* Packing group for our Actions */
GtkUIManager *menu_manager; /* The magic widget! */
GError *error; /* For reporting exceptions or errors */
- gchar *uidefs_path;
+ GtkAccelGroup *accel_group;
/* Create our objects */
menu_box = shell->vbox;
@@ -105,16 +143,18 @@ void menu_init(Shell *shell)
/* Read in the UI from our XML file */
error = NULL;
- uidefs_path = g_strdup_printf("%s/hardinfo/uidefs.xml",
- gbr_find_data_dir(PREFIX));
- gtk_ui_manager_add_ui_from_file(menu_manager, uidefs_path, &error);
- g_free(uidefs_path);
+ gtk_ui_manager_add_ui_from_string(menu_manager, uidefs_str, -1, &error);
if (error) {
- g_error("building menus failed: %s", error->message);
+ g_error("Building menus failed: %s", error->message);
g_error_free(error);
+ return;
}
+ /* Enable menu accelerators */
+ accel_group = gtk_ui_manager_get_accel_group(menu_manager);
+ gtk_window_add_accel_group(GTK_WINDOW(shell->window), accel_group);
+
/* Connect up important signals */
/* This signal is necessary in order to place widgets from the UI manager
* into the menu_box */
@@ -128,3 +168,4 @@ void menu_init(Shell *shell)
gtk_toolbar_set_style(GTK_TOOLBAR(gtk_ui_manager_get_widget(shell->ui_manager, "/MainMenuBarAction")),
GTK_TOOLBAR_BOTH_HORIZ);
}
+