From: Stephan Stahl Date: Fri, 16 Apr 2010 19:57:23 +0000 (+0000) Subject: trying to make all slider animatable X-Git-Tag: xonotic-v0.1.0preview~578^2~5 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=8a3497931f1e38e84b55d895c01a518a79b49251;p=xonotic%2Fxonotic-data.pk3dir.git trying to make all slider animatable (cherry picked from commit a3451406868bace6a8e8f8f9480e33ff83be8b0c) --- diff --git a/qcsrc/menu/item/slider.c b/qcsrc/menu/item/slider.c index f71bb32da..65f882e38 100644 --- a/qcsrc/menu/item/slider.c +++ b/qcsrc/menu/item/slider.c @@ -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 diff --git a/qcsrc/menu/item/textslider.c b/qcsrc/menu/item/textslider.c index 628c8a579..18c54fce6 100644 --- a/qcsrc/menu/item/textslider.c +++ b/qcsrc/menu/item/textslider.c @@ -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; diff --git a/qcsrc/menu/xonotic/slider.c b/qcsrc/menu/xonotic/slider.c index 420dd32e1..c76ed08a8 100644 --- a/qcsrc/menu/xonotic/slider.c +++ b/qcsrc/menu/xonotic/slider.c @@ -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); } } diff --git a/qcsrc/menu/xonotic/slider_decibels.c b/qcsrc/menu/xonotic/slider_decibels.c index 20beec911..ba7cffc22 100644 --- a/qcsrc/menu/xonotic/slider_decibels.c +++ b/qcsrc/menu/xonotic/slider_decibels.c @@ -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) { diff --git a/qcsrc/menu/xonotic/textslider.c b/qcsrc/menu/xonotic/textslider.c index d4786a791..2236bc51f 100644 --- a/qcsrc/menu/xonotic/textslider.c +++ b/qcsrc/menu/xonotic/textslider.c @@ -46,7 +46,7 @@ void setValueXonoticTextSlider(entity me, float val) { if(val != me.value) { - me.value = val; + setValueSlider( me, val ); me.saveCvars(me); } }