1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_RENDERER_CONTEXT_MENU_RENDER_TOOLKIT_DELEGATE_VIEWS_H_ 6 #define COMPONENTS_RENDERER_CONTEXT_MENU_RENDER_TOOLKIT_DELEGATE_VIEWS_H_ 7 8 #include "components/renderer_context_menu/render_view_context_menu_base.h" 9 #include "ui/base/ui_base_types.h" 10 11 namespace gfx { 12 class Point; 13 } 14 15 namespace views { 16 class MenuItemView; 17 class MenuModelAdapter; 18 class MenuRunner; 19 class Widget; 20 } 21 22 namespace ui { 23 class SimpleMenuModel; 24 } 25 26 class ToolkitDelegateViews : public RenderViewContextMenuBase::ToolkitDelegate { 27 public: 28 ToolkitDelegateViews(); 29 virtual ~ToolkitDelegateViews(); 30 31 void RunMenuAt(views::Widget* parent, 32 const gfx::Point& point, 33 ui::MenuSourceType type); 34 35 private: 36 // ToolkitDelegate: 37 virtual void Init(ui::SimpleMenuModel* menu_model) OVERRIDE; 38 virtual void Cancel() OVERRIDE; 39 virtual void UpdateMenuItem(int command_id, 40 bool enabled, 41 bool hidden, 42 const base::string16& title) OVERRIDE; 43 44 scoped_ptr<views::MenuModelAdapter> menu_adapter_; 45 scoped_ptr<views::MenuRunner> menu_runner_; 46 47 // Weak. Owned by menu_runner_; 48 views::MenuItemView* menu_view_; 49 50 DISALLOW_COPY_AND_ASSIGN(ToolkitDelegateViews); 51 }; 52 53 #endif // COMPONENTS_RENDERER_CONTEXT_MENU_RENDER_TOOLKIT_DELEGATE_VIEWS_H_ 54