[vlc-commits] macosx: Add bar drawing for VLCHUDSliderCell
Marvin Scholz
git at videolan.org
Tue Jul 19 03:10:20 CEST 2016
vlc | branch: master | Marvin Scholz <epirat07 at gmail.com> | Tue Jul 19 03:07:59 2016 +0200| [3d72db679e968680c724456cbaad3422651901d5] | committer: Marvin Scholz
macosx: Add bar drawing for VLCHUDSliderCell
The VLCHUDSliderCell was lacking drawing for the actual bar, this could
cause a weird look on older Mac OS X Versions. This patch adds a first
implementation of bar drawing.
It currently only fully works for horizontal sliders, for vertical
sliders the inactive/active part is ignored and the whole bar is drawn
as active.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3d72db679e968680c724456cbaad3422651901d5
---
modules/gui/macosx/VLCHUDSliderCell.m | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/modules/gui/macosx/VLCHUDSliderCell.m b/modules/gui/macosx/VLCHUDSliderCell.m
index 8e3ac28..2dcba9e 100644
--- a/modules/gui/macosx/VLCHUDSliderCell.m
+++ b/modules/gui/macosx/VLCHUDSliderCell.m
@@ -25,7 +25,6 @@
@implementation VLCHUDSliderCell
-
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
@@ -142,6 +141,32 @@ NSAffineTransform* RotationTransform(const CGFloat angle, const NSPoint point)
[path stroke];
}
+- (void)drawBarInside:(NSRect)fullRect flipped:(BOOL)flipped
+{
+ // 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
+ 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 active bar
+ [_sliderColor setFill];
+ NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:activeRect xRadius:2.0 yRadius:2.0];
+ [path fill];
+
+}
+
/*
- (void) drawFocusRingMaskWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
More information about the vlc-commits
mailing list