Chromium Code Reviews| 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 |