]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
trying to make all slider animatable
authorStephan Stahl <esteel@eos.franken.de>
Fri, 16 Apr 2010 19:57:23 +0000 (19:57 +0000)
committerStephan Stahl <esteel@eos.franken.de>
Sun, 16 May 2010 22:30:24 +0000 (22:30 +0000)
(cherry picked from commit a3451406868bace6a8e8f8f9480e33ff83be8b0c)

qcsrc/menu/item/slider.c
qcsrc/menu/item/textslider.c
qcsrc/menu/xonotic/slider.c
qcsrc/menu/xonotic/slider_decibels.c
qcsrc/menu/xonotic/textslider.c

index f71bb32da9703c561d0a8d72caec4bfe9551b606..65f882e38f89c02d1416e770789636a6adab65ca 100644 (file)
@@ -13,10 +13,12 @@ CLASS(Slider) EXTENDS(Label)
        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))
        ATTRIB(Slider, src, string, string_null)
        ATTRIB(Slider, focusable, float, 1)
        ATTRIB(Slider, value, float, 0)
+       ATTRIB(Slider, sliderValue, float, 0)
        ATTRIB(Slider, valueMin, float, 0)
        ATTRIB(Slider, valueMax, float, 0)
        ATTRIB(Slider, valueStep, float, 0)
@@ -43,8 +45,14 @@ ENDCLASS(Slider)
 #ifdef IMPLEMENTATION
 void setValueSlider(entity me, float val)
 {
+       //me.setSliderValue(me, val);
+       makeHostedEasing(me, setSliderValueSlider, easingQuadInOut, 1, me.value, val);
        me.value = val;
 }
+void setSliderValueSlider(entity me, float val)
+{
+       me.sliderValue = val;
+}
 string toStringSlider(entity me)
 {
        return strcat(ftos(me.value), " (", me.valueToText(me, me.value), ")");
@@ -70,6 +78,7 @@ void configureSliderVisualsSlider(entity me, float sz, float theAlign, float the
 void configureSliderValuesSlider(entity me, float theValueMin, float theValue, float theValueMax, float theValueStep, float theValueKeyStep, float theValuePageStep)
 {
        me.value = theValue;
+       me.sliderValue = theValue;
        me.valueStep = theValueStep;
        me.valueMin = theValueMin;
        me.valueMax = theValueMax;
@@ -236,9 +245,9 @@ void drawSlider(entity me)
        if(me.disabled)
                draw_alpha *= me.disabledAlpha;
        draw_ButtonPicture('0 0 0', strcat(me.src, "_s"), eX * (1 - me.textSpace) + eY, me.color2, 1);
-       if(almost_in_bounds(me.valueMin, me.value, me.valueMax))
+       if(almost_in_bounds(me.valueMin, me.sliderValue, me.valueMax))
        {
-               controlLeft = (me.value - me.valueMin) / (me.valueMax - me.valueMin) * (1 - me.textSpace - me.controlWidth);
+               controlLeft = (me.sliderValue - me.valueMin) / (me.valueMax - me.valueMin) * (1 - me.textSpace - me.controlWidth);
                if(me.disabled)
                        draw_Picture(eX * controlLeft, strcat(me.src, "_d"), eX * me.controlWidth + eY, me.colorD, 1);
                else if(me.pressed)
@@ -253,4 +262,4 @@ void drawSlider(entity me)
        drawLabel(me);
        me.text = string_null; // TEMPSTRING!
 }
-#endif
\ No newline at end of file
+#endif
index 628c8a579b86d6a48d2c34a0e60d38b0872f071a..18c54fce6b9762258a90edf6cd4b56d8085ec661 100644 (file)
@@ -37,7 +37,7 @@ void setValueFromIdentifierTextSlider(entity me, string id)
        for(i = 0; i < me.nValues; ++i)
                if(me.valueToIdentifier(me, i) == id)
                {
-                       me.value = i;
+                       setValueSlider( me, i );
                        return;
                }
        me.value = -1;
index 420dd32e1381b8c8ae2f065a807d172a311a6e4b..c76ed08a84f5d2ab98c148ebc4f735cfd518a6a2 100644 (file)
@@ -53,8 +53,7 @@ void setValueXonoticSlider(entity me, float val)
 {
        if(val != me.value)
        {
-               makeHostedEasing(me, setValueSlider, easingQuadInOut, 1, me.value, val);
-               me.value = val;
+               setValueSlider( me, val );
                me.saveCvars(me);
        }
 }
index 20beec911e6144f7c42cda41986a423e8c82d31a..ba7cffc22f049b99564ca11fb7582225716b90db 100644 (file)
@@ -25,11 +25,11 @@ void loadCvarsXonoticDecibelsSlider(entity me)
 
        v = cvar(me.cvarName);
        if(v >= 0.98)
-               me.value = 0;
+               setValueSlider( me, 0 );
        else if(v < 0.0005)
-               me.value = -1000000;
+               setValueSlider( me, -1000000 );
        else
-               me.value = 0.1 * floor(0.5 + 10.0 * log10(cvar(me.cvarName)) * 10);
+               setValueSlider( me, 0.1 * floor(0.5 + 10.0 * log10(cvar(me.cvarName)) * 10) );
 }
 void saveCvarsXonoticDecibelsSlider(entity me)
 {
index d4786a7910aa7e43fbe1f915090abc8bee1fad54..2236bc51fe362b88705c10b353e0e57b6e5ef7fe 100644 (file)
@@ -46,7 +46,7 @@ void setValueXonoticTextSlider(entity me, float val)
 {
        if(val != me.value)
        {
-               me.value = val;
+               setValueSlider( me, val );
                me.saveCvars(me);
        }
 }