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