]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/textslider.c
Stronger gloss with slightly darker bloom
[voretournament/voretournament.git] / data / qcsrc / menu / voret / textslider.c
1 #ifdef INTERFACE\r
2 CLASS(VoretTextSlider) EXTENDS(TextSlider)\r
3         METHOD(VoretTextSlider, configureVoretTextSlider, void(entity, string))\r
4         METHOD(VoretTextSlider, setValue, void(entity, float))\r
5         METHOD(VoretTextSlider, configureVoretTextSliderValues, void(entity))\r
6         ATTRIB(VoretTextSlider, fontSize, float, SKINFONTSIZE_NORMAL)\r
7         ATTRIB(VoretTextSlider, valueSpace, float, SKINWIDTH_SLIDERTEXT)\r
8         ATTRIB(VoretTextSlider, image, string, SKINGFX_SLIDER)\r
9         ATTRIB(VoretSlider, tolerance, vector, SKINTOLERANCE_SLIDER)\r
10         ATTRIB(VoretTextSlider, align, float, 0.5)\r
11         ATTRIB(VoretSlider, color, vector, SKINCOLOR_SLIDER_N)\r
12         ATTRIB(VoretSlider, colorC, vector, SKINCOLOR_SLIDER_C)\r
13         ATTRIB(VoretSlider, colorF, vector, SKINCOLOR_SLIDER_F)\r
14         ATTRIB(VoretSlider, colorD, vector, SKINCOLOR_SLIDER_D)\r
15         ATTRIB(VoretSlider, color2, vector, SKINCOLOR_SLIDER_S)\r
16 \r
17         ATTRIB(VoretTextSlider, cvarName, string, string_null)\r
18         METHOD(VoretTextSlider, loadCvars, void(entity))\r
19         METHOD(VoretTextSlider, saveCvars, void(entity))\r
20 \r
21         ATTRIB(VoretTextSlider, alpha, float, SKINALPHA_TEXT)\r
22         ATTRIB(VoretTextSlider, disabledAlpha, float, SKINALPHA_DISABLED)\r
23 ENDCLASS(VoretTextSlider)\r
24 entity makeVoretTextSlider(string); // note: you still need to call addValue and configureVoretTextSliderValues!\r
25 #endif\r
26 \r
27 #ifdef IMPLEMENTATION\r
28 entity makeVoretTextSlider(string theCvar)\r
29 {\r
30         entity me;\r
31         me = spawnVoretTextSlider();\r
32         me.configureVoretTextSlider(me, theCvar);\r
33         return me;\r
34 }\r
35 void configureVoretTextSliderVoretTextSlider(entity me, string theCvar)\r
36 {\r
37         me.configureSliderVisuals(me, me.fontSize, me.align, me.valueSpace, me.image);\r
38         if(theCvar)\r
39         {\r
40                 me.cvarName = theCvar;\r
41                 me.tooltip = getZonedTooltipForIdentifier(theCvar);\r
42                 // don't load it yet\r
43         }\r
44 }\r
45 void setValueVoretTextSlider(entity me, float val)\r
46 {\r
47         if(val != me.value)\r
48         {\r
49                 me.value = val;\r
50                 me.saveCvars(me);\r
51         }\r
52 }\r
53 void loadCvarsVoretTextSlider(entity me)\r
54 {\r
55         if not(me.cvarName)\r
56                 return;\r
57 \r
58         var float n = tokenize_console(me.cvarName);\r
59         var string s = cvar_string(argv(0));\r
60         float i;\r
61         for(i = 1; i < n; ++i)\r
62                 s = strcat(s, " ", cvar_string(argv(i)));\r
63         me.setValueFromIdentifier(me, s);\r
64 }\r
65 void saveCvarsVoretTextSlider(entity me)\r
66 {\r
67         if not(me.cvarName)\r
68                 return;\r
69 \r
70         if(me.value >= 0 && me.value < me.nValues)\r
71         {\r
72                 var float n = tokenize_console(me.cvarName);\r
73                 if(n == 1)\r
74                 {\r
75                         // this is a special case to allow spaces in the identifiers\r
76                         cvar_set(argv(0), me.getIdentifier(me));\r
77                 }\r
78                 else\r
79                 {\r
80                         float i;\r
81                         var float m = tokenize_console(strcat(me.cvarName, " ", me.getIdentifier(me)));\r
82                         if(m == n + 1)\r
83                         {\r
84                                 for(i = 0; i < n; ++i)\r
85                                         cvar_set(argv(i), argv(n));\r
86                         }\r
87                         else if(m == n * 2)\r
88                         {\r
89                                 for(i = 0; i < n; ++i)\r
90                                         cvar_set(argv(i), argv(i + n));\r
91                         }\r
92                         else\r
93                                 error("VoretTextSlider: invalid identifier ", me.getIdentifier(me), " does not match cvar list ", me.cvarName);\r
94                 }\r
95         }\r
96 }\r
97 void configureVoretTextSliderValuesVoretTextSlider(entity me)\r
98 {\r
99         me.configureTextSliderValues(me, string_null);\r
100         me.loadCvars(me);\r
101 }\r
102 #endif\r