vlc | branch: master | Marvin Scholz <epira...@gmail.com> | Tue Jul 19 15:34:37 2016 +0200| [f3e0abf8b34c08dc336ac2aa4aea861a868afcc9] | committer: Marvin Scholz
macosx: Complete bar drawing for VLCHUDSliderCell Bar drawing was only working for horizontal cells completely, this adds bar drawing for the active/inactive parts for vertical cells as well. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f3e0abf8b34c08dc336ac2aa4aea861a868afcc9 --- modules/gui/macosx/VLCHUDSliderCell.m | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/modules/gui/macosx/VLCHUDSliderCell.m b/modules/gui/macosx/VLCHUDSliderCell.m index 244aa2a..3413918 100644 --- a/modules/gui/macosx/VLCHUDSliderCell.m +++ b/modules/gui/macosx/VLCHUDSliderCell.m @@ -143,28 +143,36 @@ NSAffineTransform* RotationTransform(const CGFloat angle, const NSPoint point) - (void)drawBarInside:(NSRect)fullRect flipped:(BOOL)flipped { + NSBezierPath *path; + // Determine current position of knob CGFloat knobPosition = (self.doubleValue - self.minValue) / (self.maxValue - self.minValue); // Copy rect NSRect activeRect = fullRect; - // TODO: Implement active/inactive drawing for vetical sliders - if (!self.isVertical) { - // Calculate active rect + if (self.isVertical) { + // Calculate active rect (bottom part of slider) + if (flipped) { + activeRect.origin.y = (1 - knobPosition) * activeRect.size.height; + activeRect.size.height -= activeRect.origin.y - 1; + } else { + activeRect.size.height -= (1 - knobPosition) * activeRect.size.height - 1; + } + } else { + // Calculate active rect (left part of slider) activeRect.size.width = knobPosition * (self.controlView.frame.size.width - 1.0); - - // Draw inactive bar - [_disabledSliderColor setFill]; - NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:fullRect xRadius:2.0 yRadius:2.0]; - [path fill]; } + // Draw inactive bar + [_disabledSliderColor setFill]; + path = [NSBezierPath bezierPathWithRoundedRect:fullRect xRadius:2.0 yRadius:2.0]; + [path fill]; + // Draw active bar [_sliderColor setFill]; - NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:activeRect xRadius:2.0 yRadius:2.0]; + path = [NSBezierPath bezierPathWithRoundedRect:activeRect xRadius:2.0 yRadius:2.0]; [path fill]; - } @end _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits