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

Side by Side Diff: chrome/browser/ui/cocoa/page_info_bubble_controller.mm

Issue 6360007: Objective-C readability review for Robert Sesek <rsesek@google.com>. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove @property space Created 9 years, 11 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #import "chrome/browser/ui/cocoa/page_info_bubble_controller.h" 5 #import "chrome/browser/ui/cocoa/page_info_bubble_controller.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/l10n_util_mac.h" 8 #include "app/l10n_util_mac.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/sys_string_conversions.h" 10 #include "base/sys_string_conversions.h"
11 #include "base/task.h" 11 #include "base/task.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 - (CGFloat)addSeparatorToSubviews:(NSMutableArray*)subviews 46 - (CGFloat)addSeparatorToSubviews:(NSMutableArray*)subviews
47 atOffset:(CGFloat)offset; 47 atOffset:(CGFloat)offset;
48 - (NSPoint)anchorPointForWindowWithHeight:(CGFloat)bubbleHeight 48 - (NSPoint)anchorPointForWindowWithHeight:(CGFloat)bubbleHeight
49 parentWindow:(NSWindow*)parent; 49 parentWindow:(NSWindow*)parent;
50 @end 50 @end
51 51
52 // This simple NSView subclass is used as the single subview of the page info 52 // This simple NSView subclass is used as the single subview of the page info
53 // bubble's window's contentView. Drawing is flipped so that layout of the 53 // bubble's window's contentView. Drawing is flipped so that layout of the
54 // sections is easier. Apple recommends flipping the coordinate origin when 54 // sections is easier. Apple recommends flipping the coordinate origin when
55 // doing a lot of text layout because it's more natural. 55 // doing a lot of text layout because it's more natural.
56 @interface PageInfoContentView : NSView { 56 @interface PageInfoContentView : NSView
57 }
58 @end 57 @end
59 @implementation PageInfoContentView 58 @implementation PageInfoContentView
60 - (BOOL)isFlipped { 59 - (BOOL)isFlipped {
61 return YES; 60 return YES;
62 } 61 }
63 @end 62 @end
64 63
65 namespace { 64 namespace {
66 65
67 // The width of the window, in view coordinates. The height will be determined 66 // The width of the window, in view coordinates. The height will be determined
68 // by the content. 67 // by the content.
69 const NSInteger kWindowWidth = 380; 68 const CGFloat kWindowWidth = 380;
70 69
71 // Spacing in between sections. 70 // Spacing in between sections.
72 const NSInteger kVerticalSpacing = 10; 71 const CGFloat kVerticalSpacing = 10;
73 72
74 // Padding along on the X-axis between the window frame and content. 73 // Padding along on the X-axis between the window frame and content.
75 const NSInteger kFramePadding = 10; 74 const CGFloat kFramePadding = 10;
76 75
77 // Spacing between the optional headline and description text views. 76 // Spacing between the optional headline and description text views.
78 const NSInteger kHeadlineSpacing = 2; 77 const CGFloat kHeadlineSpacing = 2;
79 78
80 // Spacing between the image and the text. 79 // Spacing between the image and the text.
81 const NSInteger kImageSpacing = 10; 80 const CGFloat kImageSpacing = 10;
82 81
83 // Square size of the image. 82 // Square size of the image.
84 const CGFloat kImageSize = 30; 83 const CGFloat kImageSize = 30;
85 84
86 // The X position of the text fields. Variants for with and without an image. 85 // The X position of the text fields. Variants for with and without an image.
87 const CGFloat kTextXPositionNoImage = kFramePadding; 86 const CGFloat kTextXPositionNoImage = kFramePadding;
88 const CGFloat kTextXPosition = kTextXPositionNoImage + kImageSize + 87 const CGFloat kTextXPosition = kTextXPositionNoImage + kImageSize +
89 kImageSpacing; 88 kImageSpacing;
90 89
91 // Width of the text fields. 90 // Width of the text fields.
92 const CGFloat kTextWidth = kWindowWidth - (kImageSize + kImageSpacing + 91 const CGFloat kTextWidth = kWindowWidth - (kImageSize + kImageSpacing +
93 kFramePadding * 2); 92 kFramePadding * 2);
94 93
95 // Bridge that listens for change notifications from the model. 94 // Bridge that listens for change notifications from the model.
96 class PageInfoModelBubbleBridge : public PageInfoModel::PageInfoModelObserver { 95 class PageInfoModelBubbleBridge : public PageInfoModel::PageInfoModelObserver {
pink (ping after 24hrs) 2011/01/24 19:22:23 worth adding a DISALLOW_COPY_AND_ASSIGN on this?
Robert Sesek 2011/01/24 19:55:17 Done.
97 public: 96 public:
98 PageInfoModelBubbleBridge() 97 PageInfoModelBubbleBridge()
99 : controller_(nil), 98 : controller_(nil),
100 ALLOW_THIS_IN_INITIALIZER_LIST(task_factory_(this)) { 99 ALLOW_THIS_IN_INITIALIZER_LIST(task_factory_(this)) {
101 } 100 }
102 101
103 // PageInfoModelObserver implementation. 102 // PageInfoModelObserver implementation.
104 virtual void ModelChanged() { 103 virtual void ModelChanged() {
105 // Check to see if a layout has already been scheduled. 104 // Check to see if a layout has already been scheduled.
106 if (!task_factory_.empty()) 105 if (!task_factory_.empty())
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 159
161 } // namespace browser 160 } // namespace browser
162 161
163 @implementation PageInfoBubbleController 162 @implementation PageInfoBubbleController
164 163
165 @synthesize certID = certID_; 164 @synthesize certID = certID_;
166 165
167 - (id)initWithPageInfoModel:(PageInfoModel*)model 166 - (id)initWithPageInfoModel:(PageInfoModel*)model
168 modelObserver:(PageInfoModel::PageInfoModelObserver*)bridge 167 modelObserver:(PageInfoModel::PageInfoModelObserver*)bridge
169 parentWindow:(NSWindow*)parentWindow { 168 parentWindow:(NSWindow*)parentWindow {
169 DCHECK(parentWindow);
170
170 // Use an arbitrary height because it will be changed by the bridge. 171 // Use an arbitrary height because it will be changed by the bridge.
171 NSRect contentRect = NSMakeRect(0, 0, kWindowWidth, 0); 172 NSRect contentRect = NSMakeRect(0, 0, kWindowWidth, 0);
172 // Create an empty window into which content is placed. 173 // Create an empty window into which content is placed.
173 scoped_nsobject<InfoBubbleWindow> window( 174 scoped_nsobject<InfoBubbleWindow> window(
174 [[InfoBubbleWindow alloc] initWithContentRect:contentRect 175 [[InfoBubbleWindow alloc] initWithContentRect:contentRect
175 styleMask:NSBorderlessWindowMask 176 styleMask:NSBorderlessWindowMask
176 backing:NSBackingStoreBuffered 177 backing:NSBackingStoreBuffered
177 defer:NO]); 178 defer:NO]);
178 179
179 if ((self = [super initWithWindow:window.get() 180 if ((self = [super initWithWindow:window.get()
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 388
388 return NSHeight([certButton frame]); 389 return NSHeight([certButton frame]);
389 } 390 }
390 391
391 // Adds the state image at a pre-determined x position and the given y. This 392 // Adds the state image at a pre-determined x position and the given y. This
392 // does not affect the next Y position because the image is placed next to 393 // does not affect the next Y position because the image is placed next to
393 // a text field that is larger and accounts for the image's size. 394 // a text field that is larger and accounts for the image's size.
394 - (void)addImageViewForInfo:(const PageInfoModel::SectionInfo&)info 395 - (void)addImageViewForInfo:(const PageInfoModel::SectionInfo&)info
395 toSubviews:(NSMutableArray*)subviews 396 toSubviews:(NSMutableArray*)subviews
396 atOffset:(CGFloat)offset { 397 atOffset:(CGFloat)offset {
397 NSRect frame = NSMakeRect(kFramePadding, offset, kImageSize, 398 NSRect frame =
398 kImageSize); 399 NSMakeRect(kFramePadding, offset, kImageSize, kImageSize);
399 scoped_nsobject<NSImageView> imageView( 400 scoped_nsobject<NSImageView> imageView(
400 [[NSImageView alloc] initWithFrame:frame]); 401 [[NSImageView alloc] initWithFrame:frame]);
401 [imageView setImageFrameStyle:NSImageFrameNone]; 402 [imageView setImageFrameStyle:NSImageFrameNone];
402 [imageView setImage:model_->GetIconImage(info.icon_id)]; 403 [imageView setImage:model_->GetIconImage(info.icon_id)];
403 [subviews addObject:imageView.get()]; 404 [subviews addObject:imageView.get()];
404 } 405 }
405 406
406 // Adds the help center button that explains the icons. Returns the y position 407 // Adds the help center button that explains the icons. Returns the y position
407 // delta for the next offset. 408 // delta for the next offset.
408 - (CGFloat)addHelpButtonToSubviews:(NSMutableArray*)subviews 409 - (CGFloat)addHelpButtonToSubviews:(NSMutableArray*)subviews
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 LocationBarViewMac* locationBar = [controller locationBarBridge]; 453 LocationBarViewMac* locationBar = [controller locationBarBridge];
453 if (locationBar) { 454 if (locationBar) {
454 NSPoint bubblePoint = locationBar->GetPageInfoBubblePoint(); 455 NSPoint bubblePoint = locationBar->GetPageInfoBubblePoint();
455 origin = [parent convertBaseToScreen:bubblePoint]; 456 origin = [parent convertBaseToScreen:bubblePoint];
456 } 457 }
457 } 458 }
458 return origin; 459 return origin;
459 } 460 }
460 461
461 @end 462 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/page_info_bubble_controller.h ('k') | chrome/browser/ui/cocoa/page_info_bubble_controller_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698