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 16typedef BackForwardMenuModel::ModelType BackForwardMenuType; 17const BackForwardMenuType BACK_FORWARD_MENU_TYPE_BACK = 18 BackForwardMenuModel::BACKWARD_MENU; 19const 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