1 #include "textslider.qh"
3 // to use this, you FIRST call configureSliderVisuals, then multiple times addValue, then configureTextSlider
4 #ifndef ITEM_TEXTSLIDER_H
5 #define ITEM_TEXTSLIDER_H
7 CLASS(TextSlider, Slider)
8 METHOD(TextSlider, valueToText, string(entity, float));
9 METHOD(TextSlider, valueToIdentifier, string(entity, float));
10 METHOD(TextSlider, setValueFromIdentifier_allowAnim, void(entity, string, bool));
11 METHOD(TextSlider, setValueFromIdentifier_noAnim, void(entity, string));
12 METHOD(TextSlider, setValueFromIdentifier, void(entity, string));
13 METHOD(TextSlider, getIdentifier, string(entity));
14 METHOD(TextSlider, clearValues, void(entity));
15 METHOD(TextSlider, addValue, void(entity, string, string));
16 METHOD(TextSlider, insertValue, void(entity, float, string, string));
17 METHOD(TextSlider, configureTextSliderValues, void(entity, string));
18 ATTRIBARRAY(TextSlider, valueStrings, string, 256)
19 ATTRIBARRAY(TextSlider, valueIdentifiers, string, 256)
20 ATTRIB(TextSlider, nValues, int, 0)
25 string TextSlider_valueToIdentifier(entity me, int val)
27 if (val >= me.nValues) return "custom";
28 if (val < 0) return "custom";
29 return me.(valueIdentifiers[val]);
31 string TextSlider_valueToText(entity me, int val)
33 if (val >= me.nValues) return _("Custom");
34 if (val < 0) return _("Custom");
35 return me.(valueStrings[val]);
37 void TextSlider_setValueFromIdentifier_allowAnim(entity me, string id, bool allowAnim)
40 for (i = 0; i < me.nValues; ++i)
41 if (me.valueToIdentifier(me, i) == id)
43 SUPER(TextSlider).setValue_allowAnim(me, i, allowAnim);
46 SUPER(TextSlider).setValue_allowAnim(me, -1, allowAnim);
48 void TextSlider_setValueFromIdentifier_noAnim(entity me, string id)
50 TextSlider_setValueFromIdentifier_allowAnim(me, id, false);
52 void TextSlider_setValueFromIdentifier(entity me, string id)
54 TextSlider_setValueFromIdentifier_allowAnim(me, id, true);
56 string TextSlider_getIdentifier(entity me)
58 return me.valueToIdentifier(me, me.value);
60 void TextSlider_clearValues(entity me)
64 void TextSlider_addValue(entity me, string theString, string theIdentifier)
66 me.(valueStrings[me.nValues]) = theString;
67 me.(valueIdentifiers[me.nValues]) = theIdentifier;
70 void TextSlider_insertValue(entity me, int pos, string theString, string theIdentifier)
73 for (i = me.nValues; i > pos; --i)
75 me.(valueStrings[i]) = me.(valueStrings[i - 1]);
76 me.(valueIdentifiers[i]) = me.(valueIdentifiers[i - 1]);
78 me.(valueStrings[pos]) = theString;
79 me.(valueIdentifiers[pos]) = theIdentifier;
82 void TextSlider_configureTextSliderValues(entity me, string theDefault)
84 me.configureSliderValues(me, 0, 0, me.nValues - 1, 1, 1, 1);
85 me.setValueFromIdentifier_noAnim(me, theDefault);