diff options
author | rohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-27 20:25:59 +0000 |
---|---|---|
committer | rohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-27 20:25:59 +0000 |
commit | 987d3f969bde97b121b4144a980394ee777663b7 (patch) | |
tree | 53943f2ffd567ecc615121b5714abd7ef9169edd /chrome/browser | |
parent | ae23c272faf85d4cf779ae15d28fc59f5a8162ab (diff) | |
download | chromium_src-987d3f969bde97b121b4144a980394ee777663b7.zip chromium_src-987d3f969bde97b121b4144a980394ee777663b7.tar.gz chromium_src-987d3f969bde97b121b4144a980394ee777663b7.tar.bz2 |
Pretties up the FindBar on Mac.
BUG=http://crbug.com/14903
BUG=http://crbug.com/14904
BUG=http://crbug.com/14905
TEST=Findbar should function normally, as before.
Review URL: http://codereview.chromium.org/160144
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21686 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/cocoa/find_bar_cocoa_controller.mm | 12 | ||||
-rw-r--r-- | chrome/browser/cocoa/find_bar_view.mm | 33 | ||||
-rw-r--r-- | chrome/browser/cocoa/gradient_button_cell.h | 1 | ||||
-rw-r--r-- | chrome/browser/cocoa/gradient_button_cell.mm | 4 |
4 files changed, 42 insertions, 8 deletions
diff --git a/chrome/browser/cocoa/find_bar_cocoa_controller.mm b/chrome/browser/cocoa/find_bar_cocoa_controller.mm index 58e687c..f28fd56 100644 --- a/chrome/browser/cocoa/find_bar_cocoa_controller.mm +++ b/chrome/browser/cocoa/find_bar_cocoa_controller.mm @@ -168,6 +168,18 @@ // area. [resultsLabel_ setStringValue:@""]; } + + // Resize |resultsLabel_| to completely contain its string and right-justify + // it within |findText_|. sizeToFit may shrink the frame vertically, which we + // don't want, so we save the original vertical positioning. + NSRect labelFrame = [resultsLabel_ frame]; + [resultsLabel_ sizeToFit]; + labelFrame.size.width = [resultsLabel_ frame].size.width; + labelFrame.origin.x = NSMaxX([findText_ frame]) - labelFrame.size.width; + [resultsLabel_ setFrame:labelFrame]; + + // TODO(rohitrao): If the search string is too long, then it will overlap with + // the results label. Fix. } - (BOOL)isFindBarVisible { diff --git a/chrome/browser/cocoa/find_bar_view.mm b/chrome/browser/cocoa/find_bar_view.mm index 8c73f4e..238884d 100644 --- a/chrome/browser/cocoa/find_bar_view.mm +++ b/chrome/browser/cocoa/find_bar_view.mm @@ -14,20 +14,37 @@ NSPoint topLeft = NSMakePoint(NSMinX(rect), NSMaxY(rect)); NSPoint topRight = NSMakePoint(NSMaxX(rect), NSMaxY(rect)); - // Inset the bottom points by 1 so we draw the border entirely - // inside the frame. - NSPoint bottomLeft = NSMakePoint(NSMinX(rect) + curveSize, NSMinY(rect) + 1); - NSPoint bottomRight = NSMakePoint(NSMaxX(rect) - curveSize, NSMinY(rect) + 1); + NSPoint midLeft1 = + NSMakePoint(NSMinX(rect) + curveSize, NSMaxY(rect) - curveSize); + NSPoint midLeft2 = + NSMakePoint(NSMinX(rect) + curveSize, NSMinY(rect) + curveSize); + NSPoint midRight1 = + NSMakePoint(NSMaxX(rect) - curveSize, NSMinY(rect) + curveSize); + NSPoint midRight2 = + NSMakePoint(NSMaxX(rect) - curveSize, NSMaxY(rect) - curveSize); + NSPoint bottomLeft = + NSMakePoint(NSMinX(rect) + (2 * curveSize), NSMinY(rect)); + NSPoint bottomRight = + NSMakePoint(NSMaxX(rect) - (2 * curveSize), NSMinY(rect)); NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:topLeft]; + [path curveToPoint:midLeft1 + controlPoint1:NSMakePoint(midLeft1.x, topLeft.y) + controlPoint2:NSMakePoint(midLeft1.x, topLeft.y)]; + [path lineToPoint:midLeft2]; [path curveToPoint:bottomLeft - controlPoint1:NSMakePoint(topLeft.x + curveSize, topLeft.y) - controlPoint2:NSMakePoint(bottomLeft.x - curveSize, bottomLeft.y)]; + controlPoint1:NSMakePoint(midLeft2.x, bottomLeft.y) + controlPoint2:NSMakePoint(midLeft2.x, bottomLeft.y)]; + [path lineToPoint:bottomRight]; + [path curveToPoint:midRight1 + controlPoint1:NSMakePoint(midRight1.x, bottomLeft.y) + controlPoint2:NSMakePoint(midRight1.x, bottomLeft.y)]; + [path lineToPoint:midRight2]; [path curveToPoint:topRight - controlPoint1:NSMakePoint(bottomRight.x + curveSize, bottomRight.y) - controlPoint2:NSMakePoint(topRight.x - curveSize, topRight.y)]; + controlPoint1:NSMakePoint(midRight2.x, topLeft.y) + controlPoint2:NSMakePoint(midRight2.x, topLeft.y)]; [NSGraphicsContext saveGraphicsState]; [path addClip]; diff --git a/chrome/browser/cocoa/gradient_button_cell.h b/chrome/browser/cocoa/gradient_button_cell.h index 61c9a4f..7492649 100644 --- a/chrome/browser/cocoa/gradient_button_cell.h +++ b/chrome/browser/cocoa/gradient_button_cell.h @@ -23,6 +23,7 @@ enum { kLeftButtonWithShadowType = -2, kStandardButtonType = 0, kRightButtonType = 1, + kMiddleButtonType = 2, }; typedef NSInteger ButtonType; diff --git a/chrome/browser/cocoa/gradient_button_cell.mm b/chrome/browser/cocoa/gradient_button_cell.mm index 4e6462d..99a0dc1 100644 --- a/chrome/browser/cocoa/gradient_button_cell.mm +++ b/chrome/browser/cocoa/gradient_button_cell.mm @@ -166,6 +166,10 @@ NSRect innerFrame = NSInsetRect(cellFrame, 2, 2); ButtonType type = [[(NSControl*)controlView cell] tag]; switch (type) { + case kMiddleButtonType: + drawFrame.size.width += 20; + innerFrame.size.width += 2; + // Fallthrough case kRightButtonType: drawFrame.origin.x -= 20; innerFrame.origin.x -= 2; |