OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_UI_COCOA_TABS_TAB_WINDOW_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_UI_COCOA_TABS_TAB_WINDOW_CONTROLLER_H_ |
6 #define CHROME_BROWSER_UI_COCOA_TABS_TAB_WINDOW_CONTROLLER_H_ | 6 #define CHROME_BROWSER_UI_COCOA_TABS_TAB_WINDOW_CONTROLLER_H_ |
7 | 7 |
8 // A class acting as the Objective-C window controller for a window that has | 8 // A class acting as the Objective-C window controller for a window that has |
9 // tabs which can be dragged around. Tabs can be re-arranged within the same | 9 // tabs which can be dragged around. Tabs can be re-arranged within the same |
10 // window or dragged into other TabWindowController windows. This class doesn't | 10 // window or dragged into other TabWindowController windows. This class doesn't |
(...skipping 18 matching lines...) Expand all Loading... |
29 | 29 |
30 @interface TabWindowController : NSWindowController<NSWindowDelegate> { | 30 @interface TabWindowController : NSWindowController<NSWindowDelegate> { |
31 @private | 31 @private |
32 IBOutlet FastResizeView* tabContentArea_; | 32 IBOutlet FastResizeView* tabContentArea_; |
33 IBOutlet TabStripView* tabStripView_; | 33 IBOutlet TabStripView* tabStripView_; |
34 NSWindow* overlayWindow_; // Used during dragging for window opacity tricks | 34 NSWindow* overlayWindow_; // Used during dragging for window opacity tricks |
35 NSView* cachedContentView_; // Used during dragging for identifying which | 35 NSView* cachedContentView_; // Used during dragging for identifying which |
36 // view is the proper content area in the overlay | 36 // view is the proper content area in the overlay |
37 // (weak) | 37 // (weak) |
38 scoped_nsobject<FocusTracker> focusBeforeOverlay_; | 38 scoped_nsobject<FocusTracker> focusBeforeOverlay_; |
39 scoped_nsobject<NSMutableSet> lockedTabs_; | |
40 BOOL closeDeferred_; // If YES, call performClose: in removeOverlay:. | 39 BOOL closeDeferred_; // If YES, call performClose: in removeOverlay:. |
41 // Difference between height of window content area and height of the | 40 // Difference between height of window content area and height of the |
42 // |tabContentArea_|. Calculated when the window is loaded from the nib and | 41 // |tabContentArea_|. Calculated when the window is loaded from the nib and |
43 // cached in order to restore the delta when switching tab modes. | 42 // cached in order to restore the delta when switching tab modes. |
44 CGFloat contentAreaHeightDelta_; | 43 CGFloat contentAreaHeightDelta_; |
45 } | 44 } |
46 @property(readonly, nonatomic) TabStripView* tabStripView; | 45 @property(readonly, nonatomic) TabStripView* tabStripView; |
47 @property(readonly, nonatomic) FastResizeView* tabContentArea; | 46 @property(readonly, nonatomic) FastResizeView* tabContentArea; |
48 | 47 |
49 // Used during tab dragging to turn on/off the overlay window when a tab | 48 // Used during tab dragging to turn on/off the overlay window when a tab |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 // Return the view of the active tab. | 125 // Return the view of the active tab. |
127 - (NSView*)activeTabView; | 126 - (NSView*)activeTabView; |
128 | 127 |
129 // The title of the active tab. | 128 // The title of the active tab. |
130 - (NSString*)activeTabTitle; | 129 - (NSString*)activeTabTitle; |
131 | 130 |
132 // Called to check whether or not this controller's window has a tab strip (YES | 131 // Called to check whether or not this controller's window has a tab strip (YES |
133 // if it does, NO otherwise). The default implementation returns YES. | 132 // if it does, NO otherwise). The default implementation returns YES. |
134 - (BOOL)hasTabStrip; | 133 - (BOOL)hasTabStrip; |
135 | 134 |
136 // Get/set whether a particular tab is draggable between windows. | 135 // Gets whether a particular tab is draggable between windows. |
137 - (BOOL)isTabDraggable:(NSView*)tabView; | 136 - (BOOL)isTabDraggable:(NSView*)tabView; |
138 - (void)setTab:(NSView*)tabView isDraggable:(BOOL)draggable; | |
139 | 137 |
140 // Tell the window that it needs to call performClose: as soon as the current | 138 // Tell the window that it needs to call performClose: as soon as the current |
141 // drag is complete. This prevents a window (and its overlay) from going away | 139 // drag is complete. This prevents a window (and its overlay) from going away |
142 // during a drag. | 140 // during a drag. |
143 - (void)deferPerformClose; | 141 - (void)deferPerformClose; |
144 | 142 |
145 @end | 143 @end |
146 | 144 |
147 @interface TabWindowController(ProtectedMethods) | 145 @interface TabWindowController(ProtectedMethods) |
148 // Tells the tab strip to forget about this tab in preparation for it being | 146 // Tells the tab strip to forget about this tab in preparation for it being |
149 // put into a different tab strip, such as during a drop on another window. | 147 // put into a different tab strip, such as during a drop on another window. |
150 - (void)detachTabView:(NSView*)view; | 148 - (void)detachTabView:(NSView*)view; |
151 | 149 |
152 // Called when the size of the window content area has changed. Override to | 150 // Called when the size of the window content area has changed. Override to |
153 // position specific views. Base class implementation does nothing. | 151 // position specific views. Base class implementation does nothing. |
154 - (void)layoutSubviews; | 152 - (void)layoutSubviews; |
155 @end | 153 @end |
156 | 154 |
157 #endif // CHROME_BROWSER_UI_COCOA_TABS_TAB_WINDOW_CONTROLLER_H_ | 155 #endif // CHROME_BROWSER_UI_COCOA_TABS_TAB_WINDOW_CONTROLLER_H_ |
OLD | NEW |