2 CLASS(XonoticColorpickerString) EXTENDS(Image)
3 METHOD(XonoticColorpickerString, configureXonoticColorpickerString, void(entity, string, string))
4 METHOD(XonoticColorpickerString, mousePress, float(entity, vector))
5 METHOD(XonoticColorpickerString, mouseRelease, float(entity, vector))
6 METHOD(XonoticColorpickerString, mouseDrag, float(entity, vector))
7 ATTRIB(XonoticColorpickerString, cvarName, string, string_null)
8 METHOD(XonoticColorPickerString, loadCvars, void(entity))
9 METHOD(XonoticColorPickerString, saveCvars, void(entity))
10 ATTRIB(XonoticColorpickerString, prevcoords, vector, '0 0 0')
11 ATTRIB(XonoticColorpickerString, image, string, SKINGFX_COLORPICKER)
12 ATTRIB(XonoticColorpickerString, imagemargin, vector, SKINMARGIN_COLORPICKER)
13 ATTRIB(XonoticColorpickerString, focusable, float, 1)
14 METHOD(XonoticColorpickerString, draw, void(entity))
15 ATTRIB(XonoticColorpickerString, disabledAlpha, float, 0.3)
16 ENDCLASS(XonoticColorpickerString)
17 entity makeXonoticColorpickerString(string theCvar, string theDefaultCvar);
21 entity makeXonoticColorpickerString(string theCvar, string theDefaultCvar)
24 me = spawnXonoticColorpickerString();
25 me.configureXonoticColorpickerString(me, theCvar, theDefaultCvar);
29 void XonoticColorpickerString_configureXonoticColorpickerString(entity me, string theCvar, string theDefaultCvar)
31 me.cvarName = theCvar;
32 me.configureImage(me, me.image);
35 me.cvarName = theCvar;
36 me.tooltip = getZonedTooltipForIdentifier(theCvar);
41 void XonoticColorPickerString_loadCvars(entity me)
46 if(substring(me.cvarName, -1, 1) == "_")
48 me.prevcoords = color_hslimage(
49 eX * cvar(strcat(me.cvarName, "red")) +
50 eY * cvar(strcat(me.cvarName, "green")) +
51 eZ * cvar(strcat(me.cvarName, "blue")),
55 me.prevcoords = color_hslimage(stov(cvar_string(me.cvarName)), me.imagemargin);
58 void XonoticColorPickerString_saveCvars(entity me)
63 if(substring(me.cvarName, -1, 1) == "_")
65 vector v = hslimage_color(me.prevcoords, me.imagemargin);
66 cvar_set(strcat(me.cvarName, "red"), ftos(v_x));
67 cvar_set(strcat(me.cvarName, "green"), ftos(v_y));
68 cvar_set(strcat(me.cvarName, "blue"), ftos(v_z));
71 cvar_set(me.cvarName, sprintf("%v", hslimage_color(me.prevcoords, me.imagemargin)));
74 float XonoticColorpickerString_mousePress(entity me, vector coords)
76 me.mouseDrag(me, coords);
80 float XonoticColorpickerString_mouseDrag(entity me, vector coords)
85 margin = me.imagemargin;
86 if(coords_x >= margin_x)
87 if(coords_y >= margin_y)
88 if(coords_x <= 1 - margin_x)
89 if(coords_y <= 1 - margin_y)
91 me.prevcoords = coords;
98 float XonoticColorpickerString_mouseRelease(entity me, vector coords)
100 me.mouseDrag(me, coords);
104 void XonoticColorpickerString_draw(entity me)
109 draw_alpha *= me.disabledAlpha;
111 SUPER(XonoticColorpickerString).draw(me);
114 sz = draw_PictureSize(strcat(me.src, "_selected"));
115 sz = globalToBoxSize(sz, draw_scale);
118 draw_Picture(me.imgOrigin + me.prevcoords - 0.5 * sz, strcat(me.src, "_selected"), sz, '1 1 1', 1);