summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa/hover_image_button.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/cocoa/hover_image_button.mm')
-rw-r--r--chrome/browser/ui/cocoa/hover_image_button.mm52
1 files changed, 52 insertions, 0 deletions
diff --git a/chrome/browser/ui/cocoa/hover_image_button.mm b/chrome/browser/ui/cocoa/hover_image_button.mm
new file mode 100644
index 0000000..c5bdbf4
--- /dev/null
+++ b/chrome/browser/ui/cocoa/hover_image_button.mm
@@ -0,0 +1,52 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "chrome/browser/ui/cocoa/hover_image_button.h"
+
+#include "app/l10n_util.h"
+#include "base/scoped_nsobject.h"
+#include "grit/generated_resources.h"
+
+@implementation HoverImageButton
+
+- (void)drawRect:(NSRect)rect {
+ if (hoverState_ == kHoverStateMouseDown && pressedImage_) {
+ [super setImage:pressedImage_.get()];
+ [super setAlphaValue:pressedOpacity_];
+ } else if (hoverState_ == kHoverStateMouseOver && hoverImage_) {
+ [super setImage:hoverImage_.get()];
+ [super setAlphaValue:hoverOpacity_];
+ } else {
+ [super setImage:defaultImage_.get()];
+ [super setAlphaValue:defaultOpacity_];
+ }
+
+ [super drawRect:rect];
+}
+
+- (void)setDefaultImage:(NSImage*)image {
+ defaultImage_.reset([image retain]);
+}
+
+- (void)setDefaultOpacity:(float)opacity {
+ defaultOpacity_ = opacity;
+}
+
+- (void)setHoverImage:(NSImage*)image {
+ hoverImage_.reset([image retain]);
+}
+
+- (void)setHoverOpacity:(float)opacity {
+ hoverOpacity_ = opacity;
+}
+
+- (void)setPressedImage:(NSImage*)image {
+ pressedImage_.reset([image retain]);
+}
+
+- (void)setPressedOpacity:(float)opacity {
+ pressedOpacity_ = opacity;
+}
+
+@end