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