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

Reply via email to