1// Copyright (c) 2011 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_CONTROLLER_DELEGATE_H_ 6#define UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_DELEGATE_H_ 7 8namespace views { 9 10class MenuItemView; 11 12// This is internal as there should be no need for usage of this class outside 13// of views. 14namespace internal { 15 16// Used by MenuController to notify of interesting events that are intended for 17// the class using MenuController. This is implemented by MenuRunnerImpl. 18class MenuControllerDelegate { 19 public: 20 enum NotifyType { 21 NOTIFY_DELEGATE, 22 DONT_NOTIFY_DELEGATE 23 }; 24 25 // Invoked when MenuController closes a menu and the MenuController was 26 // configured for drop (MenuRunner::FOR_DROP). 27 virtual void DropMenuClosed(NotifyType type, MenuItemView* menu) = 0; 28 29 // Invoked when the MenuDelegate::GetSiblingMenu() returns non-NULL. 30 virtual void SiblingMenuCreated(MenuItemView* menu) = 0; 31 32 protected: 33 virtual ~MenuControllerDelegate() {} 34}; 35 36} // namespace internal 37 38} // namespace view 39 40#endif // UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_DELEGATE_H_ 41