3 #include "../item/radiobutton.qc"
4 CLASS(XonoticRadioButton, RadioButton)
5 METHOD(XonoticRadioButton, configureXonoticRadioButton, void(entity, float, string, string, string, string));
6 METHOD(XonoticRadioButton, draw, void(entity));
7 METHOD(XonoticRadioButton, setChecked, void(entity, float));
8 ATTRIB(XonoticRadioButton, fontSize, float, SKINFONTSIZE_NORMAL)
9 ATTRIB(XonoticRadioButton, image, string, SKINGFX_RADIOBUTTON)
10 ATTRIB(XonoticRadioButton, color, vector, SKINCOLOR_RADIOBUTTON_N)
11 ATTRIB(XonoticRadioButton, colorC, vector, SKINCOLOR_RADIOBUTTON_C)
12 ATTRIB(XonoticRadioButton, colorF, vector, SKINCOLOR_RADIOBUTTON_F)
13 ATTRIB(XonoticRadioButton, colorD, vector, SKINCOLOR_RADIOBUTTON_D)
15 ATTRIB(XonoticRadioButton, cvarName, string, string_null)
16 ATTRIB(XonoticRadioButton, cvarValue, string, string_null)
17 ATTRIB(XonoticRadioButton, cvarOffValue, string, string_null)
18 ATTRIB(XonoticRadioButton, cvarValueIsAnotherCvar, float, 0)
19 METHOD(XonoticRadioButton, loadCvars, void(entity));
20 METHOD(XonoticRadioButton, saveCvars, void(entity));
22 ATTRIB(XonoticRadioButton, alpha, float, SKINALPHA_TEXT)
23 ATTRIB(XonoticRadioButton, disabledAlpha, float, SKINALPHA_DISABLED)
24 ENDCLASS(XonoticRadioButton)
25 entity makeXonoticRadioButton_T(float, string, string, string, string theTooltip);
26 entity makeXonoticRadioButton(float, string, string, string);
30 entity makeXonoticRadioButton_T(float theGroup, string theCvar, string theValue, string theText, string theTooltip)
33 me = NEW(XonoticRadioButton);
34 me.configureXonoticRadioButton(me, theGroup, theCvar, theValue, theText, theTooltip);
37 entity makeXonoticRadioButton(float theGroup, string theCvar, string theValue, string theText)
39 return makeXonoticRadioButton_T(theGroup, theCvar, theValue, theText, string_null);
41 void XonoticRadioButton_configureXonoticRadioButton(entity me, float theGroup, string theCvar, string theValue, string theText, string theTooltip)
43 me.cvarName = (theCvar) ? theCvar : string_null;
44 me.cvarValue = theValue;
46 setZonedTooltip(me, theTooltip, theCvar);
47 me.configureRadioButton(me, theText, me.fontSize, me.image, theGroup, 0);
49 void XonoticRadioButton_setChecked(entity me, float val)
57 void XonoticRadioButton_loadCvars(entity me)
63 if(me.cvarValueIsAnotherCvar)
64 me.checked = (cvar_string(me.cvarName) == cvar_string(me.cvarValue));
66 me.checked = (cvar_string(me.cvarName) == me.cvarValue);
73 me.checked = !!cvar(me.cvarName);
78 // this is the "generic" selection... but at this time, not
79 // everything is constructed yet.
80 // we need to set this later in draw()
85 void XonoticRadioButton_draw(entity me)
90 // this is the "other" option
91 // always select this if none other is
95 for(e = me.parent.firstChild; e; e = e.nextSibling)
96 if(e.group == me.group)
100 me.setChecked(me, 1);
102 SUPER(XonoticRadioButton).draw(me);
104 void XonoticRadioButton_saveCvars(entity me)
112 if(me.cvarValueIsAnotherCvar)
113 cvar_set(me.cvarName, cvar_string(me.cvarValue));
115 cvar_set(me.cvarName, me.cvarValue);
117 else if(me.cvarOffValue)
118 cvar_set(me.cvarName, me.cvarOffValue);
125 cvar_set(me.cvarName, ftos(me.checked));