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 11namespace gfx { 12class Point; 13} 14 15namespace views { 16class MenuItemView; 17class MenuModelAdapter; 18class MenuRunner; 19class Widget; 20} 21 22namespace ui { 23class SimpleMenuModel; 24} 25 26class 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