vlc | branch: master | Marvin Scholz <[email protected]> | Sun Jul 23 14:15:01 2017 +0200| [ed67f6ddb54014af9dc13dd927a42e88d70c0b28] | committer: Marvin Scholz
macosx: Add ability to hide knob to VLCSlider When nothing is playing, the knob and progress should not be shown, this adds an option for this to the VLCSlider > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ed67f6ddb54014af9dc13dd927a42e88d70c0b28 --- modules/gui/macosx/VLCSlider.h | 1 + modules/gui/macosx/VLCSlider.m | 10 ++++++++++ modules/gui/macosx/VLCSliderCell.h | 1 + modules/gui/macosx/VLCSliderCell.m | 16 ++++++++++++++++ 4 files changed, 28 insertions(+) diff --git a/modules/gui/macosx/VLCSlider.h b/modules/gui/macosx/VLCSlider.h index d5ab0c8115..ba95b63ab0 100644 --- a/modules/gui/macosx/VLCSlider.h +++ b/modules/gui/macosx/VLCSlider.h @@ -26,6 +26,7 @@ @interface VLCSlider : NSSlider @property (nonatomic, getter=getIndefinite,setter=setIndefinite:) BOOL indefinite; +@property (nonatomic, getter=getKnobHidden,setter=setKnobHidden:) BOOL isKnobHidden; - (void)setSliderStyleLight; - (void)setSliderStyleDark; diff --git a/modules/gui/macosx/VLCSlider.m b/modules/gui/macosx/VLCSlider.m index f5cc5ff8aa..e7eba8ae05 100644 --- a/modules/gui/macosx/VLCSlider.m +++ b/modules/gui/macosx/VLCSlider.m @@ -50,6 +50,16 @@ [(VLCSliderCell*)[self cell] setIndefinite:indefinite]; } +- (BOOL)getKnobHidden +{ + return [(VLCSliderCell*)[self cell] isKnobHidden]; +} + +- (void)setKnobHidden:(BOOL)isKnobHidden +{ + [(VLCSliderCell*)[self cell] setKnobHidden:isKnobHidden]; +} + - (BOOL)isFlipped { return NO; diff --git a/modules/gui/macosx/VLCSliderCell.h b/modules/gui/macosx/VLCSliderCell.h index eca0b17344..d5508a04e6 100644 --- a/modules/gui/macosx/VLCSliderCell.h +++ b/modules/gui/macosx/VLCSliderCell.h @@ -48,6 +48,7 @@ @property NSInteger animationWidth; @property (nonatomic, setter=setIndefinite:) BOOL indefinite; +@property (nonatomic, setter=setKnobHidden:) BOOL isKnobHidden; - (void)setSliderStyleLight; - (void)setSliderStyleDark; diff --git a/modules/gui/macosx/VLCSliderCell.m b/modules/gui/macosx/VLCSliderCell.m index 4c005f9cab..51cee0e653 100644 --- a/modules/gui/macosx/VLCSliderCell.m +++ b/modules/gui/macosx/VLCSliderCell.m @@ -184,6 +184,9 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt - (void)drawKnob:(NSRect)knobRect { + if (_isKnobHidden) + return; + // Draw knob NSBezierPath* knobPath = [NSBezierPath bezierPathWithOvalInRect:NSInsetRect(knobRect, 2.0, 2.0)]; if (self.isHighlighted) { @@ -218,6 +221,13 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt NSBezierPath* emptyTrackPath = [NSBezierPath bezierPathWithRoundedRect:rect xRadius:3 yRadius:3]; [_trackGradient drawInBezierPath:emptyTrackPath angle:-90]; + if (_isKnobHidden) { + [_trackStrokeColor setStroke]; + emptyTrackPath.lineWidth = 1; + [emptyTrackPath stroke]; + return; + } + // Calculate filled track NSRect filledTrackRect = rect; NSRect knobRect = [self knobRectFlipped:NO]; @@ -324,5 +334,11 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt _indefinite = indefinite; } +- (void)setKnobHidden:(BOOL)isKnobHidden +{ + _isKnobHidden = isKnobHidden; + [self.controlView setNeedsDisplay:YES]; +} + @end _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
