Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(815)

Unified Diff: chrome/browser/cocoa/gradient_button_cell.mm

Issue 181002: Reverting 24700. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/cocoa/gradient_button_cell.h ('k') | chrome/browser/cocoa/gradient_button_cell_unittest.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/gradient_button_cell.mm
===================================================================
--- chrome/browser/cocoa/gradient_button_cell.mm (revision 24707)
+++ chrome/browser/cocoa/gradient_button_cell.mm (working copy)
@@ -2,10 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#import "base/scoped_nsobject.h"
#include "chrome/browser/cocoa/gradient_button_cell.h"
#import "third_party/GTM/AppKit/GTMTheme.h"
-#import "third_party/GTM/AppKit/GTMNSColor+Luminance.h"
+#import "base/scoped_nsobject.h"
@interface GradientButtonCell (Private)
- (void)sharedInit;
@@ -13,49 +12,9 @@
inView:(NSView*)controlView;
@end
-static const NSTimeInterval kAnimationShowDuration = 0.2;
-static const NSTimeInterval kAnimationHideDuration = 0.4;
@implementation GradientButtonCell
-@synthesize hoverAlpha = hoverAlpha_;
-- (void)adjustHoverValue {
- NSTimeInterval thisUpdate = [NSDate timeIntervalSinceReferenceDate];
-
- NSTimeInterval elapsed = thisUpdate - lastHoverUpdate_;
-
- CGFloat opacity = [self hoverAlpha];
- if (isMouseInside_) {
- opacity += elapsed / kAnimationShowDuration;
- } else {
- opacity -= elapsed / kAnimationHideDuration;
- }
-
- if (!isMouseInside_ && opacity < 0) {
- opacity = 0;
- } else if (isMouseInside_ && opacity > 1) {
- opacity = 1;
- } else {
- [self performSelector:_cmd withObject:nil afterDelay:0.02];
- }
- lastHoverUpdate_ = thisUpdate;
- [self setHoverAlpha:opacity];
-
- [[self controlView] setNeedsDisplay:YES];
-}
-
-- (void)setMouseInside:(BOOL)flag animate:(BOOL)animated {
- isMouseInside_ = flag;
- if (animated) {
- lastHoverUpdate_ = [NSDate timeIntervalSinceReferenceDate];
- [self adjustHoverValue];
- } else {
- [NSObject cancelPreviousPerformRequestsWithTarget:self];
- [self setHoverAlpha:flag ? 1.0 : 0.0];
- }
- [[self controlView] setNeedsDisplay:YES];
-}
-
// For nib instantiations
- (id)initWithCoder:(NSCoder*)decoder {
if ((self = [super initWithCoder:decoder])) {
@@ -72,33 +31,12 @@
return self;
}
-- (NSGradient *)gradientForHoverAlpha:(CGFloat)hoverAlpha
- isThemed:(BOOL)themed {
- CGFloat startAlpha = 0.6 + 0.3 * hoverAlpha;
- CGFloat endAlpha = 0.333 * hoverAlpha;
-
- if (themed) {
- startAlpha = 0.2 + 0.35 * hoverAlpha;
- endAlpha = 0.333 * hoverAlpha;
- }
-
- NSColor* startColor =
- [NSColor colorWithCalibratedWhite:1.0
- alpha:startAlpha];
- NSColor* endColor =
- [NSColor colorWithCalibratedWhite:1.0 - 0.15 * hoverAlpha
- alpha:endAlpha];
- NSGradient *gradient = [[NSGradient alloc] initWithColorsAndLocations:
- startColor, hoverAlpha * 0.33,
- endColor, 1.0, nil];
-
- return [gradient autorelease];
-}
-
-
- (void)sharedInit {
shouldTheme_ = YES;
- gradient_.reset([[self gradientForHoverAlpha:0.0 isThemed:NO] retain]);
+ NSColor* startColor = [NSColor colorWithCalibratedWhite:1.0 alpha:0.666];
+ NSColor* endColor = [NSColor colorWithCalibratedWhite:1.0 alpha:0.333];
+ gradient_.reset([[NSGradient alloc]
+ initWithColorsAndLocations:startColor, 0.33, endColor, 1.0, nil]);
}
- (void)setShouldTheme:(BOOL)shouldTheme {
@@ -121,11 +59,13 @@
}
- (void)mouseEntered:(NSEvent *)theEvent {
- [self setMouseInside:YES animate:YES];
+ isMouseInside_ = YES;
+ [[self controlView] setNeedsDisplay:YES];
}
- (void)mouseExited:(NSEvent *)theEvent {
- [self setMouseInside:NO animate:YES];
+ isMouseInside_ = NO;
+ [[self controlView] setNeedsDisplay:YES];
}
- (BOOL)isMouseInside {
@@ -162,11 +102,13 @@
controlView:(NSView*)controlView
outerPath:(NSBezierPath*)outerPath
innerPath:(NSBezierPath*)innerPath
- showClickedGradient:(BOOL)showClickedGradient
showHighlightGradient:(BOOL)showHighlightGradient
- hoverAlpha:(CGFloat)hoverAlpha
+ showClickedGradient:(BOOL)showClickedGradient
active:(BOOL)active
cellFrame:(NSRect)cellFrame {
+ [[NSColor colorWithCalibratedWhite:1.0 alpha:0.25] set];
+ [outerPath stroke];
+
NSImage* backgroundImage =
[theme backgroundImageForStyle:GTMThemeStyleToolBarButton state:YES];
@@ -187,56 +129,45 @@
}
}
- BOOL isCustomTheme = backgroundImage != nil;
-
- if (!showClickedGradient && [self isEnabled]) {
+ if (!showClickedGradient && showHighlightGradient) {
[NSGraphicsContext saveGraphicsState];
[innerPath addClip];
// Draw the inner glow.
- if (hoverAlpha > 0) {
- [innerPath setLineWidth:2];
- [[NSColor colorWithCalibratedWhite:1.0 alpha:0.2 * hoverAlpha] setStroke];
- [innerPath stroke];
- }
+ [innerPath setLineWidth:2];
+ [[NSColor colorWithCalibratedWhite:1.0 alpha:0.9] setStroke];
+ [innerPath stroke];
+ [[NSColor colorWithCalibratedWhite:1.0 alpha:0.9] setStroke];
+ [[NSColor colorWithCalibratedWhite:1.0 alpha:0.2] setFill];
+
// Draw the top inner highlight.
NSAffineTransform* highlightTransform = [NSAffineTransform transform];
[highlightTransform translateXBy:1 yBy:1];
scoped_nsobject<NSBezierPath> highlightPath([innerPath copy]);
[highlightPath transformUsingAffineTransform:highlightTransform];
- [[NSColor colorWithCalibratedWhite:1.0 alpha:0.2] setStroke];
+
[highlightPath stroke];
- NSGradient *gradient = nil;
- if (hoverAlpha == 0 && !isCustomTheme) {
- gradient = gradient_;
- } else {
- gradient = [self gradientForHoverAlpha:hoverAlpha isThemed:isCustomTheme];
- }
- [gradient drawInBezierPath:innerPath angle:90.0];
+ [gradient_ drawInBezierPath:innerPath angle:90.0];
[NSGraphicsContext restoreGraphicsState];
}
- // Draw the outer stroke
NSColor* stroke = [theme strokeColorForStyle:GTMThemeStyleToolBarButton
state:active];
-
- if (showClickedGradient) {
- stroke = [NSColor colorWithCalibratedWhite:0.0 alpha:0.3];
- }
[stroke setStroke];
[innerPath setLineWidth:1];
[innerPath stroke];
}
+
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView*)controlView {
// Constants from Cole. Will kConstant them once the feedback loop
// is complete.
NSRect drawFrame = NSInsetRect(cellFrame, 1.5, 1.5);
- NSRect innerFrame = NSInsetRect(cellFrame, 2, 1);
+ NSRect innerFrame = NSInsetRect(cellFrame, 2, 2);
ButtonType type = [[(NSControl*)controlView cell] tag];
switch (type) {
case kMiddleButtonType:
@@ -281,9 +212,8 @@
controlView:controlView
outerPath:outerPath
innerPath:innerPath
+ showHighlightGradient:YES
showClickedGradient:pressed
- showHighlightGradient:[self isHighlighted]
- hoverAlpha:[self hoverAlpha]
active:active
cellFrame:cellFrame];
}
@@ -313,14 +243,9 @@
CGContextRef context =
(CGContextRef)([[NSGraphicsContext currentContext] graphicsPort]);
- NSColor* color = [theme iconColorForStyle:GTMThemeStyleToolBarButton
- state:YES];
-
if (isTemplate) {
scoped_nsobject<NSShadow> shadow([[NSShadow alloc] init]);
- NSColor *shadowColor = [color gtm_legibleTextColor];
- shadowColor = [shadowColor colorWithAlphaComponent:0.25];
- [shadow setShadowColor:shadowColor];
+ [shadow setShadowColor:[NSColor whiteColor]];
[shadow setShadowOffset:NSMakeSize(0, -1.0)];
[shadow setShadowBlurRadius:1.0];
[shadow set];
@@ -331,13 +256,14 @@
CGContextBeginTransparencyLayer(context, 0);
NSRect imageRect = NSZeroRect;
imageRect.size = [[self image] size];
- NSRect drawRect = [self imageRectForBounds:cellFrame];
[[self image] setFlipped:[controlView isFlipped]];
- [[self image] drawInRect:drawRect
+ [[self image] drawInRect:[self imageRectForBounds:cellFrame]
fromRect:imageRect
operation:NSCompositeSourceOver
fraction:[self isEnabled] ? 1.0 : 0.5];
if (isTemplate) {
+ NSColor* color = [theme iconColorForStyle:GTMThemeStyleToolBarButton
+ state:YES];
if (color) {
[color set];
NSRectFillUsingOperation(cellFrame, NSCompositeSourceAtop);
« no previous file with comments | « chrome/browser/cocoa/gradient_button_cell.h ('k') | chrome/browser/cocoa/gradient_button_cell_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698