]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/colorbutton.c
Stronger gloss with slightly darker bloom
[voretournament/voretournament.git] / data / qcsrc / menu / voret / colorbutton.c
1 #ifdef INTERFACE\r
2 CLASS(VoretColorButton) EXTENDS(RadioButton)\r
3         METHOD(VoretColorButton, configureVoretColorButton, void(entity, float, float, float))\r
4         METHOD(VoretColorButton, setChecked, void(entity, float))\r
5         METHOD(VoretColorButton, draw, void(entity))\r
6         ATTRIB(VoretColorButton, fontSize, float, SKINFONTSIZE_NORMAL)\r
7         ATTRIB(VoretColorButton, image, string, SKINGFX_COLORBUTTON)\r
8         ATTRIB(VoretColorButton, image2, string, SKINGFX_COLORBUTTON_COLOR)\r
9 \r
10         ATTRIB(VoretColorButton, useDownAsChecked, float, 1)\r
11 \r
12         ATTRIB(VoretColorButton, cvarPart, float, 0)\r
13         ATTRIB(VoretColorButton, cvarName, string, string_null)\r
14         ATTRIB(VoretColorButton, cvarValueFloat, float, 0)\r
15         METHOD(VoretColorButton, loadCvars, void(entity))\r
16         METHOD(VoretColorButton, saveCvars, void(entity))\r
17 ENDCLASS(VoretColorButton)\r
18 entity makeVoretColorButton(float, float, float);\r
19 #endif\r
20 \r
21 #ifdef IMPLEMENTATION\r
22 entity makeVoretColorButton(float theGroup, float theColor, float theValue)\r
23 {\r
24         entity me;\r
25         me = spawnVoretColorButton();\r
26         me.configureVoretColorButton(me, theGroup, theColor, theValue);\r
27         return me;\r
28 }\r
29 void configureVoretColorButtonVoretColorButton(entity me, float theGroup, float theColor, float theValue)\r
30 {\r
31         me.cvarName = "_cl_color";\r
32         me.cvarValueFloat = theValue;\r
33         me.cvarPart = theColor;\r
34         me.loadCvars(me);\r
35         me.configureRadioButton(me, string_null, me.fontSize, me.image, theGroup, 0);\r
36         me.srcMulti = 1;\r
37         me.src2 = me.image2;\r
38 }\r
39 void setCheckedVoretColorButton(entity me, float val)\r
40 {\r
41         if(val != me.checked)\r
42         {\r
43                 me.checked = val;\r
44                 me.saveCvars(me);\r
45         }\r
46 }\r
47 void loadCvarsVoretColorButton(entity me)\r
48 {\r
49         if not(me.cvarName)\r
50                 return;\r
51 \r
52         if(me.cvarPart == 1)\r
53                 me.checked = (cvar(me.cvarName) & 240) == me.cvarValueFloat * 16;\r
54         else\r
55                 me.checked = (cvar(me.cvarName) & 15) == me.cvarValueFloat;\r
56 }\r
57 void saveCvarsVoretColorButton(entity me)\r
58 {\r
59         if not(me.cvarName)\r
60                 return;\r
61 \r
62         if(me.checked)\r
63         {\r
64                 if(me.cvarPart == 1)\r
65                         cvar_set(me.cvarName, ftos(cvar(me.cvarName) & 15 + me.cvarValueFloat * 16));\r
66                 else\r
67                         cvar_set(me.cvarName, ftos(cvar(me.cvarName) & 240 + me.cvarValueFloat));\r
68         }\r
69         // TODO on an apply button, read _cl_color and execute the color command for it\r
70 }\r
71 void drawVoretColorButton(entity me)\r
72 {\r
73         me.color2 = colormapPaletteColor(me.cvarValueFloat, me.cvarPart);\r
74         drawCheckBox(me);\r
75 }\r
76 #endif\r