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

Unified Diff: chrome/browser/back_forward_menu_model_views.cc

Issue 126092: Begin to upgrade BackForwardMenuModelViews to use new menu API.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 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/back_forward_menu_model_views.cc
===================================================================
--- chrome/browser/back_forward_menu_model_views.cc (revision 18347)
+++ chrome/browser/back_forward_menu_model_views.cc (working copy)
@@ -4,59 +4,94 @@
#include "chrome/browser/back_forward_menu_model_views.h"
+#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/browser.h"
#include "chrome/browser/metrics/user_metrics.h"
-#include "grit/generated_resources.h"
+#include "views/controls/menu/menu_2.h"
+#include "views/widget/widget.h"
-// static
-BackForwardMenuModel* BackForwardMenuModel::Create(Browser* browser,
- ModelType model_type) {
- return new BackForwardMenuModelViews(browser, model_type);
-}
+////////////////////////////////////////////////////////////////////////////////
+// BackForwardMenuModelViews, public:
BackForwardMenuModelViews::BackForwardMenuModelViews(Browser* browser,
- ModelType model_type) {
- browser_ = browser;
- model_type_ = model_type;
+ ModelType model_type,
+ views::Widget* frame)
+ : BackForwardMenuModel(browser, model_type),
+ frame_(frame) {
}
-std::wstring BackForwardMenuModelViews::GetLabel(int menu_id) const {
- return GetItemLabel(menu_id);
+////////////////////////////////////////////////////////////////////////////////
+// BackForwardMenuModelViews, views::Menu2Model implementation:
+
+bool BackForwardMenuModelViews::HasIcons() const {
+ return true;
}
-const SkBitmap& BackForwardMenuModelViews::GetIcon(int menu_id) const {
- // Return NULL if the item doesn't have an icon
- if (!ItemHasIcon(menu_id))
- return GetEmptyIcon();
+int BackForwardMenuModelViews::GetItemCount() const {
+ return GetTotalItemCount();
+}
- return GetItemIcon(menu_id);
+views::Menu2Model::ItemType BackForwardMenuModelViews::GetTypeAt(
+ int index) const {
+ if (IsSeparator(GetCommandIdAt(index)))
+ return views::Menu2Model::TYPE_SEPARATOR;
+ return views::Menu2Model::TYPE_COMMAND;
}
-bool BackForwardMenuModelViews::IsItemSeparator(int menu_id) const {
- return IsSeparator(menu_id);
+int BackForwardMenuModelViews::GetCommandIdAt(int index) const {
+ return index + 1;
}
-bool BackForwardMenuModelViews::HasIcon(int menu_id) const {
- return ItemHasIcon(menu_id);
+std::wstring BackForwardMenuModelViews::GetLabelAt(int index) const {
+ return GetItemLabel(GetCommandIdAt(index));
}
-bool BackForwardMenuModelViews::SupportsCommand(int menu_id) const {
- return ItemHasCommand(menu_id);
+bool BackForwardMenuModelViews::IsLabelDynamicAt(int index) const {
+ return false;
}
-bool BackForwardMenuModelViews::IsCommandEnabled(int menu_id) const {
- return ItemHasCommand(menu_id);
+bool BackForwardMenuModelViews::GetAcceleratorAt(
+ int index,
+ views::Accelerator* accelerator) const {
+ // Look up the history accelerator.
+ if (GetCommandIdAt(index) == GetTotalItemCount())
+ return frame_->GetAccelerator(IDC_SHOW_HISTORY, accelerator);
+ return false;
}
-void BackForwardMenuModelViews::ExecuteCommand(int menu_id) {
- ExecuteCommandById(menu_id);
+bool BackForwardMenuModelViews::IsItemCheckedAt(int index) const {
+ return false;
}
+int BackForwardMenuModelViews::GetGroupIdAt(int index) const {
+ return -1;
+}
+
+bool BackForwardMenuModelViews::GetIconAt(int index, SkBitmap* icon) const {
+ if (ItemHasIcon(GetCommandIdAt(index))) {
+ *icon = GetItemIcon(GetCommandIdAt(index));
+ return true;
+ }
+ return false;
+}
+
+bool BackForwardMenuModelViews::IsEnabledAt(int index) const {
+ return true;
+}
+
+views::Menu2Model* BackForwardMenuModelViews::GetSubmenuModelAt(
+ int index) const {
+ return NULL;
+}
+
+void BackForwardMenuModelViews::HighlightChangedTo(int index) {
+}
+
+void BackForwardMenuModelViews::ActivatedAt(int index) {
+ ExecuteCommandById(GetCommandIdAt(index));
+}
+
void BackForwardMenuModelViews::MenuWillShow() {
UserMetrics::RecordComputedAction(BuildActionName(L"Popup", -1),
browser_->profile());
}
-
-int BackForwardMenuModelViews::GetItemCount() const {
- return GetTotalItemCount();
-}

Powered by Google App Engine
This is Rietveld 408576698