1// Copyright 2013 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 UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_HANDLER_H_
6#define UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_HANDLER_H_
7
8#include "base/basictypes.h"
9
10namespace views {
11
12class MenuButton;
13class MenuItemView;
14class Widget;
15
16// Used internally by MenuRunner to show the menu. Can be set in tests (see
17// MenuRunnerTestApi) for mocking running of the menu.
18class VIEWS_EXPORT MenuRunnerHandler {
19 public:
20  virtual ~MenuRunnerHandler() {}
21  virtual MenuRunner::RunResult RunMenuAt(Widget* parent,
22                                          MenuButton* button,
23                                          const gfx::Rect& bounds,
24                                          MenuAnchorPosition anchor,
25                                          ui::MenuSourceType source_type,
26                                          int32 types) = 0;
27};
28
29}  // namespace views
30
31#endif  // UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_HANDLER_H_
32