diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-31 19:46:31 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-31 19:46:31 +0000 |
commit | 8686d55defaefba169df8eb8c3cb264fae7baeca (patch) | |
tree | df5c92bf4015e9ec7ac4ed3e6bba7eeb6c0d92e8 /chrome | |
parent | fb5153c5dd44a771be0cbd030a02eccf5cde76ed (diff) | |
download | chromium_src-8686d55defaefba169df8eb8c3cb264fae7baeca.zip chromium_src-8686d55defaefba169df8eb8c3cb264fae7baeca.tar.gz chromium_src-8686d55defaefba169df8eb8c3cb264fae7baeca.tar.bz2 |
GTK: Show shortcuts in title bar context menu and tab context menu.
BUG=17936
Review URL: http://codereview.chromium.org/159721
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22169 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/gtk/browser_titlebar.cc | 37 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/menu_gtk.cc | 4 | ||||
-rw-r--r-- | chrome/browser/gtk/tabs/tab_gtk.cc | 60 |
4 files changed, 50 insertions, 52 deletions
diff --git a/chrome/browser/gtk/browser_titlebar.cc b/chrome/browser/gtk/browser_titlebar.cc index dd4ffa9..b9a10d3 100644 --- a/chrome/browser/gtk/browser_titlebar.cc +++ b/chrome/browser/gtk/browser_titlebar.cc @@ -4,6 +4,7 @@ #include "chrome/browser/gtk/browser_titlebar.h" +#include <gdk/gdkkeysyms.h> #include <gtk/gtk.h> #include <string> @@ -16,7 +17,9 @@ #include "chrome/browser/browser.h" #include "chrome/browser/gtk/browser_window_gtk.h" #include "chrome/browser/gtk/custom_button.h" +#include "chrome/browser/gtk/menu_gtk.h" #include "chrome/browser/gtk/nine_box.h" +#include "chrome/browser/gtk/standard_menus.h" #include "chrome/browser/gtk/tabs/tab_strip_gtk.h" #include "chrome/browser/profile.h" #include "chrome/common/pref_names.h" @@ -338,25 +341,21 @@ void BrowserTitlebar::OnButtonClicked(GtkWidget* button, void BrowserTitlebar::ShowContextMenu() { if (!context_menu_.get()) { - context_menu_.reset(new MenuGtk(this, false)); - context_menu_->AppendMenuItemWithLabel( - IDC_NEW_TAB, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_NEWTAB)); - context_menu_->AppendMenuItemWithLabel( - IDC_RESTORE_TAB, - l10n_util::GetStringUTF8(IDS_RESTORE_TAB)); - - context_menu_->AppendSeparator(); - - context_menu_->AppendMenuItemWithLabel( - IDC_TASK_MANAGER, - l10n_util::GetStringUTF8(IDS_TASK_MANAGER)); - - context_menu_->AppendSeparator(); - - context_menu_->AppendCheckMenuItemWithLabel( - kShowWindowDecorationsCommand, - l10n_util::GetStringUTF8(IDS_SHOW_WINDOW_DECORATIONS)); + static const MenuCreateMaterial context_menu_blueprint[] = { + { MENU_NORMAL, IDC_NEW_TAB, IDS_TAB_CXMENU_NEWTAB, 0, NULL, + GDK_t, GDK_CONTROL_MASK, true }, + { MENU_NORMAL, IDC_RESTORE_TAB, IDS_RESTORE_TAB, 0, NULL, + GDK_t, GDK_CONTROL_MASK | GDK_SHIFT_MASK, true }, + { MENU_SEPARATOR }, + { MENU_NORMAL, IDC_TASK_MANAGER, IDS_TASK_MANAGER, 0, NULL, + GDK_Escape, GDK_SHIFT_MASK, true }, + { MENU_SEPARATOR }, + { MENU_CHECKBOX, kShowWindowDecorationsCommand, + IDS_SHOW_WINDOW_DECORATIONS }, + { MENU_END }, + }; + + context_menu_.reset(new MenuGtk(this, context_menu_blueprint, NULL)); } context_menu_->PopupAsContext(gtk_get_current_event_time()); diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index f0aedb2..1ffc57c 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -151,6 +151,7 @@ gfx::Rect GetInitialWindowBounds(GtkWindow* window) { return gfx::Rect(x, y, width, height); } +// Keep this in sync with various context menus which display the accelerators. const struct AcceleratorMapping { guint keyval; int command_id; diff --git a/chrome/browser/gtk/menu_gtk.cc b/chrome/browser/gtk/menu_gtk.cc index f0a85d8..0063687 100644 --- a/chrome/browser/gtk/menu_gtk.cc +++ b/chrome/browser/gtk/menu_gtk.cc @@ -127,7 +127,7 @@ void MenuGtk::BuildMenuIn(GtkWidget* menu, if (menu_data->label_argument) { label = l10n_util::GetStringFUTF8( menu_data->label_id, - WideToUTF16(l10n_util::GetString(menu_data->label_argument))); + l10n_util::GetStringUTF16(menu_data->label_argument)); } else if (menu_data->label_id) { label = l10n_util::GetStringUTF8(menu_data->label_id); } else if (menu_data->type != MENU_SEPARATOR) { @@ -168,7 +168,7 @@ void MenuGtk::BuildMenuIn(GtkWidget* menu, menu_data->custom_submenu->menu_.get()); } - if (accel_group && menu_data->accel_key) { + if ((menu_data->only_show || accel_group) && menu_data->accel_key) { // If we ever want to let the user do any key remaping, we'll need to // change the following so we make a gtk_accel_map which keeps the actual // keys. diff --git a/chrome/browser/gtk/tabs/tab_gtk.cc b/chrome/browser/gtk/tabs/tab_gtk.cc index a8a3ed6..56371b3 100644 --- a/chrome/browser/gtk/tabs/tab_gtk.cc +++ b/chrome/browser/gtk/tabs/tab_gtk.cc @@ -4,11 +4,14 @@ #include "chrome/browser/gtk/tabs/tab_gtk.h" +#include <gdk/gdkkeysyms.h> + #include "app/gfx/path.h" #include "app/l10n_util.h" #include "app/resource_bundle.h" #include "chrome/browser/gtk/gtk_dnd_util.h" #include "chrome/browser/gtk/menu_gtk.h" +#include "chrome/browser/gtk/standard_menus.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" @@ -26,37 +29,32 @@ class TabGtk::ContextMenuController : public MenuGtk::Delegate { public: explicit ContextMenuController(TabGtk* tab) : tab_(tab) { - menu_.reset(new MenuGtk(this, false)); - menu_->AppendMenuItemWithLabel( - TabStripModel::CommandNewTab, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_NEWTAB)); - menu_->AppendSeparator(); - menu_->AppendMenuItemWithLabel( - TabStripModel::CommandReload, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_RELOAD)); - menu_->AppendMenuItemWithLabel( - TabStripModel::CommandDuplicate, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_DUPLICATE)); - menu_->AppendSeparator(); - menu_->AppendMenuItemWithLabel( - TabStripModel::CommandCloseTab, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_CLOSETAB)); - menu_->AppendMenuItemWithLabel( - TabStripModel::CommandCloseOtherTabs, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_CLOSEOTHERTABS)); - menu_->AppendMenuItemWithLabel( - TabStripModel::CommandCloseTabsToRight, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_CLOSETABSTORIGHT)); - menu_->AppendMenuItemWithLabel( - TabStripModel::CommandCloseTabsOpenedBy, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_CLOSETABSOPENEDBY)); - menu_->AppendMenuItemWithLabel( - TabStripModel::CommandRestoreTab, - l10n_util::GetStringUTF8(IDS_RESTORE_TAB)); - menu_->AppendSeparator(); - menu_->AppendCheckMenuItemWithLabel( - TabStripModel::CommandTogglePinned, - l10n_util::GetStringUTF8(IDS_TAB_CXMENU_PIN_TAB)); + static const MenuCreateMaterial context_menu_blueprint[] = { + { MENU_NORMAL, TabStripModel::CommandNewTab, IDS_TAB_CXMENU_NEWTAB, + 0, NULL, GDK_t, GDK_CONTROL_MASK, true }, + { MENU_SEPARATOR }, + { MENU_NORMAL, TabStripModel::CommandReload, IDS_TAB_CXMENU_RELOAD, + 0, NULL, GDK_F5, 0, true }, + { MENU_NORMAL, TabStripModel::CommandDuplicate, + IDS_TAB_CXMENU_DUPLICATE }, + { MENU_SEPARATOR }, + { MENU_NORMAL, TabStripModel::CommandCloseTab, IDS_TAB_CXMENU_CLOSETAB, + 0, NULL, GDK_w, GDK_CONTROL_MASK, true }, + { MENU_NORMAL, TabStripModel::CommandCloseOtherTabs, + IDS_TAB_CXMENU_CLOSEOTHERTABS }, + { MENU_NORMAL, TabStripModel::CommandCloseTabsToRight, + IDS_TAB_CXMENU_CLOSETABSTORIGHT }, + { MENU_NORMAL, TabStripModel::CommandCloseTabsOpenedBy, + IDS_TAB_CXMENU_CLOSETABSOPENEDBY }, + { MENU_NORMAL, TabStripModel::CommandRestoreTab, IDS_RESTORE_TAB, + 0, NULL, GDK_t, GDK_CONTROL_MASK | GDK_SHIFT_MASK, true }, + { MENU_SEPARATOR }, + { MENU_NORMAL, TabStripModel::CommandTogglePinned, + IDS_TAB_CXMENU_PIN_TAB }, + { MENU_END }, + }; + + menu_.reset(new MenuGtk(this, context_menu_blueprint, NULL)); } virtual ~ContextMenuController() {} |