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 11 namespace views { 12 13 class MenuButton; 14 class 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. 18 class 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