X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Fcolorpicker_string.c;h=f57c768a5fcb3d80ce4da5bc16d65845fcb5164a;hb=63616e9884bee2592d61b70d313b8f269278fe23;hp=f56cc74661bbb6ab75c677d66b9d2e7e80467446;hpb=23f193f7d4f447db3cda320f704006adca177780;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/colorpicker_string.c b/qcsrc/menu/xonotic/colorpicker_string.c index f56cc7466..f57c768a5 100644 --- a/qcsrc/menu/xonotic/colorpicker_string.c +++ b/qcsrc/menu/xonotic/colorpicker_string.c @@ -1,6 +1,6 @@ #ifdef INTERFACE CLASS(XonoticColorpickerString) EXTENDS(Image) - METHOD(XonoticColorpickerString, configureXonoticColorpickerString, void(entity, string)) + 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)) @@ -12,23 +12,26 @@ CLASS(XonoticColorpickerString) EXTENDS(Image) METHOD(XonoticColorpickerString, draw, void(entity)) ATTRIB(XonoticColorpickerString, disabledAlpha, float, 0.3) ENDCLASS(XonoticColorpickerString) -entity makeXonoticColorpickerString(string theCvar); +entity makeXonoticColorpickerString(string theCvar, string theDefaultCvar); #endif #ifdef IMPLEMENTATION -entity makeXonoticColorpickerString(string theCvar) +entity makeXonoticColorpickerString(string theCvar, string theDefaultCvar) { entity me; me = spawnXonoticColorpickerString(); - me.configureXonoticColorpickerString(me, theCvar); + me.configureXonoticColorpickerString(me, theCvar, theDefaultCvar); return me; } -void XonoticColorpickerString_configureXonoticColorpickerString(entity me, string theCvar) +void XonoticColorpickerString_configureXonoticColorpickerString(entity me, string theCvar, string theDefaultCvar) { me.cvarName = theCvar; me.configureImage(me, me.image); - me.prevcoords = '1 1 0'; + if(cvar_string(theCvar) != "") + me.prevcoords = color_hslimage(stov(cvar_string(theCvar)), me.imagemargin); + else // use default + me.prevcoords = color_hslimage(stov(cvar_string(theDefaultCvar)), me.imagemargin); } float XonoticColorpickerString_mousePress(entity me, vector coords) @@ -48,7 +51,6 @@ float XonoticColorpickerString_mouseDrag(entity me, vector coords) if(coords_x <= 1 - margin_x) if(coords_y <= 1 - margin_y) { - cvar_set(me.cvarName, sprintf("%v", hslimage_color(coords, margin))); me.prevcoords = coords; } @@ -70,10 +72,15 @@ void XonoticColorpickerString_draw(entity me) SUPER(XonoticColorpickerString).draw(me); - if(me.disabled) - me.prevcoords = '1 1 0'; - else - draw_Picture(me.imgOrigin + me.prevcoords - '0.05 0.125 0', strcat(me.src, "_selected"), '0.1 0.25 0', '1 1 1', 1); + vector sz; + sz = draw_PictureSize(strcat(me.src, "_selected")); + sz = globalToBoxSize(sz, draw_scale); + + if(!me.disabled) + { + cvar_set(me.cvarName, sprintf("%v", hslimage_color(me.prevcoords, me.imagemargin))); + draw_Picture(me.imgOrigin + me.prevcoords - 0.5 * sz, strcat(me.src, "_selected"), sz, '1 1 1', 1); + } draw_alpha = save; } #endif