3 #include "../item/inputbox.qc"
4 CLASS(XonoticInputBox, InputBox)
5 METHOD(XonoticInputBox, configureXonoticInputBox, void(entity, float, string, string));
6 METHOD(XonoticInputBox, focusLeave, void(entity));
7 METHOD(XonoticInputBox, setText, void(entity, string));
8 METHOD(XonoticInputBox, keyDown, float(entity, float, float, float));
9 ATTRIB(XonoticInputBox, fontSize, float, SKINFONTSIZE_NORMAL)
10 ATTRIB(XonoticInputBox, image, string, SKINGFX_INPUTBOX)
11 ATTRIB(XonoticInputBox, onChange, void(entity, entity), func_null)
12 ATTRIB(XonoticInputBox, onChangeEntity, entity, NULL)
13 ATTRIB(XonoticInputBox, onEnter, void(entity, entity), func_null)
14 ATTRIB(XonoticInputBox, onEnterEntity, entity, NULL)
15 ATTRIB(XonoticInputBox, marginLeft, float, SKINMARGIN_INPUTBOX_CHARS)
16 ATTRIB(XonoticInputBox, marginRight, float, SKINMARGIN_INPUTBOX_CHARS)
17 ATTRIB(XonoticInputBox, color, vector, SKINCOLOR_INPUTBOX_N)
18 ATTRIB(XonoticInputBox, colorF, vector, SKINCOLOR_INPUTBOX_F)
20 ATTRIB(XonoticInputBox, alpha, float, SKINALPHA_TEXT)
22 // Clear button attributes
23 ATTRIB(XonoticInputBox, cb_offset, float, SKINOFFSET_CLEARBUTTON) // bound to range -1, 0
24 ATTRIB(XonoticInputBox, cb_src, string, SKINGFX_CLEARBUTTON)
25 ATTRIB(XonoticInputBox, cb_color, vector, SKINCOLOR_CLEARBUTTON_N)
26 ATTRIB(XonoticInputBox, cb_colorF, vector, SKINCOLOR_CLEARBUTTON_F)
27 ATTRIB(XonoticInputBox, cb_colorC, vector, SKINCOLOR_CLEARBUTTON_C)
29 ATTRIB(XonoticInputBox, cvarName, string, string_null)
30 METHOD(XonoticInputBox, loadCvars, void(entity));
31 METHOD(XonoticInputBox, saveCvars, void(entity));
32 ATTRIB(XonoticInputBox, sendCvars, float, 0)
34 ATTRIB(XonoticInputBox, saveImmediately, float, 0)
35 ENDCLASS(XonoticInputBox)
36 entity makeXonoticInputBox_T(float, string, string theTooltip);
37 entity makeXonoticInputBox(float, string);
41 entity makeXonoticInputBox_T(float doEditColorCodes, string theCvar, string theTooltip)
44 me = NEW(XonoticInputBox);
45 me.configureXonoticInputBox(me, doEditColorCodes, theCvar, theTooltip);
48 entity makeXonoticInputBox(float doEditColorCodes, string theCvar)
50 return makeXonoticInputBox_T(doEditColorCodes, theCvar, string_null);
52 void XonoticInputBox_configureXonoticInputBox(entity me, float doEditColorCodes, string theCvar, string theTooltip)
54 me.configureInputBox(me, "", 0, me.fontSize, me.image);
55 me.editColorCodes = doEditColorCodes;
56 me.cvarName = (theCvar) ? theCvar : string_null;
58 setZonedTooltip(me, theTooltip, theCvar);
59 me.cursorPos = strlen(me.text);
61 void XonoticInputBox_focusLeave(entity me)
65 void XonoticInputBox_setText(entity me, string val)
69 SUPER(XonoticInputBox).setText(me, val);
71 me.onChange(me, me.onChangeEntity);
72 if(me.saveImmediately)
76 SUPER(XonoticInputBox).setText(me, val);
78 void XonoticInputBox_loadCvars(entity me)
82 SUPER(XonoticInputBox).setText(me, cvar_string(me.cvarName));
84 void XonoticInputBox_saveCvars(entity me)
88 cvar_set(me.cvarName, me.text);
89 CheckSendCvars(me, me.cvarName);
91 float XonoticInputBox_keyDown(entity me, float key, float ascii, float shift)
95 if(key == K_ENTER || key == K_KP_ENTER)
103 me.onEnter(me, me.onEnterEntity);
105 if(SUPER(XonoticInputBox).keyDown(me, key, ascii, shift))