| Index: chrome/browser/cocoa/download_shelf_view.mm
|
| ===================================================================
|
| --- chrome/browser/cocoa/download_shelf_view.mm (revision 21145)
|
| +++ chrome/browser/cocoa/download_shelf_view.mm (working copy)
|
| @@ -5,57 +5,45 @@
|
| #import "chrome/browser/cocoa/download_shelf_view.h"
|
|
|
| #include "base/scoped_nsobject.h"
|
| +#import "third_party/GTM/AppKit/GTMTheme.h"
|
|
|
| @implementation DownloadShelfView
|
|
|
| +- (NSColor*)strokeColor {
|
| + return [[self gtm_theme] strokeColorForStyle:GTMThemeStyleToolBar
|
| + state:[[self window] isKeyWindow]];
|
| +}
|
| +
|
| - (void)drawRect:(NSRect)rect {
|
| - rect = [self bounds];
|
| + BOOL isKey = [[self window] isKeyWindow];
|
|
|
| - // TODO(thakis): Once this has its final look, it also needs an
|
| - // "inactive" state.
|
| + GTMTheme *theme = [self gtm_theme];
|
|
|
| -#if 0
|
| - // Grey Finder/iCal-like bottom bar with dark gradient, dark/light lines
|
| - NSColor* start =
|
| - [NSColor colorWithCalibratedWhite: 0.75 alpha:1.0];
|
| - NSColor* end = [NSColor colorWithCalibratedWhite:0.59 alpha:1.0];
|
| - scoped_nsobject<NSGradient> gradient(
|
| - [[NSGradient alloc] initWithStartingColor:start endingColor:end]);
|
| - [gradient drawInRect:[self bounds] angle:270.0];
|
| + NSImage *backgroundImage = [theme backgroundImageForStyle:GTMThemeStyleToolBar
|
| + state:GTMThemeStateActiveWindow];
|
| + if (backgroundImage) {
|
| + [[NSGraphicsContext currentContext] setPatternPhase:NSZeroPoint];
|
| + NSColor *color = [NSColor colorWithPatternImage:backgroundImage];
|
| + [color set];
|
| + NSRectFill([self bounds]);
|
| + } else {
|
| + NSGradient *gradient = [theme gradientForStyle:GTMThemeStyleToolBar
|
| + state:isKey];
|
| + NSPoint startPoint = [self convertPointFromBase:NSMakePoint(0, 0)];
|
| + NSPoint endPoint = [self convertPointFromBase:
|
| + NSMakePoint(0, [self frame].size.height)];
|
|
|
| - NSRect borderRect, contentRect;
|
| - NSDivideRect(rect, &borderRect, &contentRect, 1, NSMaxYEdge);
|
| - [[NSColor colorWithDeviceWhite:0.25 alpha:1.0] set];
|
| - NSRectFillUsingOperation(borderRect, NSCompositeSourceOver);
|
| + [gradient drawFromPoint:startPoint
|
| + toPoint:endPoint
|
| + options:NSGradientDrawsBeforeStartingLocation |
|
| + NSGradientDrawsAfterEndingLocation];
|
| + }
|
|
|
| - NSDivideRect(contentRect, &borderRect, &contentRect, 1, NSMaxYEdge);
|
| - [[NSColor colorWithDeviceWhite:0.85 alpha:1.0] set];
|
| - NSRectFillUsingOperation(borderRect, NSCompositeSourceOver);
|
| -#else
|
| - // Glossy two-color bar with only light line at top (Mail.app/HitList-style)
|
| - // Doesn't mesh with the matte look of the toolbar.
|
| -
|
| - NSRect topRect, bottomRect;
|
| - NSDivideRect(rect, &topRect, &bottomRect, rect.size.height/2, NSMaxYEdge);
|
| -
|
| - // 1px line at top
|
| + // Draw top stroke
|
| + [[self strokeColor] set];
|
| NSRect borderRect, contentRect;
|
| - NSDivideRect(topRect, &borderRect, &contentRect, 1, NSMaxYEdge);
|
| - [[NSColor colorWithDeviceWhite:0.69 alpha:1.0] set];
|
| + NSDivideRect([self bounds], &borderRect, &contentRect, 1, NSMaxYEdge);
|
| NSRectFillUsingOperation(borderRect, NSCompositeSourceOver);
|
| -
|
| - // Gradient for upper half
|
| - NSColor* start =
|
| - [NSColor colorWithCalibratedWhite: 1.0 alpha:1.0];
|
| - NSColor* end = [NSColor colorWithCalibratedWhite:0.94 alpha:1.0];
|
| - scoped_nsobject<NSGradient> gradient(
|
| - [[NSGradient alloc] initWithStartingColor:start endingColor:end]);
|
| - [gradient drawInRect:contentRect angle:270.0];
|
| -
|
| - // Fill lower half with solid color
|
| - [[NSColor colorWithDeviceWhite:0.9 alpha:1.0] set];
|
| - NSRectFillUsingOperation(bottomRect, NSCompositeSourceOver);
|
| -#endif
|
| }
|
|
|
| @end
|
|
|