menu_runner_impl_adapter.h revision 116680a4aac90f2aa7413d9095a592090648e557
1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_IMPL_ADAPTER_H_
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_IMPL_ADAPTER_H_
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/views/controls/menu/menu_runner_impl_interface.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace views {
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace internal {
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass MenuRunnerImpl;
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Given a MenuModel, adapts MenuRunnerImpl which expects a MenuItemView.
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass MenuRunnerImplAdapter : public MenuRunnerImplInterface {
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public:
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  explicit MenuRunnerImplAdapter(ui::MenuModel* menu_model);
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // MenuRunnerImplInterface:
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual bool IsRunning() const OVERRIDE;
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void Release() OVERRIDE;
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual MenuRunner::RunResult RunMenuAt(Widget* parent,
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                          MenuButton* button,
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                          const gfx::Rect& bounds,
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                          MenuAnchorPosition anchor,
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                          int32 types) OVERRIDE;
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void Cancel() OVERRIDE;
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual base::TimeDelta GetClosingEventTime() const OVERRIDE;
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private:
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual ~MenuRunnerImplAdapter();
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<MenuModelAdapter> menu_model_adapter_;
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  MenuRunnerImpl* impl_;
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(MenuRunnerImplAdapter);
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch};
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace internal
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace views
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif  // UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_IMPL_ADAPTER_H_
44