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

Side by Side Diff: chrome/browser/cocoa/status_bubble_mac.mm

Issue 155706: Fix the URL status bubble overlapping the Mac download shelf (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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) 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 "chrome/browser/cocoa/status_bubble_mac.h" 5 #include "chrome/browser/cocoa/status_bubble_mac.h"
6 6
7 #include "app/gfx/text_elider.h" 7 #include "app/gfx/text_elider.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/sys_string_conversions.h" 9 #include "base/sys_string_conversions.h"
10 #include "googleurl/src/gurl.h" 10 #include "googleurl/src/gurl.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 @private 49 @private
50 NSString* content_; 50 NSString* content_;
51 BubbleStyle style_; 51 BubbleStyle style_;
52 } 52 }
53 53
54 - (void)setContent:(NSString*)content; 54 - (void)setContent:(NSString*)content;
55 - (void)setStyle:(BubbleStyle)style; 55 - (void)setStyle:(BubbleStyle)style;
56 - (NSFont*)font; 56 - (NSFont*)font;
57 @end 57 @end
58 58
59 StatusBubbleMac::StatusBubbleMac(NSWindow* parent) 59 StatusBubbleMac::StatusBubbleMac(NSWindow* parent, id delegate)
60 : parent_(parent), 60 : parent_(parent),
61 delegate_(delegate),
61 window_(nil), 62 window_(nil),
62 status_text_(nil), 63 status_text_(nil),
63 url_text_(nil) { 64 url_text_(nil),
65 is_download_shelf_visible_(false) {
64 } 66 }
65 67
66 StatusBubbleMac::~StatusBubbleMac() { 68 StatusBubbleMac::~StatusBubbleMac() {
67 Hide(); 69 Hide();
68 } 70 }
69 71
70 void StatusBubbleMac::SetStatus(const std::wstring& status) { 72 void StatusBubbleMac::SetStatus(const std::wstring& status) {
71 Create(); 73 Create();
72 74
73 NSString* status_ns = base::SysWideToNSString(status); 75 NSString* status_ns = base::SysWideToNSString(status);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 offset = NSHeight(window_frame); 175 offset = NSHeight(window_frame);
174 [[window_ contentView] setStyle:STYLE_BOTTOM]; 176 [[window_ contentView] setStyle:STYLE_BOTTOM];
175 } else if (offset > 0) { 177 } else if (offset > 0) {
176 [[window_ contentView] setStyle:STYLE_FLOATING]; 178 [[window_ contentView] setStyle:STYLE_FLOATING];
177 } else { 179 } else {
178 [[window_ contentView] setStyle:STYLE_STANDARD]; 180 [[window_ contentView] setStyle:STYLE_STANDARD];
179 } 181 }
180 182
181 offset_ = offset; 183 offset_ = offset;
182 window_frame.origin.y -= offset; 184 window_frame.origin.y -= offset;
183 [window_ setFrame:window_frame display:YES];
184 } else { 185 } else {
185 offset_ = 0; 186 offset_ = 0;
186 [[window_ contentView] setStyle:STYLE_STANDARD]; 187 [[window_ contentView] setStyle:STYLE_STANDARD];
187 [window_ setFrame:window_frame display:YES];
188 } 188 }
189
190 // |delegate_| can be nil during unit tests.
191 if (is_download_shelf_visible_) {
192 if ([delegate_ respondsToSelector:@selector(verticalOffsetForStatusBubble)])
193 window_frame.origin.y += [delegate_ verticalOffsetForStatusBubble];
194 }
195
196 [window_ setFrame:window_frame display:YES];
189 } 197 }
190 198
191 void StatusBubbleMac::UpdateDownloadShelfVisibility(bool visible) { 199 void StatusBubbleMac::UpdateDownloadShelfVisibility(bool visible) {
192 NOTIMPLEMENTED(); 200 is_download_shelf_visible_ = visible;
193 } 201 }
194 202
195 void StatusBubbleMac::Create() { 203 void StatusBubbleMac::Create() {
196 if (window_) 204 if (window_)
197 return; 205 return;
198 206
199 NSRect rect = [parent_ frame]; 207 NSRect rect = [parent_ frame];
200 rect.size.height = kWindowHeight; 208 rect.size.height = kWindowHeight;
201 rect.size.width = static_cast<int>(kWindowWidthPercent * rect.size.width); 209 rect.size.width = static_cast<int>(kWindowWidthPercent * rect.size.width);
202 // TODO(avi):fix this for RTL 210 // TODO(avi):fix this for RTL
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 328
321 NSDictionary* textDict = [NSDictionary dictionaryWithObjectsAndKeys: 329 NSDictionary* textDict = [NSDictionary dictionaryWithObjectsAndKeys:
322 textFont, NSFontAttributeName, 330 textFont, NSFontAttributeName,
323 textShadow, NSShadowAttributeName, 331 textShadow, NSShadowAttributeName,
324 nil]; 332 nil];
325 [content_ drawAtPoint:NSMakePoint(kTextPositionX, kTextPositionY) 333 [content_ drawAtPoint:NSMakePoint(kTextPositionX, kTextPositionY)
326 withAttributes:textDict]; 334 withAttributes:textDict];
327 } 335 }
328 336
329 @end 337 @end
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/status_bubble_mac.h ('k') | chrome/browser/cocoa/status_bubble_mac_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698