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(); |
-} |