]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/item/textslider.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 / textslider.qc
index 93d4090e02f762e3c2269683e795fb4ba716204b..30b80c196d96884117def79c2c55496e65f34598 100644 (file)
@@ -1,15 +1,19 @@
 // Note:
 //   to use this, you FIRST call configureSliderVisuals, then multiple times addValue, then configureTextSlider
-#ifdef INTERFACE
-CLASS(TextSlider) EXTENDS(Slider)
-       METHOD(TextSlider, valueToText, string(entity, float))
-       METHOD(TextSlider, valueToIdentifier, string(entity, float))
-       METHOD(TextSlider, setValueFromIdentifier, void(entity, string))
-       METHOD(TextSlider, getIdentifier, string(entity))
-       METHOD(TextSlider, clearValues, void(entity))
-       METHOD(TextSlider, addValue, void(entity, string, string))
-       METHOD(TextSlider, insertValue, void(entity, float, string, string))
-       METHOD(TextSlider, configureTextSliderValues, void(entity, string))
+#ifndef ITEM_TEXTSLIDER_H
+#define ITEM_TEXTSLIDER_H
+#include "slider.qc"
+CLASS(TextSlider, Slider)
+       METHOD(TextSlider, valueToText, string(entity, float));
+       METHOD(TextSlider, valueToIdentifier, string(entity, float));
+       METHOD(TextSlider, setValueFromIdentifier_allowAnim, void(entity, string, bool));
+       METHOD(TextSlider, setValueFromIdentifier_noAnim, void(entity, string));
+       METHOD(TextSlider, setValueFromIdentifier, void(entity, string));
+       METHOD(TextSlider, getIdentifier, string(entity));
+       METHOD(TextSlider, clearValues, void(entity));
+       METHOD(TextSlider, addValue, void(entity, string, string));
+       METHOD(TextSlider, insertValue, void(entity, float, string, string));
+       METHOD(TextSlider, configureTextSliderValues, void(entity, string));
        ATTRIBARRAY(TextSlider, valueStrings, string, 256)
        ATTRIBARRAY(TextSlider, valueIdentifiers, string, 256)
        ATTRIB(TextSlider, nValues, int, 0)
@@ -33,16 +37,24 @@ string TextSlider_valueToText(entity me, int val)
                return _("Custom");
        return me.(valueStrings[val]);
 }
-void TextSlider_setValueFromIdentifier(entity me, string id)
+void TextSlider_setValueFromIdentifier_allowAnim(entity me, string id, bool allowAnim)
 {
        int i;
        for(i = 0; i < me.nValues; ++i)
                if(me.valueToIdentifier(me, i) == id)
                {
-                       SUPER(TextSlider).setValue( me, i );
+                       SUPER(TextSlider).setValue_allowAnim(me, i, allowAnim);
                        return;
                }
-       SUPER(TextSlider).setValue( me, -1 );
+       SUPER(TextSlider).setValue_allowAnim(me, -1, allowAnim);
+}
+void TextSlider_setValueFromIdentifier_noAnim(entity me, string id)
+{
+       TextSlider_setValueFromIdentifier_allowAnim(me, id, false);
+}
+void TextSlider_setValueFromIdentifier(entity me, string id)
+{
+       TextSlider_setValueFromIdentifier_allowAnim(me, id, true);
 }
 string TextSlider_getIdentifier(entity me)
 {
@@ -73,6 +85,6 @@ void TextSlider_insertValue(entity me, int pos, string theString, string theIden
 void TextSlider_configureTextSliderValues(entity me, string theDefault)
 {
        me.configureSliderValues(me, 0, 0, me.nValues - 1, 1, 1, 1);
-       me.setValueFromIdentifier(me, theDefault);
+       me.setValueFromIdentifier_noAnim(me, theDefault);
 }
 #endif