// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_DELEGATE_H_ #define UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_DELEGATE_H_ namespace views { class MenuItemView; // This is internal as there should be no need for usage of this class outside // of views. namespace internal { // Used by MenuController to notify of interesting events that are intended for // the class using MenuController. This is implemented by MenuRunnerImpl. class MenuControllerDelegate { public: enum NotifyType { NOTIFY_DELEGATE, DONT_NOTIFY_DELEGATE }; // Invoked when MenuController closes a menu and the MenuController was // configured for drop (MenuRunner::FOR_DROP). virtual void DropMenuClosed(NotifyType type, MenuItemView* menu) = 0; // Invoked when the MenuDelegate::GetSiblingMenu() returns non-NULL. virtual void SiblingMenuCreated(MenuItemView* menu) = 0; protected: virtual ~MenuControllerDelegate() {} }; } // namespace internal } // namespace view #endif // UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_DELEGATE_H_