]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/colorpicker_string.qc
Merge branch 'master' into develop
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / colorpicker_string.qc
index 6a126dc9fd4dd1a58e874d6d4c436275599c3524..7dd4b5698a547cadd5b8c984d63639b28ca721fd 100644 (file)
@@ -1,25 +1,7 @@
-#ifndef COLORPICKER_STRING_H
-#define COLORPICKER_STRING_H
-#include "../item/image.qc"
-CLASS(XonoticColorpickerString, Image)
-       METHOD(XonoticColorpickerString, configureXonoticColorpickerString, void(entity, string, string));
-       METHOD(XonoticColorpickerString, mousePress, float(entity, vector));
-       METHOD(XonoticColorpickerString, mouseRelease, float(entity, vector));
-       METHOD(XonoticColorpickerString, mouseDrag, float(entity, vector));
-       ATTRIB(XonoticColorpickerString, cvarName, string, string_null)
-       METHOD(XonoticColorpickerString, loadCvars, void(entity));
-       METHOD(XonoticColorpickerString, saveCvars, void(entity));
-       ATTRIB(XonoticColorpickerString, prevcoords, vector, '0 0 0')
-       ATTRIB(XonoticColorpickerString, image, string, SKINGFX_COLORPICKER)
-       ATTRIB(XonoticColorpickerString, imagemargin, vector, SKINMARGIN_COLORPICKER)
-       ATTRIB(XonoticColorpickerString, focusable, float, 1)
-       METHOD(XonoticColorpickerString, draw, void(entity));
-       ATTRIB(XonoticColorpickerString, disabledAlpha, float, 0.3)
-ENDCLASS(XonoticColorpickerString)
-entity makeXonoticColorpickerString(string theCvar, string theDefaultCvar);
-#endif
-
-#ifdef IMPLEMENTATION
+#include "colorpicker_string.qh"
+
+.bool disabled;
+
 entity makeXonoticColorpickerString(string theCvar, string theDefaultCvar)
 {
        entity me;
@@ -30,53 +12,48 @@ entity makeXonoticColorpickerString(string theCvar, string theDefaultCvar)
 
 void XonoticColorpickerString_configureXonoticColorpickerString(entity me, string theCvar, string theDefaultCvar)
 {
-       me.cvarName = theCvar;
        me.configureImage(me, me.image);
-       if(theCvar)
-       {
-               me.cvarName = theCvar;
-               me.tooltip = getZonedTooltipForIdentifier(theCvar);
-               me.loadCvars(me);
-       }
+       me.controlledCvar = (theCvar) ? theCvar : string_null;
+       me.loadCvars(me);
 }
 
 void XonoticColorpickerString_loadCvars(entity me)
 {
-       if (!me.cvarName)
+       if (!me.controlledCvar)
                return;
 
-       if(substring(me.cvarName, -1, 1) == "_")
+       if(substring(me.controlledCvar, -1, 1) == "_")
        {
                me.prevcoords = color_hslimage(
-                       eX * cvar(strcat(me.cvarName, "red")) +
-                       eY * cvar(strcat(me.cvarName, "green")) +
-                       eZ * cvar(strcat(me.cvarName, "blue")),
+                       eX * cvar(strcat(me.controlledCvar, "red")) +
+                       eY * cvar(strcat(me.controlledCvar, "green")) +
+                       eZ * cvar(strcat(me.controlledCvar, "blue")),
                        me.imagemargin);
        }
        else
-               me.prevcoords = color_hslimage(stov(cvar_string(me.cvarName)), me.imagemargin);
+               me.prevcoords = color_hslimage(stov(cvar_string(me.controlledCvar)), me.imagemargin);
 }
 
 void XonoticColorpickerString_saveCvars(entity me)
 {
-       if (!me.cvarName)
+       if (!me.controlledCvar)
                return;
 
-       if(substring(me.cvarName, -1, 1) == "_")
+       if(substring(me.controlledCvar, -1, 1) == "_")
        {
                vector v = hslimage_color(me.prevcoords, me.imagemargin);
-               cvar_set(strcat(me.cvarName, "red"), ftos(v.x));
-               cvar_set(strcat(me.cvarName, "green"), ftos(v.y));
-               cvar_set(strcat(me.cvarName, "blue"), ftos(v.z));
+               cvar_set(strcat(me.controlledCvar, "red"), ftos(v.x));
+               cvar_set(strcat(me.controlledCvar, "green"), ftos(v.y));
+               cvar_set(strcat(me.controlledCvar, "blue"), ftos(v.z));
        }
        else
-               cvar_set(me.cvarName, sprintf("%v", hslimage_color(me.prevcoords, me.imagemargin)));
+               cvar_set(me.controlledCvar, sprintf("%v", hslimage_color(me.prevcoords, me.imagemargin)));
 }
 
-float XonoticColorpickerString_mousePress(entity me, vector coords)
+METHOD(XonoticColorpickerString, mousePress, bool(XonoticColorpickerString this, vector pos))
 {
-       me.mouseDrag(me, coords);
-       return 1;
+       this.mouseDrag(this, pos);
+       return true;
 }
 
 float XonoticColorpickerString_mouseDrag(entity me, vector coords)
@@ -122,4 +99,3 @@ void XonoticColorpickerString_draw(entity me)
 
        draw_alpha = save;
 }
-#endif