Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: chrome/browser/ui/cocoa/tabs/tab_strip_controller.h

Issue 17593006: mac: Update clients of scoped_nsobject.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: iwyu, scoped_nsprotocol Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_STRIP_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_UI_COCOA_TABS_TAB_STRIP_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_COCOA_TABS_TAB_STRIP_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_COCOA_TABS_TAB_STRIP_CONTROLLER_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 9
10 #include "base/memory/scoped_nsobject.h" 10 #include "base/mac/scoped_nsobject.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #import "chrome/browser/ui/cocoa/tabs/tab_controller_target.h" 12 #import "chrome/browser/ui/cocoa/tabs/tab_controller_target.h"
13 #import "chrome/browser/ui/cocoa/url_drop_target.h" 13 #import "chrome/browser/ui/cocoa/url_drop_target.h"
14 #include "chrome/browser/ui/tabs/hover_tab_selector.h" 14 #include "chrome/browser/ui/tabs/hover_tab_selector.h"
15 15
16 @class CrTrackingArea; 16 @class CrTrackingArea;
17 @class NewTabButton; 17 @class NewTabButton;
18 @class TabContentsController; 18 @class TabContentsController;
19 @class TabView; 19 @class TabView;
20 @class TabStripDragController; 20 @class TabStripDragController;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 // a supporting C++ bridge object to register for notifications from the 54 // a supporting C++ bridge object to register for notifications from the
55 // TabStripModel. The Obj-C part of this class handles drag and drop and all 55 // TabStripModel. The Obj-C part of this class handles drag and drop and all
56 // the other Cocoa-y aspects. 56 // the other Cocoa-y aspects.
57 // 57 //
58 // For a full description of the design, see 58 // For a full description of the design, see
59 // http://www.chromium.org/developers/design-documents/tab-strip-mac 59 // http://www.chromium.org/developers/design-documents/tab-strip-mac
60 @interface TabStripController : 60 @interface TabStripController :
61 NSObject<TabControllerTarget, 61 NSObject<TabControllerTarget,
62 URLDropTargetController> { 62 URLDropTargetController> {
63 @private 63 @private
64 scoped_nsobject<TabStripView> tabStripView_; 64 base::scoped_nsobject<TabStripView> tabStripView_;
65 NSView* switchView_; // weak 65 NSView* switchView_; // weak
66 scoped_nsobject<NSView> dragBlockingView_; // avoid bad window server drags 66 base::scoped_nsobject<NSView> dragBlockingView_; // avoid bad window server
67 // drags
67 NewTabButton* newTabButton_; // weak, obtained from the nib. 68 NewTabButton* newTabButton_; // weak, obtained from the nib.
68 69
69 // The controller that manages all the interactions of dragging tabs. 70 // The controller that manages all the interactions of dragging tabs.
70 scoped_nsobject<TabStripDragController> dragController_; 71 base::scoped_nsobject<TabStripDragController> dragController_;
71 72
72 // Tracks the newTabButton_ for rollovers. 73 // Tracks the newTabButton_ for rollovers.
73 scoped_nsobject<CrTrackingArea> newTabTrackingArea_; 74 base::scoped_nsobject<CrTrackingArea> newTabTrackingArea_;
74 scoped_ptr<TabStripModelObserverBridge> bridge_; 75 scoped_ptr<TabStripModelObserverBridge> bridge_;
75 Browser* browser_; // weak 76 Browser* browser_; // weak
76 TabStripModel* tabStripModel_; // weak 77 TabStripModel* tabStripModel_; // weak
77 // Delegate that is informed about tab state changes. 78 // Delegate that is informed about tab state changes.
78 id<TabStripControllerDelegate> delegate_; // weak 79 id<TabStripControllerDelegate> delegate_; // weak
79 80
80 // YES if the new tab button is currently displaying the hover image (if the 81 // YES if the new tab button is currently displaying the hover image (if the
81 // mouse is currently over the button). 82 // mouse is currently over the button).
82 BOOL newTabButtonShowingHoverImage_; 83 BOOL newTabButtonShowingHoverImage_;
83 84
84 // Access to the TabContentsControllers (which own the parent view 85 // Access to the TabContentsControllers (which own the parent view
85 // for the toolbar and associated tab contents) given an index. Call 86 // for the toolbar and associated tab contents) given an index. Call
86 // |indexFromModelIndex:| to convert a |tabStripModel_| index to a 87 // |indexFromModelIndex:| to convert a |tabStripModel_| index to a
87 // |tabContentsArray_| index. Do NOT assume that the indices of 88 // |tabContentsArray_| index. Do NOT assume that the indices of
88 // |tabStripModel_| and this array are identical, this is e.g. not true while 89 // |tabStripModel_| and this array are identical, this is e.g. not true while
89 // tabs are animating closed (closed tabs are removed from |tabStripModel_| 90 // tabs are animating closed (closed tabs are removed from |tabStripModel_|
90 // immediately, but from |tabContentsArray_| only after their close animation 91 // immediately, but from |tabContentsArray_| only after their close animation
91 // has completed). 92 // has completed).
92 scoped_nsobject<NSMutableArray> tabContentsArray_; 93 base::scoped_nsobject<NSMutableArray> tabContentsArray_;
93 // An array of TabControllers which manage the actual tab views. See note 94 // An array of TabControllers which manage the actual tab views. See note
94 // above |tabContentsArray_|. |tabContentsArray_| and |tabArray_| always 95 // above |tabContentsArray_|. |tabContentsArray_| and |tabArray_| always
95 // contain objects belonging to the same tabs at the same indices. 96 // contain objects belonging to the same tabs at the same indices.
96 scoped_nsobject<NSMutableArray> tabArray_; 97 base::scoped_nsobject<NSMutableArray> tabArray_;
97 98
98 // Set of TabControllers that are currently animating closed. 99 // Set of TabControllers that are currently animating closed.
99 scoped_nsobject<NSMutableSet> closingControllers_; 100 base::scoped_nsobject<NSMutableSet> closingControllers_;
100 101
101 // These values are only used during a drag, and override tab positioning. 102 // These values are only used during a drag, and override tab positioning.
102 TabView* placeholderTab_; // weak. Tab being dragged 103 TabView* placeholderTab_; // weak. Tab being dragged
103 NSRect placeholderFrame_; // Frame to use 104 NSRect placeholderFrame_; // Frame to use
104 NSRect droppedTabFrame_; // Initial frame of a dropped tab, for animation. 105 NSRect droppedTabFrame_; // Initial frame of a dropped tab, for animation.
105 // Frame targets for all the current views. 106 // Frame targets for all the current views.
106 // target frames are used because repeated requests to [NSView animator]. 107 // target frames are used because repeated requests to [NSView animator].
107 // aren't coalesced, so we store frames to avoid redundant calls. 108 // aren't coalesced, so we store frames to avoid redundant calls.
108 scoped_nsobject<NSMutableDictionary> targetFrames_; 109 base::scoped_nsobject<NSMutableDictionary> targetFrames_;
109 NSRect newTabTargetFrame_; 110 NSRect newTabTargetFrame_;
110 // If YES, do not show the new tab button during layout. 111 // If YES, do not show the new tab button during layout.
111 BOOL forceNewTabButtonHidden_; 112 BOOL forceNewTabButtonHidden_;
112 // YES if we've successfully completed the initial layout. When this is 113 // YES if we've successfully completed the initial layout. When this is
113 // NO, we probably don't want to do any animation because we're just coming 114 // NO, we probably don't want to do any animation because we're just coming
114 // into being. 115 // into being.
115 BOOL initialLayoutComplete_; 116 BOOL initialLayoutComplete_;
116 117
117 // Width available for resizing the tabs (doesn't include the new tab 118 // Width available for resizing the tabs (doesn't include the new tab
118 // button). Used to restrict the available width when closing many tabs at 119 // button). Used to restrict the available width when closing many tabs at
119 // once to prevent them from resizing to fit the full width. If the entire 120 // once to prevent them from resizing to fit the full width. If the entire
120 // width should be used, this will have a value of |kUseFullAvailableWidth|. 121 // width should be used, this will have a value of |kUseFullAvailableWidth|.
121 float availableResizeWidth_; 122 float availableResizeWidth_;
122 // A tracking area that's the size of the tab strip used to be notified 123 // A tracking area that's the size of the tab strip used to be notified
123 // when the mouse moves in the tab strip 124 // when the mouse moves in the tab strip
124 scoped_nsobject<CrTrackingArea> trackingArea_; 125 base::scoped_nsobject<CrTrackingArea> trackingArea_;
125 TabView* hoveredTab_; // weak. Tab that the mouse is hovering over 126 TabView* hoveredTab_; // weak. Tab that the mouse is hovering over
126 127
127 // Array of subviews which are permanent (and which should never be removed), 128 // Array of subviews which are permanent (and which should never be removed),
128 // such as the new-tab button, but *not* the tabs themselves. 129 // such as the new-tab button, but *not* the tabs themselves.
129 scoped_nsobject<NSMutableArray> permanentSubviews_; 130 base::scoped_nsobject<NSMutableArray> permanentSubviews_;
130 131
131 // The default favicon, so we can use one copy for all buttons. 132 // The default favicon, so we can use one copy for all buttons.
132 scoped_nsobject<NSImage> defaultFavicon_; 133 base::scoped_nsobject<NSImage> defaultFavicon_;
133 134
134 // The amount by which to indent the tabs on the sides (to make room for the 135 // The amount by which to indent the tabs on the sides (to make room for the
135 // red/yellow/green and incognito/fullscreen buttons). 136 // red/yellow/green and incognito/fullscreen buttons).
136 CGFloat leftIndentForControls_; 137 CGFloat leftIndentForControls_;
137 CGFloat rightIndentForControls_; 138 CGFloat rightIndentForControls_;
138 139
139 // Is the mouse currently inside the strip; 140 // Is the mouse currently inside the strip;
140 BOOL mouseInside_; 141 BOOL mouseInside_;
141 142
142 // Helper for performing tab selection as a result of dragging over a tab. 143 // Helper for performing tab selection as a result of dragging over a tab.
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 239
239 // Returns the currently active TabContentsController. 240 // Returns the currently active TabContentsController.
240 - (TabContentsController*)activeTabContentsController; 241 - (TabContentsController*)activeTabContentsController;
241 242
242 @end 243 @end
243 244
244 // Returns the parent view to use when showing a sheet for a given web contents. 245 // Returns the parent view to use when showing a sheet for a given web contents.
245 NSView* GetSheetParentViewForWebContents(content::WebContents* web_contents); 246 NSView* GetSheetParentViewForWebContents(content::WebContents* web_contents);
246 247
247 #endif // CHROME_BROWSER_UI_COCOA_TABS_TAB_STRIP_CONTROLLER_H_ 248 #endif // CHROME_BROWSER_UI_COCOA_TABS_TAB_STRIP_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698