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_ 37