• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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