Home | History | Annotate | Download | only in views
      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