OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #import "ui/base/cocoa/controls/hover_image_menu_button_cell.h" | |
6 | |
7 #include "base/memory/scoped_nsobject.h" | |
8 | |
9 @implementation HoverImageMenuButtonCell | |
10 | |
11 @synthesize hovered = hovered_; | |
12 | |
13 - (void)setHoverImage:(NSImage*)newImage { | |
14 hoverImage_.reset([newImage retain]); | |
15 [[self controlView] setNeedsDisplay:YES]; | |
16 } | |
17 | |
18 - (NSImage*)hoverImage { | |
19 return hoverImage_; | |
20 } | |
21 | |
22 - (NSImage*)imageToDraw { | |
23 if ([self isHighlighted] && [self alternateImage]) | |
24 return [self alternateImage]; | |
25 | |
26 if ([self isHovered] && [self hoverImage]) | |
27 return [self hoverImage]; | |
28 | |
29 return [self image]; | |
sail
2013/05/31 19:07:03
How does this work? Shouldn't this be [buttonMenuI
tapted
2013/06/03 12:49:18
It does work - there's even tests ;). This felt mo
| |
30 } | |
31 | |
32 - (void)setImage:(NSImage*)defaultImage { | |
33 [self setUsesItemFromMenu:NO]; | |
sail
2013/05/31 19:07:03
Since the button class explicitly states that the
tapted
2013/06/03 12:49:18
Done.
| |
34 scoped_nsobject<NSMenuItem> buttonItem([[NSMenuItem alloc] init]); | |
sail
2013/05/31 19:07:03
how about buttonMenuItem?
tapted
2013/06/03 12:49:18
Done.
| |
35 [buttonItem setImage:defaultImage]; | |
36 [self setMenuItem:buttonItem]; | |
37 } | |
38 | |
39 - (void)drawWithFrame:(NSRect)cellFrame | |
40 inView:(NSView*)controlView { | |
41 [[self imageToDraw] drawInRect:cellFrame | |
42 fromRect:NSZeroRect | |
43 operation:NSCompositeSourceOver | |
44 fraction:1.0 | |
45 respectFlipped:YES | |
46 hints:nil]; | |
47 } | |
48 | |
49 @end | |
OLD | NEW |