menu_runner_handler.h revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
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#include "ui/views/controls/menu/menu_item_view.h"
10
11namespace views {
12
13class MenuButton;
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                                          MenuItemView::AnchorPosition 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