OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "ui/base/cocoa/hover_image_button.h" | 5 #import "ui/base/cocoa/hover_image_button.h" |
6 | 6 |
7 @implementation HoverImageButton | 7 @implementation HoverImageButton |
8 | 8 |
9 - (void)drawRect:(NSRect)rect { | 9 - (void)setIsMouseInside:(BOOL)isInside { |
10 if (hoverState_ == kHoverStateMouseDown && pressedImage_) { | 10 if (isInside && hoverImage_) |
11 [super setImage:pressedImage_.get()]; | 11 [self setImage:hoverImage_]; |
12 } else if (hoverState_ == kHoverStateMouseOver && hoverImage_) { | 12 else |
13 [super setImage:hoverImage_.get()]; | 13 [self setImage:defaultImage_]; |
14 } else { | |
15 [super setImage:defaultImage_.get()]; | |
16 } | |
17 | 14 |
18 [super drawRect:rect]; | 15 [super setIsMouseInside:isInside]; |
19 } | 16 } |
20 | 17 |
21 - (void)setDefaultImage:(NSImage*)image { | 18 - (void)setDefaultImage:(NSImage*)image { |
22 defaultImage_.reset([image retain]); | 19 defaultImage_.reset([image retain]); |
| 20 [self checkImageState]; |
23 } | 21 } |
24 | 22 |
25 - (void)setHoverImage:(NSImage*)image { | 23 - (void)setHoverImage:(NSImage*)image { |
26 hoverImage_.reset([image retain]); | 24 hoverImage_.reset([image retain]); |
| 25 [self checkImageState]; |
27 } | 26 } |
28 | 27 |
29 - (void)setPressedImage:(NSImage*)image { | 28 - (void)setPressedImage:(NSImage*)image { |
30 pressedImage_.reset([image retain]); | 29 [self setAlternateImage:image]; |
31 } | 30 } |
32 | 31 |
33 @end | 32 @end |
OLD | NEW |