15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_DELEGATE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_DELEGATE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace views { 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MenuItemView; 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This is internal as there should be no need for usage of this class outside 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// of views. 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace internal { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used by MenuController to notify of interesting events that are intended for 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the class using MenuController. This is implemented by MenuRunnerImpl. 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MenuControllerDelegate { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum NotifyType { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NOTIFY_DELEGATE, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DONT_NOTIFY_DELEGATE 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoked when MenuController closes a menu and the MenuController was 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // configured for drop (MenuRunner::FOR_DROP). 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DropMenuClosed(NotifyType type, MenuItemView* menu) = 0; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoked when the MenuDelegate::GetSiblingMenu() returns non-NULL. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SiblingMenuCreated(MenuItemView* menu) = 0; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MenuControllerDelegate() {} 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace internal 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace view 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_DELEGATE_H_ 41