- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / toolbar / back_forward_menu_controller.h
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_