]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/item/textslider.c
Initial checkout of Vore Tournament 0.1.alpha.
[voretournament/voretournament.git] / data / qcsrc / menu / item / textslider.c
1 // Note:\r
2 //   to use this, you FIRST call configureSliderVisuals, then multiple times addValue, then configureTextSlider\r
3 #ifdef INTERFACE\r
4 CLASS(TextSlider) EXTENDS(Slider)\r
5         METHOD(TextSlider, valueToText, string(entity, float))\r
6         METHOD(TextSlider, valueToIdentifier, string(entity, float))\r
7         METHOD(TextSlider, setValueFromIdentifier, void(entity, string))\r
8         METHOD(TextSlider, getIdentifier, string(entity))\r
9         METHOD(TextSlider, addValue, void(entity, string, string))\r
10         METHOD(TextSlider, configureTextSliderValues, void(entity, string))\r
11         ATTRIBARRAY(TextSlider, valueStrings, string, 256)\r
12         ATTRIBARRAY(TextSlider, valueIdentifiers, string, 256)\r
13         ATTRIB(TextSlider, nValues, float, 0)\r
14 ENDCLASS(TextSlider)\r
15 #endif\r
16 \r
17 #ifdef IMPLEMENTATION\r
18 string valueToIdentifierTextSlider(entity me, float val)\r
19 {\r
20         if(val >= me.nValues)\r
21                 return "custom";\r
22         if(val < 0)\r
23                 return "custom";\r
24         return me.(valueIdentifiers[val]);\r
25 }\r
26 string valueToTextTextSlider(entity me, float val)\r
27 {\r
28         if(val >= me.nValues)\r
29                 return "custom";\r
30         if(val < 0)\r
31                 return "custom";\r
32         return me.(valueStrings[val]);\r
33 }\r
34 void setValueFromIdentifierTextSlider(entity me, string id)\r
35 {\r
36         float i;\r
37         for(i = 0; i < me.nValues; ++i)\r
38                 if(me.valueToIdentifier(me, i) == id)\r
39                 {\r
40                         me.value = i;\r
41                         return;\r
42                 }\r
43         me.value = -1;\r
44 }\r
45 string getIdentifierTextSlider(entity me)\r
46 {\r
47         return me.valueToIdentifier(me, me.value);\r
48 }\r
49 void addValueTextSlider(entity me, string theString, string theIdentifier)\r
50 {\r
51         me.(valueStrings[me.nValues]) = theString;\r
52         me.(valueIdentifiers[me.nValues]) = theIdentifier;\r
53         me.nValues += 1;\r
54 }\r
55 void configureTextSliderValuesTextSlider(entity me, string theDefault)\r
56 {\r
57         me.configureSliderValues(me, 0, 0, me.nValues - 1, 1, 1, 1);\r
58         me.setValueFromIdentifier(me, theDefault);\r
59 }\r
60 #endif\r