Chromium Code Reviews| Index: chrome/browser/cocoa/wrench_menu_button_cell.mm |
| diff --git a/chrome/browser/cocoa/wrench_menu_button_cell.mm b/chrome/browser/cocoa/wrench_menu_button_cell.mm |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..324d243da1282916a58da0b34127c737a945d976 |
| --- /dev/null |
| +++ b/chrome/browser/cocoa/wrench_menu_button_cell.mm |
| @@ -0,0 +1,46 @@ |
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#import "chrome/browser/cocoa/wrench_menu_button_cell.h" |
| + |
| +#include "base/scoped_nsobject.h" |
| + |
| +@implementation WrenchMenuButtonCell |
| + |
| +- (void)drawBezelWithFrame:(NSRect)frame inView:(NSView*)controlView { |
| + [NSGraphicsContext saveGraphicsState]; |
| + |
| + // Inset the rect to match the appearance of the layout of interface builder. |
| + // The bounding rect of buttons is actually larger than the display rect shown |
| + // there. |
| + frame = NSInsetRect(frame, 0, 1); |
|
pink (ping after 24hrs)
2010/08/04 19:16:36
0.0 and 1.0?
|
| + |
| + // Stroking the rect gives a weak stroke. Filling and insetting gives a |
| + // strong, un-anti-aliased border. |
|
pink (ping after 24hrs)
2010/08/04 19:16:36
Could you get something similar by insetting by a
|
| + [[NSColor colorWithDeviceWhite:0.663 alpha:1.0] set]; |
| + NSRectFill(frame); |
| + frame = NSInsetRect(frame, 1, 1); |
|
pink (ping after 24hrs)
2010/08/04 19:16:36
1.0, 1.0?
|
| + |
| + NSColor* start = [NSColor whiteColor]; |
| + NSColor* end = [NSColor colorWithDeviceWhite:0.922 alpha:1.0]; |
| + if ([self isHighlighted]) { |
| + start = [NSColor colorWithDeviceRed:0.396 green:0.641 blue:0.941 alpha:1.0]; |
| + end = [NSColor selectedMenuItemColor]; |
| + } |
| + |
| + scoped_nsobject<NSGradient> gradient( |
| + [[NSGradient alloc] initWithStartingColor:start |
| + endingColor:end]); |
| + [gradient drawInRect:frame angle:90.0]; |
| + |
| + [NSGraphicsContext restoreGraphicsState]; |
| +} |
| + |
| +- (NSBackgroundStyle)interiorBackgroundStyle { |
| + if ([self isHighlighted]) |
| + return NSBackgroundStyleDark; |
| + return [super interiorBackgroundStyle]; |
| +} |
| + |
| +@end |