summaryrefslogtreecommitdiffstats
path: root/chrome/browser/background_mode_manager.cc
diff options
context:
space:
mode:
authoratwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-25 19:31:00 +0000
committeratwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-25 19:31:00 +0000
commit7c9ae8ce124cf730b0ef45b43a3b0bba8d284998 (patch)
tree48e50493283232dbde5ae73625d553893d69ce8a /chrome/browser/background_mode_manager.cc
parent3320662174e3f45041ecad21bfc5349abdf01b26 (diff)
downloadchromium_src-7c9ae8ce124cf730b0ef45b43a3b0bba8d284998.zip
chromium_src-7c9ae8ce124cf730b0ef45b43a3b0bba8d284998.tar.gz
chromium_src-7c9ae8ce124cf730b0ef45b43a3b0bba8d284998.tar.bz2
Added options/preferences menu item to status icon context menus. Also refactored code to get the stock preferences menu item label out of wrench_menu_model and into gtk_utils where it can be shared.
BUG=37375 TEST=none Review URL: http://codereview.chromium.org/3175032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57364 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/background_mode_manager.cc')
-rw-r--r--chrome/browser/background_mode_manager.cc37
1 files changed, 28 insertions, 9 deletions
diff --git a/chrome/browser/background_mode_manager.cc b/chrome/browser/background_mode_manager.cc
index 52b1983..adf2015 100644
--- a/chrome/browser/background_mode_manager.cc
+++ b/chrome/browser/background_mode_manager.cc
@@ -23,6 +23,10 @@
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
+#if defined(TOOLKIT_GTK)
+#include "chrome/browser/gtk/gtk_util.h"
+#endif
+
BackgroundModeManager::BackgroundModeManager(Profile* profile)
: profile_(profile),
background_app_count_(0),
@@ -197,6 +201,16 @@ void BackgroundModeManager::CreateStatusTrayIcon() {
menus::SimpleMenuModel* menu = new menus::SimpleMenuModel(this);
menu->AddItem(IDC_ABOUT, l10n_util::GetStringFUTF16(IDS_ABOUT,
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
+
+#if defined(TOOLKIT_GTK)
+ string16 preferences = gtk_util::GetStockPreferencesMenuLabel();
+ if (preferences.empty())
+ menu->AddItemWithStringId(IDC_OPTIONS, IDS_OPTIONS);
+ else
+ menu->AddItem(IDC_OPTIONS, preferences);
+#else
+ menu->AddItemWithStringId(IDC_OPTIONS, IDS_OPTIONS);
+#endif
menu->AddSeparator();
menu->AddItemWithStringId(IDC_EXIT, IDS_EXIT);
status_icon_->SetContextMenu(menu);
@@ -231,22 +245,27 @@ void BackgroundModeManager::ExecuteCommand(int item) {
UserMetrics::RecordAction(UserMetricsAction("Exit"), profile_);
BrowserList::CloseAllBrowsersAndExit();
break;
- case IDC_ABOUT: {
- // Need to display a browser window to put up the about dialog.
- Browser* browser = BrowserList::GetLastActive();
- if (!browser) {
- Browser::OpenEmptyWindow(profile_);
- browser = BrowserList::GetLastActive();
- }
- browser->OpenAboutChromeDialog();
+ case IDC_ABOUT:
+ GetBrowserWindow()->OpenAboutChromeDialog();
+ break;
+ case IDC_OPTIONS:
+ GetBrowserWindow()->OpenOptionsDialog();
break;
- }
default:
NOTREACHED();
break;
}
}
+Browser* BackgroundModeManager::GetBrowserWindow() {
+ Browser* browser = BrowserList::GetLastActive();
+ if (!browser) {
+ Browser::OpenEmptyWindow(profile_);
+ browser = BrowserList::GetLastActive();
+ }
+ return browser;
+}
+
// static
void BackgroundModeManager::RegisterUserPrefs(PrefService* prefs) {
prefs->RegisterBooleanPref(prefs::kBackgroundModeEnabled, true);