summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorrohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-27 20:25:59 +0000
committerrohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-27 20:25:59 +0000
commit987d3f969bde97b121b4144a980394ee777663b7 (patch)
tree53943f2ffd567ecc615121b5714abd7ef9169edd /chrome/browser
parentae23c272faf85d4cf779ae15d28fc59f5a8162ab (diff)
downloadchromium_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.mm12
-rw-r--r--chrome/browser/cocoa/find_bar_view.mm33
-rw-r--r--chrome/browser/cocoa/gradient_button_cell.h1
-rw-r--r--chrome/browser/cocoa/gradient_button_cell.mm4
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;