X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Finputbox.c;h=5d7d179995028719bc107d1158edcd91678bc1e8;hb=a6a3b0cebd6928e3678ee4e97de4093f1b61c58b;hp=e457414b4a4ed411b422a7c0404925cab92c7603;hpb=6701ba40024db6ca89585abfc9f091bada9c7992;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/inputbox.c b/qcsrc/menu/xonotic/inputbox.c index e457414b4..5d7d17999 100644 --- a/qcsrc/menu/xonotic/inputbox.c +++ b/qcsrc/menu/xonotic/inputbox.c @@ -5,9 +5,9 @@ CLASS(XonoticInputBox) EXTENDS(InputBox) METHOD(XonoticInputBox, setText, void(entity, string)) ATTRIB(XonoticInputBox, fontSize, float, SKINFONTSIZE_NORMAL) ATTRIB(XonoticInputBox, image, string, SKINGFX_INPUTBOX) - ATTRIB(XonoticInputBox, onChange, void(entity, entity), SUB_Null) + ATTRIB(XonoticInputBox, onChange, void(entity, entity), func_null) ATTRIB(XonoticInputBox, onChangeEntity, entity, NULL) - ATTRIB(XonoticInputBox, onEnter, void(entity, entity), SUB_Null) + ATTRIB(XonoticInputBox, onEnter, void(entity, entity), func_null) ATTRIB(XonoticInputBox, onEnterEntity, entity, NULL) ATTRIB(XonoticInputBox, marginLeft, float, SKINMARGIN_INPUTBOX_CHARS) ATTRIB(XonoticInputBox, marginRight, float, SKINMARGIN_INPUTBOX_CHARS) @@ -16,10 +16,20 @@ CLASS(XonoticInputBox) EXTENDS(InputBox) ATTRIB(XonoticInputBox, alpha, float, SKINALPHA_TEXT) + // Clear button attributes + ATTRIB(XonoticInputBox, cb_offset, float, SKINOFFSET_CLEARBUTTON) // bound to range -1, 0 + ATTRIB(XonoticInputBox, cb_src, string, SKINGFX_CLEARBUTTON) + ATTRIB(XonoticInputBox, cb_color, vector, SKINCOLOR_CLEARBUTTON_N) + ATTRIB(XonoticInputBox, cb_colorF, vector, SKINCOLOR_CLEARBUTTON_F) + ATTRIB(XonoticInputBox, cb_colorC, vector, SKINCOLOR_CLEARBUTTON_C) + ATTRIB(XonoticInputBox, cvarName, string, string_null) METHOD(XonoticInputBox, loadCvars, void(entity)) METHOD(XonoticInputBox, saveCvars, void(entity)) + ATTRIB(XonoticInputBox, sendCvars, float, 0) METHOD(XonoticInputBox, keyDown, float(entity, float, float, float)) + + ATTRIB(XonoticInputBox, saveImmediately, float, 0) ENDCLASS(XonoticInputBox) entity makeXonoticInputBox(float, string); #endif @@ -53,22 +63,26 @@ void XonoticInputBox_setText(entity me, string new) if(me.text != new) { SUPER(XonoticInputBox).setText(me, new); - me.onChange(me, me.onChangeEntity); + if(me.onChange) + me.onChange(me, me.onChangeEntity); + if(me.saveImmediately) + me.saveCvars(me); } else SUPER(XonoticInputBox).setText(me, new); } void XonoticInputBox_loadCvars(entity me) { - if not(me.cvarName) + if (!me.cvarName) return; SUPER(XonoticInputBox).setText(me, cvar_string(me.cvarName)); } void XonoticInputBox_saveCvars(entity me) { - if not(me.cvarName) + if (!me.cvarName) return; cvar_set(me.cvarName, me.text); + CheckSendCvars(me, me.cvarName); } float XonoticInputBox_keyDown(entity me, float key, float ascii, float shift) { @@ -81,7 +95,8 @@ float XonoticInputBox_keyDown(entity me, float key, float ascii, float shift) me.saveCvars(me); r = 1; } - me.onEnter(me, me.onEnterEntity); + if(me.onEnter) + me.onEnter(me, me.onEnterEntity); } if(SUPER(XonoticInputBox).keyDown(me, key, ascii, shift)) r = 1;