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