Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(863)

Unified Diff: chrome/browser/app_menu_model.cc

Issue 2225003: Implement upgrade notifications.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/app_menu_model.cc
===================================================================
--- chrome/browser/app_menu_model.cc (revision 48146)
+++ chrome/browser/app_menu_model.cc (working copy)
@@ -7,6 +7,7 @@
#include <algorithm>
#include "app/l10n_util.h"
+#include "app/resource_bundle.h"
#include "base/command_line.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/browser.h"
@@ -14,9 +15,11 @@
#include "chrome/browser/profile.h"
#include "chrome/browser/sync/profile_sync_service.h"
#include "chrome/browser/sync/sync_ui_util.h"
+#include "chrome/browser/upgrade_detector.h"
#include "chrome/common/chrome_switches.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
+#include "grit/theme_resources.h"
AppMenuModel::AppMenuModel(menus::SimpleMenuModel::Delegate* delegate,
Browser* browser)
@@ -29,14 +32,35 @@
}
bool AppMenuModel::IsLabelDynamicAt(int index) const {
- return IsSyncItem(index) || SimpleMenuModel::IsLabelDynamicAt(index);
+ return IsDynamicItem(index) || SimpleMenuModel::IsLabelDynamicAt(index);
}
string16 AppMenuModel::GetLabelAt(int index) const {
- return IsSyncItem(index) ?
- GetSyncMenuLabel() : SimpleMenuModel::GetLabelAt(index);
+ if (!IsDynamicItem(index))
+ return SimpleMenuModel::GetLabelAt(index);
+
+ int command_id = GetCommandIdAt(index);
+
+ switch (command_id) {
+ case IDC_ABOUT: return GetAboutEntryMenuLabel(); break;
+ case IDC_SYNC_BOOKMARKS: return GetSyncMenuLabel(); break;
+ default:
+ NOTREACHED();
+ return string16();
+ }
}
+bool AppMenuModel::GetIconAt(int index, SkBitmap* icon) const {
+ if (GetCommandIdAt(index) == IDC_ABOUT &&
+ Singleton<UpgradeDetector>::get()->notify_upgrade()) {
+ // Show the exclamation point next to the menu item.
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance();
+ *icon = *rb.GetBitmapNamed(IDR_UPDATE_AVAILABLE);
+ return true;
+ }
+ return false;
+}
+
void AppMenuModel::Build() {
AddItemWithStringId(IDC_NEW_TAB, IDS_NEW_TAB);
AddItemWithStringId(IDC_NEW_WINDOW, IDS_NEW_WINDOW);
@@ -160,6 +184,17 @@
browser_->profile()->GetOriginalProfile()->GetProfileSyncService());
}
-bool AppMenuModel::IsSyncItem(int index) const {
- return GetCommandIdAt(index) == IDC_SYNC_BOOKMARKS;
+string16 AppMenuModel::GetAboutEntryMenuLabel() const {
+ if (Singleton<UpgradeDetector>::get()->notify_upgrade()) {
+ return l10n_util::GetStringFUTF16(
+ IDS_UPDATE_NOW, l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
+ }
+ return l10n_util::GetStringFUTF16(
+ IDS_ABOUT, l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
}
+
+bool AppMenuModel::IsDynamicItem(int index) const {
+ int command_id = GetCommandIdAt(index);
+ return command_id == IDC_SYNC_BOOKMARKS ||
+ command_id == IDC_ABOUT;
+}

Powered by Google App Engine
This is Rietveld 408576698