]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/checkbox_slider_invalid.qc
Merge branch 'master' into Mario/hagar_notfixed
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / checkbox_slider_invalid.qc
1 #include "checkbox_slider_invalid.qh"
2
3 #include "slider.qh"
4
5 entity makeXonoticSliderCheckBox(float theOffValue, float isInverted, entity theControlledSlider, string theText)
6 {
7         entity me;
8         me = NEW(XonoticSliderCheckBox);
9         me.configureXonoticSliderCheckBox(me, theOffValue, isInverted, theControlledSlider, theText);
10         return me;
11 }
12 void XonoticSliderCheckBox_configureXonoticSliderCheckBox(entity me, float theOffValue, float isInverted, entity theControlledSlider, string theText)
13 {
14         me.offValue = theOffValue;
15         me.inverted = isInverted;
16         me.checked = (theControlledSlider.value == theOffValue);
17         if(theControlledSlider.value == median(theControlledSlider.valueMin, theControlledSlider.value, theControlledSlider.valueMax))
18                 me.savedValue = theControlledSlider.value;
19         else
20                 me.savedValue = theControlledSlider.valueMin;
21         me.controlledSlider = theControlledSlider;
22         me.configureCheckBox(me, theText, me.fontSize, me.image);
23         me.cvarName = theControlledSlider.cvarName; // in case we want to display the cvar in the tooltip
24         me.tooltip = theControlledSlider.tooltip;
25 }
26 void XonoticSliderCheckBox_draw(entity me)
27 {
28         me.checked = ((me.controlledSlider.value == me.offValue) != me.inverted);
29         if(me.controlledSlider.value == median(me.controlledSlider.valueMin, me.controlledSlider.value, me.controlledSlider.valueMax))
30                 me.savedValue = me.controlledSlider.value;
31         SUPER(XonoticSliderCheckBox).draw(me);
32 }
33 void XonoticSliderCheckBox_setChecked(entity me, float val)
34 {
35         if(me.checked == val)
36                 return;
37         me.checked = val;
38         if(val == me.inverted)
39                 me.controlledSlider.setValue(me.controlledSlider, median(me.controlledSlider.valueMin, me.savedValue, me.controlledSlider.valueMax));
40         else
41                 me.controlledSlider.setValue(me.controlledSlider, me.offValue);
42 }