2 // to use this, you FIRST call configureSliderVisuals, then multiple times addValue, then configureTextSlider
4 CLASS(TextSlider) EXTENDS(Slider)
5 METHOD(TextSlider, valueToText, string(entity, float))
6 METHOD(TextSlider, valueToIdentifier, string(entity, float))
7 METHOD(TextSlider, setValueFromIdentifier, void(entity, string))
8 METHOD(TextSlider, getIdentifier, string(entity))
9 METHOD(TextSlider, clearValues, void(entity))
10 METHOD(TextSlider, addValue, void(entity, string, string))
11 METHOD(TextSlider, insertValue, void(entity, float, string, string))
12 METHOD(TextSlider, configureTextSliderValues, void(entity, string))
13 ATTRIBARRAY(TextSlider, valueStrings, string, 256)
14 ATTRIBARRAY(TextSlider, valueIdentifiers, string, 256)
15 ATTRIB(TextSlider, nValues, float, 0)
20 string TextSlider_valueToIdentifier(entity me, float val)
26 return me.(valueIdentifiers[val]);
28 string TextSlider_valueToText(entity me, float val)
34 return me.(valueStrings[val]);
36 void TextSlider_setValueFromIdentifier(entity me, string id)
39 for(i = 0; i < me.nValues; ++i)
40 if(me.valueToIdentifier(me, i) == id)
42 SUPER(TextSlider).setValue( me, i );
45 SUPER(TextSlider).setValue( me, -1 );
47 string TextSlider_getIdentifier(entity me)
49 return me.valueToIdentifier(me, me.value);
51 void TextSlider_clearValues(entity me)
55 void TextSlider_addValue(entity me, string theString, string theIdentifier)
57 me.(valueStrings[me.nValues]) = theString;
58 me.(valueIdentifiers[me.nValues]) = theIdentifier;
61 void TextSlider_insertValue(entity me, float pos, string theString, string theIdentifier)
64 for (i = me.nValues; i > pos; --i)
66 me.(valueStrings[i]) = me.(valueStrings[i-1]);
67 me.(valueIdentifiers[i]) = me.(valueIdentifiers[i-1]);
69 me.(valueStrings[pos]) = theString;
70 me.(valueIdentifiers[pos]) = theIdentifier;
73 void TextSlider_configureTextSliderValues(entity me, string theDefault)
75 me.configureSliderValues(me, 0, 0, me.nValues - 1, 1, 1, 1);
76 me.setValueFromIdentifier(me, theDefault);