2 CLASS(XonoticColorpickerString) EXTENDS(Image)
3 METHOD(XonoticColorpickerString, configureXonoticColorpickerString, void(entity, 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 ATTRIB(XonoticColorpickerString, prevcoords, vector, '0 0 0')
9 ATTRIB(XonoticColorpickerString, image, string, SKINGFX_COLORPICKER)
10 ATTRIB(XonoticColorpickerString, imagemargin, vector, SKINMARGIN_COLORPICKER)
11 ATTRIB(XonoticColorpickerString, focusable, float, 1)
12 METHOD(XonoticColorpickerString, draw, void(entity))
13 ATTRIB(XonoticColorpickerString, disabledAlpha, float, 0.3)
14 ENDCLASS(XonoticColorpickerString)
15 entity makeXonoticColorpickerString(string theCvar);
19 entity makeXonoticColorpickerString(string theCvar)
22 me = spawnXonoticColorpickerString();
23 me.configureXonoticColorpickerString(me, theCvar);
27 void XonoticColorpickerString_configureXonoticColorpickerString(entity me, string theCvar)
29 me.cvarName = theCvar;
30 me.configureImage(me, me.image);
31 me.prevcoords = '1 1 0';
34 float XonoticColorpickerString_mousePress(entity me, vector coords)
36 me.mouseDrag(me, coords);
40 float XonoticColorpickerString_mouseDrag(entity me, vector coords)
45 margin = me.imagemargin;
46 if(coords_x >= margin_x)
47 if(coords_y >= margin_y)
48 if(coords_x <= 1 - margin_x)
49 if(coords_y <= 1 - margin_y)
51 cvar_set(me.cvarName, sprintf("%v", hslimage_color(coords, margin)));
52 me.prevcoords = coords;
58 float XonoticColorpickerString_mouseRelease(entity me, vector coords)
60 me.mouseDrag(me, coords);
64 void XonoticColorpickerString_draw(entity me)
69 draw_alpha *= me.disabledAlpha;
71 SUPER(XonoticColorpickerString).draw(me);
74 sz = draw_PictureSize(strcat(me.src, "_selected"));
75 sz = globalToBoxSize(sz, draw_scale);
78 me.prevcoords = '1 1 0';
80 draw_Picture(me.imgOrigin + me.prevcoords - 0.5 * sz, strcat(me.src, "_selected"), sz, '1 1 1', 1);