mirror of
https://github.com/ksherlock/ample.git
synced 2026-04-26 08:17:55 +00:00
Eject Button class. switches to the alt image when hovering.
This commit is contained in:
@@ -77,11 +77,11 @@
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageAlignment="left" image="drag-handle-4x10" id="x7F-qD-5y9"/>
|
||||
</imageView>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zNo-ij-mUl">
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zNo-ij-mUl" customClass="EjectButton">
|
||||
<rect key="frame" x="261" y="5" width="16" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="eject-16x16" imagePosition="only" alignment="center" alternateImage="eject-hover-16x16" imageScaling="proportionallyDown" inset="2" id="IZA-Tu-olu">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// EjectButton.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 9/7/2020.
|
||||
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface EjectButton : NSButton
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// EjectButton.m
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 9/7/2020.
|
||||
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#import "EjectButton.h"
|
||||
|
||||
static NSImage *ejectImage = nil;
|
||||
static NSImage *ejectHoverImage = nil;
|
||||
|
||||
@implementation EjectButton {
|
||||
NSTrackingRectTag _tracking;
|
||||
}
|
||||
|
||||
+(void)initialize {
|
||||
// content tint only works with template images.
|
||||
ejectImage = [NSImage imageNamed: @"eject-16x16"];
|
||||
ejectHoverImage = [NSImage imageNamed: @"eject-hover-16x16"];
|
||||
[ejectImage setTemplate: YES];
|
||||
[ejectHoverImage setTemplate: YES];
|
||||
}
|
||||
|
||||
-(void)awakeFromNib {
|
||||
[super awakeFromNib];
|
||||
[self setButtonType: NSButtonTypeMomentaryPushIn];
|
||||
[self setImage: ejectImage];
|
||||
[self setAlternateImage: ejectHoverImage];
|
||||
_tracking = [self addTrackingRect: [self bounds] owner: self userData: nil assumeInside: NO];
|
||||
}
|
||||
|
||||
-(void)mouseEntered:(NSEvent *)event {
|
||||
if ([self isEnabled])
|
||||
[self setImage: ejectHoverImage];
|
||||
}
|
||||
-(void)mouseExited:(NSEvent *)event {
|
||||
[self setImage: ejectImage];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -13,6 +13,7 @@
|
||||
NSTrackingRectTag _trackingRect;
|
||||
}
|
||||
|
||||
#if 0
|
||||
-(void)awakeFromNib {
|
||||
|
||||
// this is apparently necessary for setTintColor to work.
|
||||
@@ -22,6 +23,7 @@
|
||||
img = [_ejectButton alternateImage];
|
||||
[img setTemplate: YES];
|
||||
}
|
||||
#endif
|
||||
|
||||
-(void)viewDidMoveToSuperview {
|
||||
if (_trackingRect) {
|
||||
|
||||
Reference in New Issue
Block a user