]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
now slider work quite nice.. dragging uses unanimated movement, all the rest does.
authorStephan Stahl <esteel@eos.franken.de>
Fri, 23 Apr 2010 20:33:29 +0000 (20:33 +0000)
committerStephan Stahl <esteel@eos.franken.de>
Sun, 16 May 2010 22:30:49 +0000 (22:30 +0000)
(cherry picked from commit 1952fd4d4c1bd906fb71f8332c796d021bea34f3)

qcsrc/menu/item/slider.c

index 65f882e38f89c02d1416e770789636a6adab65ca..7faca4e643c78f1f666f03192a6964abf405760d 100644 (file)
@@ -18,6 +18,7 @@ CLASS(Slider) EXTENDS(Label)
        ATTRIB(Slider, src, string, string_null)
        ATTRIB(Slider, focusable, float, 1)
        ATTRIB(Slider, value, float, 0)
+       ATTRIB(Slider, animated, float, 1)
        ATTRIB(Slider, sliderValue, float, 0)
        ATTRIB(Slider, valueMin, float, 0)
        ATTRIB(Slider, valueMax, float, 0)
@@ -45,8 +46,11 @@ ENDCLASS(Slider)
 #ifdef IMPLEMENTATION
 void setValueSlider(entity me, float val)
 {
-       //me.setSliderValue(me, val);
-       makeHostedEasing(me, setSliderValueSlider, easingQuadInOut, 1, me.value, val);
+       if (me.animated) {
+               makeHostedEasing(me, setSliderValueSlider, easingQuadInOut, 1, me.sliderValue, val);
+       } else {
+               me.setSliderValue(me, val);
+       }
        me.value = val;
 }
 void setSliderValueSlider(entity me, float val)
@@ -146,9 +150,11 @@ float keyDownSlider(entity me, float key, float ascii, float shift)
 float mouseDragSlider(entity me, vector pos)
 {
        float hit;
-       float v;
+       float v, anim;
        if(me.disabled)
                return 0;
+       anim = me.animated;
+       me.animated = false;
        if(me.pressed)
        {
                hit = 1;
@@ -166,6 +172,7 @@ float mouseDragSlider(entity me, vector pos)
                else
                        me.setValue(me, me.previousValue);
        }
+       me.animated = anim;
        return 1;
 }
 float mousePressSlider(entity me, vector pos)