OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #include "base/mac_util.h" | 5 #include "base/mac_util.h" |
6 #include "base/sys_string_conversions.h" | 6 #include "base/sys_string_conversions.h" |
7 #include "chrome/browser/bookmarks/bookmark_model.h" | 7 #include "chrome/browser/bookmarks/bookmark_model.h" |
8 #include "chrome/browser/browser.h" | 8 #include "chrome/browser/browser.h" |
9 #include "chrome/browser/browser_list.h" | 9 #include "chrome/browser/browser_list.h" |
10 #import "chrome/browser/cocoa/bookmark_bar_bridge.h" | 10 #import "chrome/browser/cocoa/bookmark_bar_bridge.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 const CGFloat kDefaultBookmarkWidth = 150.0; | 37 const CGFloat kDefaultBookmarkWidth = 150.0; |
38 const CGFloat kBookmarkVerticalPadding = 2.0; | 38 const CGFloat kBookmarkVerticalPadding = 2.0; |
39 const CGFloat kBookmarkHorizontalPadding = 8.0; | 39 const CGFloat kBookmarkHorizontalPadding = 8.0; |
40 }; | 40 }; |
41 | 41 |
42 @implementation BookmarkBarController | 42 @implementation BookmarkBarController |
43 | 43 |
44 - (id)initWithProfile:(Profile*)profile | 44 - (id)initWithProfile:(Profile*)profile |
45 parentView:(NSView*)parentView | 45 parentView:(NSView*)parentView |
46 webContentView:(NSView*)webContentView | 46 webContentView:(NSView*)webContentView |
| 47 infoBarsView:(NSView*)infoBarsView |
47 delegate:(id<BookmarkURLOpener>)delegate { | 48 delegate:(id<BookmarkURLOpener>)delegate { |
48 if ((self = [super initWithNibName:@"BookmarkBar" | 49 if ((self = [super initWithNibName:@"BookmarkBar" |
49 bundle:mac_util::MainAppBundle()])) { | 50 bundle:mac_util::MainAppBundle()])) { |
50 bookmarkModel_ = profile->GetBookmarkModel(); | 51 bookmarkModel_ = profile->GetBookmarkModel(); |
51 preferences_ = profile->GetPrefs(); | 52 preferences_ = profile->GetPrefs(); |
52 parentView_ = parentView; | 53 parentView_ = parentView; |
53 webContentView_ = webContentView; | 54 webContentView_ = webContentView; |
| 55 infoBarsView_ = infoBarsView; |
54 delegate_ = delegate; | 56 delegate_ = delegate; |
55 } | 57 } |
56 return self; | 58 return self; |
57 } | 59 } |
58 | 60 |
59 - (void)awakeFromNib { | 61 - (void)awakeFromNib { |
60 // We default to NOT open, which means height=0. | 62 // We default to NOT open, which means height=0. |
61 DCHECK([[self view] isHidden]); // Hidden so it's OK to change. | 63 DCHECK([[self view] isHidden]); // Hidden so it's OK to change. |
62 NSRect frame = [[self view] frame]; | 64 NSRect frame = [[self view] frame]; |
63 frame.size.height = 0; | 65 frame.size.height = 0; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 } | 115 } |
114 if (!contentViewHasOffset_ && apply) { | 116 if (!contentViewHasOffset_ && apply) { |
115 // There is no offset to unconditionally apply. | 117 // There is no offset to unconditionally apply. |
116 return; | 118 return; |
117 } | 119 } |
118 | 120 |
119 // None of these locals are members of the Hall of Justice. | 121 // None of these locals are members of the Hall of Justice. |
120 NSRect superframe = [parentView_ frame]; | 122 NSRect superframe = [parentView_ frame]; |
121 NSRect frame = [[self view] frame]; | 123 NSRect frame = [[self view] frame]; |
122 NSRect webframe = [webContentView_ frame]; | 124 NSRect webframe = [webContentView_ frame]; |
| 125 NSRect infoframe = [infoBarsView_ frame]; |
123 if (apply) { | 126 if (apply) { |
124 superframe.size.height += kBookmarkBarSuperviewHeightAdjustment; | 127 superframe.size.height += kBookmarkBarSuperviewHeightAdjustment; |
125 // TODO(jrg): y=0 if we add the bookmark bar before the parent | 128 // TODO(jrg): y=0 if we add the bookmark bar before the parent |
126 // view (toolbar) is placed in the view hierarchy. A different | 129 // view (toolbar) is placed in the view hierarchy. A different |
127 // CL, where the bookmark bar is extracted from the toolbar nib, | 130 // CL, where the bookmark bar is extracted from the toolbar nib, |
128 // may fix this awkwardness. | 131 // may fix this awkwardness. |
129 if (superframe.origin.y > 0) { | 132 if (superframe.origin.y > 0) { |
130 superframe.origin.y -= kBookmarkBarSuperviewHeightAdjustment; | 133 superframe.origin.y -= kBookmarkBarSuperviewHeightAdjustment; |
131 webframe.size.height -= kBookmarkBarWebframeHeightAdjustment; | 134 webframe.size.height -= kBookmarkBarWebframeHeightAdjustment; |
132 } | 135 } |
133 frame.size.height += kBookmarkBarHeight; | 136 frame.size.height += kBookmarkBarHeight; |
| 137 infoframe.origin.y -= kBookmarkBarWebframeHeightAdjustment; |
134 } else { | 138 } else { |
135 superframe.size.height -= kBookmarkBarSuperviewHeightAdjustment; | 139 superframe.size.height -= kBookmarkBarSuperviewHeightAdjustment; |
136 superframe.origin.y += kBookmarkBarSuperviewHeightAdjustment; | 140 superframe.origin.y += kBookmarkBarSuperviewHeightAdjustment; |
137 frame.size.height -= kBookmarkBarHeight; | 141 frame.size.height -= kBookmarkBarHeight; |
138 webframe.size.height += kBookmarkBarWebframeHeightAdjustment; | 142 webframe.size.height += kBookmarkBarWebframeHeightAdjustment; |
| 143 infoframe.origin.y += kBookmarkBarWebframeHeightAdjustment; |
139 } | 144 } |
140 | 145 |
141 // TODO(jrg): Animators can be a little fussy. Setting these three | 146 // TODO(jrg): Animators can be a little fussy. Setting these three |
142 // off can sometimes causes races where the finish isn't as | 147 // off can sometimes causes races where the finish isn't as |
143 // expected. Fix, or clean out the animators as an option. | 148 // expected. Fix, or clean out the animators as an option. |
144 // Odd racing is FAR worse than a lack of an animator. | 149 // Odd racing is FAR worse than a lack of an animator. |
145 if (1 /* immediately */) { | 150 if (1 /* immediately */) { |
146 [parentView_ setFrame:superframe]; | 151 [parentView_ setFrame:superframe]; |
147 [webContentView_ setFrame:webframe]; | 152 [webContentView_ setFrame:webframe]; |
| 153 [infoBarsView_ setFrame:infoframe]; |
148 [[self view] setFrame:frame]; | 154 [[self view] setFrame:frame]; |
149 } else { | 155 } else { |
150 [[parentView_ animator] setFrame:superframe]; | 156 [[parentView_ animator] setFrame:superframe]; |
151 [[webContentView_ animator] setFrame:webframe]; | 157 [[webContentView_ animator] setFrame:webframe]; |
| 158 [[infoBarsView_ animator] setFrame:infoframe]; |
152 [[[self view] animator] setFrame:frame]; | 159 [[[self view] animator] setFrame:frame]; |
153 } | 160 } |
154 | 161 |
155 [[self view] setNeedsDisplay:YES]; | 162 [[self view] setNeedsDisplay:YES]; |
156 [parentView_ setNeedsDisplay:YES]; | 163 [parentView_ setNeedsDisplay:YES]; |
157 [webContentView_ setNeedsDisplay:YES]; | 164 [webContentView_ setNeedsDisplay:YES]; |
| 165 [infoBarsView_ setNeedsDisplay:YES]; |
158 } | 166 } |
159 | 167 |
160 - (BOOL)isBookmarkBarVisible { | 168 - (BOOL)isBookmarkBarVisible { |
161 return barShouldBeShown_; | 169 return barShouldBeShown_; |
162 } | 170 } |
163 | 171 |
164 // We don't change a preference; we only change visibility. | 172 // We don't change a preference; we only change visibility. |
165 // Preference changing (global state) is handled in | 173 // Preference changing (global state) is handled in |
166 // BrowserWindowCocoa::ToggleBookmarkBar(). | 174 // BrowserWindowCocoa::ToggleBookmarkBar(). |
167 - (void)toggleBookmarkBar { | 175 - (void)toggleBookmarkBar { |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 - (void)nodeChildrenReordered:(BookmarkModel*)model | 397 - (void)nodeChildrenReordered:(BookmarkModel*)model |
390 node:(const BookmarkNode*)node { | 398 node:(const BookmarkNode*)node { |
391 [self loaded:model]; | 399 [self loaded:model]; |
392 } | 400 } |
393 | 401 |
394 - (void)setDelegate:(id<BookmarkURLOpener>)delegate { | 402 - (void)setDelegate:(id<BookmarkURLOpener>)delegate { |
395 delegate_ = delegate; | 403 delegate_ = delegate; |
396 } | 404 } |
397 | 405 |
398 @end | 406 @end |
OLD | NEW |