diff options
Diffstat (limited to 'menu.c')
-rw-r--r-- | menu.c | 63 |
1 files changed, 52 insertions, 11 deletions
@@ -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); } + |