Chromium Code Reviews| Index: chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm |
| diff --git a/chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm b/chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm |
| index 5b0efcbedca41dc70116f83bd384e7e476175b41..ab2a029ea5ffe394cbf80a9c550c40b37a3e3bb3 100644 |
| --- a/chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm |
| +++ b/chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm |
| @@ -37,7 +37,8 @@ using autofill::AutofillPopupView; |
| index:(size_t)index |
| bounds:(NSRect)bounds |
| selected:(BOOL)isSelected |
| - imageFirst:(BOOL)imageFirst; |
| + imageFirst:(BOOL)imageFirst |
| + textYOffset:(CGFloat)textYOffset; |
| // This comment block applies to all three draw* methods that follow. |
| // If |rightAlign| == YES. |
| @@ -50,7 +51,8 @@ using autofill::AutofillPopupView; |
| atX:(CGFloat)x |
| index:(size_t)index |
| rightAlign:(BOOL)rightAlign |
| - bounds:(NSRect)bounds; |
| + bounds:(NSRect)bounds |
| + textYOffset:(CGFloat)textYOffset; |
| - (CGFloat)drawIconAtIndex:(size_t)index |
| atX:(CGFloat)x |
| rightAlign:(BOOL)rightAlign |
| @@ -58,7 +60,8 @@ using autofill::AutofillPopupView; |
| - (CGFloat)drawSubtext:(NSString*)subtext |
| atX:(CGFloat)x |
| rightAlign:(BOOL)rightAlign |
| - bounds:(NSRect)bounds; |
| + bounds:(NSRect)bounds |
| + textYOffset:(CGFloat)textYOffset; |
| // Returns the icon for the row with the given |index|, or |nil| if there is |
| // none. |
| @@ -107,8 +110,17 @@ using autofill::AutofillPopupView; |
| continue; |
| } |
| - BOOL imageFirst = (controller_->identifiers()[i] == |
| - autofill::POPUP_ITEM_ID_MAC_ACCESS_CONTACTS); |
| + // Additional offset applied to the text in the vertical direction. |
| + CGFloat textYOffset = 0; |
| + BOOL imageFirst = NO; |
| + if (controller_->identifiers()[i] == |
| + autofill::POPUP_ITEM_ID_MAC_ACCESS_CONTACTS) { |
| + // Due to the weighting of the asset used for this autofill entry, the |
| + // text needs to be bumped up by 1 pt to make it look vertically aligned. |
|
Ilya Sherman
2014/06/04 21:21:04
nit: "1 pt" -> "1 pixel"?
erikchen
2014/06/04 22:11:12
I do mean point, and not pixel. It's the standard
Ilya Sherman
2014/06/04 22:21:45
Ah, right. Sorry, I'm used to thinking of points
|
| + textYOffset = -1; |
| + imageFirst = YES; |
| + } |
| + |
| NSString* name = SysUTF16ToNSString(controller_->names()[i]); |
| NSString* subtext = SysUTF16ToNSString(controller_->subtexts()[i]); |
| BOOL isSelected = static_cast<int>(i) == controller_->selected_line(); |
| @@ -117,7 +129,8 @@ using autofill::AutofillPopupView; |
| index:i |
| bounds:rowBounds |
| selected:isSelected |
| - imageFirst:imageFirst]; |
| + imageFirst:imageFirst |
| + textYOffset:textYOffset]; |
| } |
| } |
| @@ -145,7 +158,8 @@ using autofill::AutofillPopupView; |
| index:(size_t)index |
| bounds:(NSRect)bounds |
| selected:(BOOL)isSelected |
| - imageFirst:(BOOL)imageFirst { |
| + imageFirst:(BOOL)imageFirst |
| + textYOffset:(CGFloat)textYOffset { |
| // If this row is selected, highlight it. |
| if (isSelected) { |
| [[self highlightColor] set]; |
| @@ -162,20 +176,30 @@ using autofill::AutofillPopupView; |
| CGFloat x = isRTL ? rightX : leftX; |
| if (imageFirst) |
| x = [self drawIconAtIndex:index atX:x rightAlign:isRTL bounds:bounds]; |
| - [self drawName:name atX:x index:index rightAlign:isRTL bounds:bounds]; |
| + [self drawName:name |
| + atX:x |
| + index:index |
| + rightAlign:isRTL |
| + bounds:bounds |
| + textYOffset:textYOffset]; |
| // Draw right side if isRTL == NO, left side if isRTL == YES. |
| x = isRTL ? leftX : rightX; |
| if (!imageFirst) |
| x = [self drawIconAtIndex:index atX:x rightAlign:!isRTL bounds:bounds]; |
| - [self drawSubtext:subtext atX:x rightAlign:!isRTL bounds:bounds]; |
| + [self drawSubtext:subtext |
| + atX:x |
| + rightAlign:!isRTL |
| + bounds:bounds |
| + textYOffset:textYOffset]; |
| } |
| - (CGFloat)drawName:(NSString*)name |
| atX:(CGFloat)x |
| index:(size_t)index |
| rightAlign:(BOOL)rightAlign |
| - bounds:(NSRect)bounds { |
| + bounds:(NSRect)bounds |
| + textYOffset:(CGFloat)textYOffset { |
| NSColor* nameColor = |
| controller_->IsWarning(index) ? [self warningColor] : [self nameColor]; |
| NSDictionary* nameAttributes = |
| @@ -187,6 +211,7 @@ using autofill::AutofillPopupView; |
| NSSize nameSize = [name sizeWithAttributes:nameAttributes]; |
| x -= rightAlign ? nameSize.width : 0; |
| CGFloat y = bounds.origin.y + (bounds.size.height - nameSize.height) / 2; |
| + y += textYOffset; |
| [name drawAtPoint:NSMakePoint(x, y) withAttributes:nameAttributes]; |
| @@ -219,7 +244,8 @@ using autofill::AutofillPopupView; |
| - (CGFloat)drawSubtext:(NSString*)subtext |
| atX:(CGFloat)x |
| rightAlign:(BOOL)rightAlign |
| - bounds:(NSRect)bounds { |
| + bounds:(NSRect)bounds |
| + textYOffset:(CGFloat)textYOffset { |
| NSDictionary* subtextAttributes = |
| [NSDictionary dictionaryWithObjectsAndKeys: |
| controller_->subtext_font_list().GetPrimaryFont().GetNativeFont(), |
| @@ -230,6 +256,7 @@ using autofill::AutofillPopupView; |
| NSSize subtextSize = [subtext sizeWithAttributes:subtextAttributes]; |
| x -= rightAlign ? subtextSize.width : 0; |
| CGFloat y = bounds.origin.y + (bounds.size.height - subtextSize.height) / 2; |
| + y += textYOffset; |
| [subtext drawAtPoint:NSMakePoint(x, y) withAttributes:subtextAttributes]; |
| x += rightAlign ? 0 : subtextSize.width; |