]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/textslider.qc
Merge branch 'martin-t/limit'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / textslider.qc
index 47d9eb44dc7fbaffa0fd310b868534f204cc2b90..54c7e5fb1238788e7e8d2a21fa2aac67e0e85676 100644 (file)
@@ -1,49 +1,22 @@
-#ifndef TEXTSLIDER_H
-#define TEXTSLIDER_H
-#include "../item/textslider.qc"
-CLASS(XonoticTextSlider, TextSlider)
-       METHOD(XonoticTextSlider, configureXonoticTextSlider, void(entity, string))
-       METHOD(XonoticTextSlider, setValue, void(entity, float))
-       METHOD(XonoticTextSlider, configureXonoticTextSliderValues, void(entity))
-       ATTRIB(XonoticTextSlider, fontSize, float, SKINFONTSIZE_NORMAL)
-       ATTRIB(XonoticTextSlider, valueSpace, float, SKINWIDTH_SLIDERTEXT)
-       ATTRIB(XonoticTextSlider, image, string, SKINGFX_SLIDER)
-       ATTRIB(XonoticTextSlider, tolerance, vector, SKINTOLERANCE_SLIDER)
-       ATTRIB(XonoticTextSlider, align, float, 0.5)
-       ATTRIB(XonoticTextSlider, color, vector, SKINCOLOR_SLIDER_N)
-       ATTRIB(XonoticTextSlider, colorC, vector, SKINCOLOR_SLIDER_C)
-       ATTRIB(XonoticTextSlider, colorF, vector, SKINCOLOR_SLIDER_F)
-       ATTRIB(XonoticTextSlider, colorD, vector, SKINCOLOR_SLIDER_D)
-       ATTRIB(XonoticTextSlider, color2, vector, SKINCOLOR_SLIDER_S)
+#include "textslider.qh"
 
-       ATTRIB(XonoticTextSlider, cvarName, string, string_null)
-       METHOD(XonoticTextSlider, loadCvars, void(entity))
-       METHOD(XonoticTextSlider, saveCvars, void(entity))
-       ATTRIB(XonoticTextSlider, sendCvars, float, 0)
-
-       ATTRIB(XonoticTextSlider, alpha, float, SKINALPHA_TEXT)
-       ATTRIB(XonoticTextSlider, disabledAlpha, float, SKINALPHA_DISABLED)
-ENDCLASS(XonoticTextSlider)
-entity makeXonoticTextSlider(string); // note: you still need to call addValue and configureXonoticTextSliderValues!
-#endif
-
-#ifdef IMPLEMENTATION
-entity makeXonoticTextSlider(string theCvar)
+entity makeXonoticTextSlider_T(string theCvar, string theTooltip)
 {
        entity me;
        me = NEW(XonoticTextSlider);
-       me.configureXonoticTextSlider(me, theCvar);
+       me.configureXonoticTextSlider(me, theCvar, theTooltip);
        return me;
 }
-void XonoticTextSlider_configureXonoticTextSlider(entity me, string theCvar)
+entity makeXonoticTextSlider(string theCvar)
+{
+       return makeXonoticTextSlider_T(theCvar, string_null);
+}
+void XonoticTextSlider_configureXonoticTextSlider(entity me, string theCvar, string theTooltip)
 {
        me.configureSliderVisuals(me, me.fontSize, me.align, me.valueSpace, me.image);
-       if(theCvar)
-       {
-               me.cvarName = theCvar;
-               me.tooltip = getZonedTooltipForIdentifier(theCvar);
-               // don't load it yet
-       }
+       me.cvarName = (theCvar) ? theCvar : string_null;
+       // me.loadCvars(me); // don't load it yet
+       setZonedTooltip(me, theTooltip, theCvar);
 }
 void XonoticTextSlider_setValue(entity me, float val)
 {
@@ -53,6 +26,14 @@ void XonoticTextSlider_setValue(entity me, float val)
                me.saveCvars(me);
        }
 }
+void XonoticTextSlider_setValue_noAnim(entity me, float val)
+{
+       if(val != me.value)
+       {
+               SUPER(XonoticTextSlider).setValue_noAnim(me, val);
+               me.saveCvars(me);
+       }
+}
 void XonoticTextSlider_loadCvars(entity me)
 {
        if (!me.cvarName)
@@ -63,7 +44,7 @@ void XonoticTextSlider_loadCvars(entity me)
        float i;
        for(i = 1; i < n; ++i)
                s = strcat(s, " ", cvar_string(argv(i)));
-       me.setValueFromIdentifier(me, s);
+       me.setValueFromIdentifier_noAnim(me, s);
        if(me.value < 0 && n > 1)
        {
                // if it failed: check if all cvars have the same value
@@ -72,7 +53,7 @@ void XonoticTextSlider_loadCvars(entity me)
                        if(cvar_string(argv(i)) != cvar_string(argv(i-1)))
                                break;
                if(i >= n)
-                       me.setValueFromIdentifier(me, cvar_string(argv(0)));
+                       me.setValueFromIdentifier_noAnim(me, cvar_string(argv(0)));
        }
 }
 void XonoticTextSlider_saveCvars(entity me)
@@ -119,4 +100,3 @@ void XonoticTextSlider_configureXonoticTextSliderValues(entity me)
        me.configureTextSliderValues(me, string_null);
        me.loadCvars(me);
 }
-#endif