]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/slider.c
Initial checkout of Vore Tournament 0.1.alpha.
[voretournament/voretournament.git] / data / qcsrc / menu / voret / slider.c
1 #ifdef INTERFACE\r
2 CLASS(VoretSlider) EXTENDS(Slider)\r
3         METHOD(VoretSlider, configureVoretSlider, void(entity, float, float, float, string))\r
4         METHOD(VoretSlider, setValue, void(entity, float))\r
5         ATTRIB(VoretSlider, fontSize, float, SKINFONTSIZE_NORMAL)\r
6         ATTRIB(VoretSlider, valueSpace, float, SKINWIDTH_SLIDERTEXT)\r
7         ATTRIB(VoretSlider, image, string, SKINGFX_SLIDER)\r
8         ATTRIB(VoretSlider, tolerance, vector, SKINTOLERANCE_SLIDER)\r
9         ATTRIB(VoretSlider, align, float, 0.5)\r
10         ATTRIB(VoretSlider, color, vector, SKINCOLOR_SLIDER_N)\r
11         ATTRIB(VoretSlider, colorC, vector, SKINCOLOR_SLIDER_C)\r
12         ATTRIB(VoretSlider, colorF, vector, SKINCOLOR_SLIDER_F)\r
13         ATTRIB(VoretSlider, colorD, vector, SKINCOLOR_SLIDER_D)\r
14         ATTRIB(VoretSlider, color2, vector, SKINCOLOR_SLIDER_S)\r
15 \r
16         ATTRIB(VoretSlider, cvarName, string, string_null)\r
17         METHOD(VoretSlider, loadCvars, void(entity))\r
18         METHOD(VoretSlider, saveCvars, void(entity))\r
19 \r
20         ATTRIB(VoretSlider, alpha, float, SKINALPHA_TEXT)\r
21         ATTRIB(VoretSlider, disabledAlpha, float, SKINALPHA_DISABLED)\r
22 ENDCLASS(VoretSlider)\r
23 entity makeVoretSlider(float, float, float, string);\r
24 #endif\r
25 \r
26 #ifdef IMPLEMENTATION\r
27 entity makeVoretSlider(float theValueMin, float theValueMax, float theValueStep, string theCvar)\r
28 {\r
29         entity me;\r
30         me = spawnVoretSlider();\r
31         me.configureVoretSlider(me, theValueMin, theValueMax, theValueStep, theCvar);\r
32         return me;\r
33 }\r
34 void configureVoretSliderVoretSlider(entity me, float theValueMin, float theValueMax, float theValueStep, string theCvar)\r
35 {\r
36         float v, vk, vp;\r
37         v = theValueMin;\r
38         vk = theValueStep;\r
39         vp = theValueStep * 10;\r
40         while(fabs(vp) < fabs(theValueMax - theValueMin) / 40)\r
41                 vp *= 10;\r
42         me.configureSliderVisuals(me, me.fontSize, me.align, me.valueSpace, me.image);\r
43         me.configureSliderValues(me, theValueMin, v, theValueMax, theValueStep, vk, vp);\r
44         if(theCvar)\r
45         {\r
46                 me.cvarName = theCvar;\r
47                 me.loadCvars(me);\r
48                 if(tooltipdb >= 0)\r
49                         me.tooltip = getZonedTooltipForIdentifier(theCvar);\r
50         }\r
51 }\r
52 void setValueVoretSlider(entity me, float val)\r
53 {\r
54         if(val != me.value)\r
55         {\r
56                 me.value = val;\r
57                 me.saveCvars(me);\r
58         }\r
59 }\r
60 void loadCvarsVoretSlider(entity me)\r
61 {\r
62         if not(me.cvarName)\r
63                 return;\r
64 \r
65         me.value = cvar(me.cvarName);\r
66 }\r
67 void saveCvarsVoretSlider(entity me)\r
68 {\r
69         if not(me.cvarName)\r
70                 return;\r
71 \r
72         cvar_set(me.cvarName, ftos(me.value));\r
73 }\r
74 #endif\r