Commit aaa9026b authored by Derk-Jan Hartman's avatar Derk-Jan Hartman

* finally use the iTunes volumeslider knob that we have had since 0.7.0 but...

* finally use the iTunes volumeslider knob that we have had since 0.7.0 but which I never cared to enable. closes #209
parent 81d719f9
{
IBClasses = (
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
{CLASS = ITSlider; LANGUAGE = ObjC; SUPERCLASS = NSSlider; },
{CLASS = MPSlider; LANGUAGE = ObjC; SUPERCLASS = NSSlider; },
{CLASS = VLBrushedMetalImageView; LANGUAGE = ObjC; SUPERCLASS = NSImageView; },
{CLASS = VLCApplication; LANGUAGE = ObjC; SUPERCLASS = NSApplication; },
......
......@@ -11,19 +11,19 @@
<key>2197</key>
<string>422 532 596 143 0 0 1440 878 </string>
<key>29</key>
<string>557 789 437 44 0 0 1440 878 </string>
<string>468 906 437 44 0 0 1280 1002 </string>
<key>915</key>
<string>678 573 187 249 0 0 1280 1002 </string>
</dict>
<key>IBFramework Version</key>
<string>437.0</string>
<string>439.0</string>
<key>IBLockedObjects</key>
<array/>
<key>IBOpenObjects</key>
<array>
<integer>21</integer>
<integer>2029</integer>
<integer>29</integer>
<integer>21</integer>
</array>
<key>IBSystem Version</key>
<string>8C46</string>
......
......@@ -60,7 +60,29 @@
@interface MPSlider : NSSlider
{
}
@end
/*****************************************************************************
* ITSliderCell
*****************************************************************************/
@interface ITSlider : NSSlider
{
}
@end
/*****************************************************************************
* ITSliderCell
*****************************************************************************/
@interface ITSliderCell : NSSliderCell
{
NSImage *_knobOff;
NSImage *_knobOn;
BOOL b_mouse_down;
}
@end
......@@ -269,3 +269,97 @@ void _drawFrameInRect(NSRect frameRect)
@end
/*****************************************************************************
* ITSlider
*****************************************************************************/
@implementation ITSlider
- (void)awakeFromNib
{
if ([[self cell] class] != [ITSliderCell class]) {
// replace cell
NSSliderCell *oldCell = [self cell];
NSSliderCell *newCell = [[[ITSliderCell alloc] init] autorelease];
[newCell setTag:[oldCell tag]];
[newCell setTarget:[oldCell target]];
[newCell setAction:[oldCell action]];
[newCell setControlSize:[oldCell controlSize]];
[newCell setType:[oldCell type]];
[newCell setState:[oldCell state]];
[newCell setAllowsTickMarkValuesOnly:[oldCell allowsTickMarkValuesOnly]];
[newCell setAltIncrementValue:[oldCell altIncrementValue]];
[newCell setControlTint:[oldCell controlTint]];
[newCell setKnobThickness:[oldCell knobThickness]];
[newCell setMaxValue:[oldCell maxValue]];
[newCell setMinValue:[oldCell minValue]];
[newCell setDoubleValue:[oldCell doubleValue]];
[newCell setNumberOfTickMarks:[oldCell numberOfTickMarks]];
[newCell setSliderType:[oldCell sliderType]];
[newCell setEditable:[oldCell isEditable]];
[newCell setEnabled:[oldCell isEnabled]];
[newCell setEntryType:[oldCell entryType]];
[newCell setFocusRingType:[oldCell focusRingType]];
[newCell setHighlighted:[oldCell isHighlighted]];
[newCell setTickMarkPosition:[oldCell tickMarkPosition]];
[self setCell:newCell];
}
}
@end
/*****************************************************************************
* ITSliderCell
*****************************************************************************/
@implementation ITSliderCell
- (id)init
{
self = [super init];
_knobOff = [[NSImage imageNamed:@"volumeslider_normal"] retain];
_knobOn = [[NSImage imageNamed:@"volumeslider_blue"] retain];
b_mouse_down = FALSE;
return self;
}
- (void)dealloc
{
[_knobOff release];
[_knobOn release];
[super dealloc];
}
- (void)drawKnob:(NSRect)knob_rect
{
NSImage *knob;
if( b_mouse_down )
knob = _knobOn;
else
knob = _knobOff;
[[self controlView] lockFocus];
[knob compositeToPoint:NSMakePoint( knob_rect.origin.x + 1,
knob_rect.origin.y + knob_rect.size.height -2 )
operation:NSCompositeSourceOver];
[[self controlView] unlockFocus];
}
- (void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:
(NSView *)controlView mouseIsUp:(BOOL)flag
{
b_mouse_down = NO;
[self drawKnob];
[super stopTracking:lastPoint at:stopPoint inView:controlView mouseIsUp:flag];
}
- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView
{
b_mouse_down = YES;
[self drawKnob];
return [super startTrackingAt:startPoint inView:controlView];
}
@end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment