Home | History | Annotate | Download | only in toolbar
      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