summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-31 19:46:31 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-31 19:46:31 +0000
commit8686d55defaefba169df8eb8c3cb264fae7baeca (patch)
treedf5c92bf4015e9ec7ac4ed3e6bba7eeb6c0d92e8 /chrome
parentfb5153c5dd44a771be0cbd030a02eccf5cde76ed (diff)
downloadchromium_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.cc37
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc1
-rw-r--r--chrome/browser/gtk/menu_gtk.cc4
-rw-r--r--chrome/browser/gtk/tabs/tab_gtk.cc60
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() {}