16e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
26e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
36e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// found in the LICENSE file.
46e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#ifndef ATHENA_CONTENT_RENDER_VIEW_CONTEXT_MENU_IMPL_H_
66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#define ATHENA_CONTENT_RENDER_VIEW_CONTEXT_MENU_IMPL_H_
76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "components/renderer_context_menu/render_view_context_menu_base.h"
96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace views {
116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class Widget;
126e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}
136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace gfx {
156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class Point;
166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}
176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace athena {
196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class RenderViewContextMenuImpl : public RenderViewContextMenuBase {
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public:
226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  RenderViewContextMenuImpl(content::RenderFrameHost* render_frame_host,
236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                            const content::ContextMenuParams& params);
246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual ~RenderViewContextMenuImpl();
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  void RunMenuAt(views::Widget* parent,
276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                 const gfx::Point& point,
286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                 ui::MenuSourceType type);
296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) private:
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  // RenderViewContextMenuBase:
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void InitMenu() OVERRIDE;
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void RecordShownItem(int id) OVERRIDE;
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void RecordUsedItem(int id) OVERRIDE;
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#if defined(ENABLE_PLUGINS)
366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void HandleAuthorizeAllPlugins() OVERRIDE;
376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#endif
386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void NotifyMenuShown() OVERRIDE;
396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void NotifyURLOpened(const GURL& url,
406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                               content::WebContents* new_contents) OVERRIDE;
416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  // ui::SimpleMenuModel:
436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual bool GetAcceleratorForCommandId(
446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      int command_id,
456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      ui::Accelerator* accelerator) OVERRIDE;
466e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
486e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
496e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
506e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuImpl);
516e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)};
526e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
536e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}  // namespace athena
546e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
556e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#endif  // ATHENA_CONTENT_RENDER_VIEW_CONTEXT_MENU_IMPL_H_
56