diff options
author | atwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-25 19:31:00 +0000 |
---|---|---|
committer | atwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-25 19:31:00 +0000 |
commit | 7c9ae8ce124cf730b0ef45b43a3b0bba8d284998 (patch) | |
tree | 48e50493283232dbde5ae73625d553893d69ce8a /chrome/browser/background_mode_manager.cc | |
parent | 3320662174e3f45041ecad21bfc5349abdf01b26 (diff) | |
download | chromium_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.cc | 37 |
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); |