Index: chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc |
diff --git a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc |
index ed302ad000d52c3a77a8bc583cf9730bddce1b48..5ce65380684b3336dff6ebeb6422d760b2d7597d 100644 |
--- a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc |
+++ b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc |
@@ -7,86 +7,16 @@ |
#include "base/logging.h" |
#include "base/strings/string16.h" |
#include "chrome/app/chrome_command_ids.h" |
+#include "components/renderer_context_menu/views/toolkit_delegate_views.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/web_contents.h" |
#include "grit/generated_resources.h" |
#include "ui/base/accelerators/accelerator.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/events/keycodes/keyboard_codes.h" |
-#include "ui/gfx/point.h" |
-#include "ui/views/controls/menu/menu_item_view.h" |
-#include "ui/views/controls/menu/menu_model_adapter.h" |
-#include "ui/views/controls/menu/menu_runner.h" |
using content::WebContents; |
-namespace { |
- |
-// Views implementation of the ToolkitDelegate. |
-// TODO(oshima): Move this to components/renderer_context_menu/ |
-class ToolkitDelegateViews : public RenderViewContextMenu::ToolkitDelegate { |
- public: |
- ToolkitDelegateViews() : menu_view_(NULL) {} |
- |
- virtual ~ToolkitDelegateViews() {} |
- |
- void RunMenuAt(views::Widget* parent, |
- const gfx::Point& point, |
- ui::MenuSourceType type) { |
- views::MenuAnchorPosition anchor_position = |
- (type == ui::MENU_SOURCE_TOUCH || |
- type == ui::MENU_SOURCE_TOUCH_EDIT_MENU) |
- ? views::MENU_ANCHOR_BOTTOMCENTER |
- : views::MENU_ANCHOR_TOPLEFT; |
- views::MenuRunner::RunResult result ALLOW_UNUSED = menu_runner_->RunMenuAt( |
- parent, NULL, gfx::Rect(point, gfx::Size()), anchor_position, type); |
- } |
- |
- private: |
- // ToolkitDelegate: |
- virtual void Init(ui::SimpleMenuModel* menu_model) OVERRIDE { |
- menu_adapter_.reset(new views::MenuModelAdapter(menu_model)); |
- menu_view_ = menu_adapter_->CreateMenu(); |
- menu_runner_.reset(new views::MenuRunner( |
- menu_view_, |
- views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU)); |
- } |
- |
- virtual void Cancel() OVERRIDE{ |
- DCHECK(menu_runner_.get()); |
- menu_runner_->Cancel(); |
- } |
- |
- virtual void UpdateMenuItem(int command_id, |
- bool enabled, |
- bool hidden, |
- const base::string16& title) OVERRIDE { |
- views::MenuItemView* item = menu_view_->GetMenuItemByID(command_id); |
- if (!item) |
- return; |
- |
- item->SetEnabled(enabled); |
- item->SetTitle(title); |
- item->SetVisible(!hidden); |
- |
- views::MenuItemView* parent = item->GetParentMenuItem(); |
- if (!parent) |
- return; |
- |
- parent->ChildrenChanged(); |
- } |
- |
- scoped_ptr<views::MenuModelAdapter> menu_adapter_; |
- scoped_ptr<views::MenuRunner> menu_runner_; |
- |
- // Weak. Owned by menu_runner_; |
- views::MenuItemView* menu_view_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ToolkitDelegateViews); |
-}; |
- |
-} // namespace |
- |
//////////////////////////////////////////////////////////////////////////////// |
// RenderViewContextMenuViews, public: |