1 // Copyright (c) 2012 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 CHROME_BROWSER_UI_COCOA_TOOLBAR_BACK_FORWARD_MENU_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_COCOA_TOOLBAR_BACK_FORWARD_MENU_CONTROLLER_H_ 7 8 #import <Cocoa/Cocoa.h> 9 10 #include "base/mac/scoped_nsobject.h" 11 #include "base/memory/scoped_ptr.h" 12 #include "chrome/browser/ui/toolbar/back_forward_menu_model.h" 13 14 @class MenuButton; 15 16 typedef BackForwardMenuModel::ModelType BackForwardMenuType; 17 const BackForwardMenuType BACK_FORWARD_MENU_TYPE_BACK = 18 BackForwardMenuModel::BACKWARD_MENU; 19 const BackForwardMenuType BACK_FORWARD_MENU_TYPE_FORWARD = 20 BackForwardMenuModel::FORWARD_MENU; 21 22 // A class that manages the back/forward menu (and delayed-menu button, and 23 // model). 24 25 @interface BackForwardMenuController : NSObject<NSMenuDelegate> { 26 @private 27 BackForwardMenuType type_; 28 MenuButton* button_; // Weak; comes from nib. 29 scoped_ptr<BackForwardMenuModel> model_; 30 base::scoped_nsobject<NSMenu> backForwardMenu_; 31 } 32 33 // Type (back or forwards); can only be set on initialization. 34 @property(readonly, nonatomic) BackForwardMenuType type; 35 36 - (id)initWithBrowser:(Browser*)browser 37 modelType:(BackForwardMenuType)type 38 button:(MenuButton*)button; 39 40 @end // @interface BackForwardMenuController 41 42 #endif // CHROME_BROWSER_UI_COCOA_TOOLBAR_BACK_FORWARD_MENU_CONTROLLER_H_ 43