X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Fcolorpicker.qc;h=d8aedf69512a7349910fb0a0c6ba06e0009b6059;hb=ebec51e2a451b28980fcd246eb002b6d0c6bae8a;hp=c74fcf9f4ce15f655c85181c595a3ece38553e11;hpb=50db7ae6bd2b87d7d7d06792985ec5219a8a5969;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/colorpicker.qc b/qcsrc/menu/xonotic/colorpicker.qc index c74fcf9f4..d8aedf695 100644 --- a/qcsrc/menu/xonotic/colorpicker.qc +++ b/qcsrc/menu/xonotic/colorpicker.qc @@ -1,22 +1,7 @@ -#ifndef COLORPICKER_H -#define COLORPICKER_H -CLASS(XonoticColorpicker, Image) - METHOD(XonoticColorpicker, configureXonoticColorpicker, void(entity, entity)) - METHOD(XonoticColorpicker, mousePress, float(entity, vector)) - METHOD(XonoticColorpicker, mouseRelease, float(entity, vector)) - METHOD(XonoticColorpicker, mouseDrag, float(entity, vector)) - ATTRIB(XonoticColorpicker, controlledTextbox, entity, NULL) - ATTRIB(XonoticColorpicker, image, string, SKINGFX_COLORPICKER) - ATTRIB(XonoticColorpicker, imagemargin, vector, SKINMARGIN_COLORPICKER) - ATTRIB(XonoticColorpicker, focusable, float, 1) - METHOD(XonoticColorpicker, focusLeave, void(entity)) - METHOD(XonoticColorpicker, keyDown, float(entity, float, float, float)) - METHOD(XonoticColorpicker, draw, void(entity)) -ENDCLASS(XonoticColorpicker) -entity makeXonoticColorpicker(entity theTextbox); -#endif - -#ifdef IMPLEMENTATION +#include "colorpicker.qh" + +#include "inputbox.qh" + entity makeXonoticColorpicker(entity theTextbox) { entity me; @@ -31,10 +16,10 @@ void XonoticColorpicker_configureXonoticColorpicker(entity me, entity theTextbox me.configureImage(me, me.image); } -float XonoticColorpicker_mousePress(entity me, vector coords) +METHOD(XonoticColorpicker, mousePress, bool(XonoticColorpicker this, vector pos)) { - me.mouseDrag(me, coords); - return 1; + this.mouseDrag(this, pos); + return true; } // must match hslimage.c @@ -85,7 +70,7 @@ float XonoticColorpicker_mouseDrag(entity me, vector coords) while (i - 2 - carets >= 0 && substring(me.controlledTextbox.text, i - 2 - carets, 1) == "^") ++carets; if (carets & 1) - if(strstrofs("0123456789", substring(me.controlledTextbox.text, i-1, 1), 0) >= 0) + if(IS_DIGIT(substring(me.controlledTextbox.text, i-1, 1))) { me.controlledTextbox.keyDown(me.controlledTextbox, K_BACKSPACE, 8, 0); me.controlledTextbox.keyDown(me.controlledTextbox, K_BACKSPACE, 8, 0); @@ -102,9 +87,9 @@ float XonoticColorpicker_mouseDrag(entity me, vector coords) while (i - 5 - carets >= 0 && substring(me.controlledTextbox.text, i - 5 - carets, 1) == "^") ++carets; if (carets & 1) - if(strstrofs("0123456789abcdefABCDEF", substring(me.controlledTextbox.text, i-3, 1), 0) >= 0) - if(strstrofs("0123456789abcdefABCDEF", substring(me.controlledTextbox.text, i-2, 1), 0) >= 0) - if(strstrofs("0123456789abcdefABCDEF", substring(me.controlledTextbox.text, i-1, 1), 0) >= 0) + if(IS_HEXDIGIT(substring(me.controlledTextbox.text, i - 3, 1))) + if(IS_HEXDIGIT(substring(me.controlledTextbox.text, i - 2, 1))) + if(IS_HEXDIGIT(substring(me.controlledTextbox.text, i - 1, 1))) { me.controlledTextbox.keyDown(me.controlledTextbox, K_BACKSPACE, 8, 0); me.controlledTextbox.keyDown(me.controlledTextbox, K_BACKSPACE, 8, 0); @@ -173,4 +158,3 @@ void XonoticColorpicker_draw(entity me) draw_Picture(me.imgOrigin, strcat(me.src, "_m"), me.imgSize, '0 0 0', aC); draw_Picture(me.imgOrigin, strcat(me.src, "_m"), me.imgSize, me.color, B); } -#endif