- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / tabs / tab_controller_target.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_TABS_TAB_CONTROLLER_TARGET_H_
6 #define CHROME_BROWSER_UI_COCOA_TABS_TAB_CONTROLLER_TARGET_H_
7
8 #include "chrome/browser/ui/tabs/tab_menu_model.h"
9 #include "chrome/browser/ui/tabs/tab_strip_model.h"
10
11 @class TabController;
12 @protocol TabDraggingEventTarget;
13
14 // A protocol to be implemented by a TabController's target.
15 @protocol TabControllerTarget
16 - (void)selectTab:(id)sender;
17 - (void)closeTab:(id)sender;
18
19 // Dispatch context menu commands for the given tab controller.
20 - (void)commandDispatch:(TabStripModel::ContextMenuCommand)command
21           forController:(TabController*)controller;
22 // Returns YES if the specificed command should be enabled for the given
23 // controller.
24 - (BOOL)isCommandEnabled:(TabStripModel::ContextMenuCommand)command
25            forController:(TabController*)controller;
26
27 // Returns a context menu model for a given controller. Caller owns the result.
28 - (ui::SimpleMenuModel*)contextMenuModelForController:(TabController*)controller
29     menuDelegate:(ui::SimpleMenuModel::Delegate*)delegate;
30
31 // Returns a weak reference to the controller that manages dragging of tabs.
32 - (id<TabDraggingEventTarget>)dragController;
33
34 @end
35
36 #endif  // CHROME_BROWSER_UI_COCOA_TABS_TAB_CONTROLLER_TARGET_H_