]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/item/slider.qc
Don't play any animation when loading the initial value of a slider since the animati...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / item / slider.qc
index 7e880dcd9e86a5b43445f06b3c8d04b2a924974c..daad34a168f3cf7026c92a2618b0705357192fe6 100644 (file)
@@ -4,20 +4,22 @@
 #define ITEM_SLIDER_H
 #include "label.qc"
 CLASS(Slider, Label)
-       METHOD(Slider, resizeNotify, void(entity, vector, vector, vector, vector))
-       METHOD(Slider, configureSliderVisuals, void(entity, float, float, float, string))
-       METHOD(Slider, configureSliderValues, void(entity, float, float, float, float, float, float))
-       METHOD(Slider, draw, void(entity))
-       METHOD(Slider, keyDown, float(entity, float, float, float))
-       METHOD(Slider, keyUp, float(entity, float, float, float))
-       METHOD(Slider, mousePress, float(entity, vector))
-       METHOD(Slider, mouseDrag, float(entity, vector))
-       METHOD(Slider, mouseRelease, float(entity, vector))
-       METHOD(Slider, valueToText, string(entity, float))
-       METHOD(Slider, toString, string(entity))
-       METHOD(Slider, setValue, void(entity, float))
-       METHOD(Slider, setSliderValue, void(entity, float))
-       METHOD(Slider, showNotify, void(entity))
+       METHOD(Slider, resizeNotify, void(entity, vector, vector, vector, vector));
+       METHOD(Slider, configureSliderVisuals, void(entity, float, float, float, string));
+       METHOD(Slider, configureSliderValues, void(entity, float, float, float, float, float, float));
+       METHOD(Slider, draw, void(entity));
+       METHOD(Slider, keyDown, float(entity, float, float, float));
+       METHOD(Slider, keyUp, float(entity, float, float, float));
+       METHOD(Slider, mousePress, float(entity, vector));
+       METHOD(Slider, mouseDrag, float(entity, vector));
+       METHOD(Slider, mouseRelease, float(entity, vector));
+       METHOD(Slider, valueToText, string(entity, float));
+       METHOD(Slider, toString, string(entity));
+       METHOD(Slider, setValue_allowAnim, void(entity, float, bool));
+       METHOD(Slider, setValue_noAnim, void(entity, float));
+       METHOD(Slider, setValue, void(entity, float));
+       METHOD(Slider, setSliderValue, void(entity, float));
+       METHOD(Slider, showNotify, void(entity));
        ATTRIB(Slider, src, string, string_null)
        ATTRIB(Slider, focusable, float, 1)
        ATTRIB(Slider, allowFocusSound, float, 1)
@@ -49,9 +51,9 @@ ENDCLASS(Slider)
 #endif
 
 #ifdef IMPLEMENTATION
-void Slider_setValue(entity me, float val)
+void Slider_setValue_allowAnim(entity me, float val, bool allowAnim)
 {
-       if (me.animated) {
+       if(allowAnim && me.animated) {
                float t = 0.5;
                if(me.pressed == 2)
                        t = 0.3; // slightly more responsive while dragging the handle
@@ -64,6 +66,14 @@ void Slider_setValue(entity me, float val)
        }
        me.value = val;
 }
+void Slider_setValue_noAnim(entity me, float val)
+{
+       Slider_setValue_allowAnim(me, val, false);
+}
+void Slider_setValue(entity me, float val)
+{
+       Slider_setValue_allowAnim(me, val, true);
+}
 void Slider_setSliderValue(entity me, float val)
 {
        me.sliderValue = val;