#pragma once

#include "../item/inputbox.qh"
CLASS(XonoticInputBox, InputBox)
	METHOD(XonoticInputBox, configureXonoticInputBox, void(entity, float, string, string));
	METHOD(XonoticInputBox, focusLeave, void(entity));
	METHOD(XonoticInputBox, setText, void(entity, string));
	METHOD(XonoticInputBox, keyDown, float(entity, float, float, float));
	ATTRIB(XonoticInputBox, fontSize, float, SKINFONTSIZE_NORMAL);
	ATTRIB(XonoticInputBox, image, string, SKINGFX_INPUTBOX);
	ATTRIB(XonoticInputBox, onChange, void(entity, entity));
	ATTRIB(XonoticInputBox, onChangeEntity, entity);
	ATTRIB(XonoticInputBox, onEnter, void(entity, entity));
	ATTRIB(XonoticInputBox, onEnterEntity, entity);
	ATTRIB(XonoticInputBox, marginLeft, float, SKINMARGIN_INPUTBOX_CHARS);
	ATTRIB(XonoticInputBox, marginRight, float, SKINMARGIN_INPUTBOX_CHARS);
	ATTRIB(XonoticInputBox, color, vector, SKINCOLOR_INPUTBOX_N);
	ATTRIB(XonoticInputBox, colorF, vector, SKINCOLOR_INPUTBOX_F);

	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, controlledCvar, string);
	METHOD(XonoticInputBox, loadCvars, void(entity));
	METHOD(XonoticInputBox, saveCvars, void(entity));
	ATTRIB(XonoticInputBox, sendCvars, float, 0);

	ATTRIB(XonoticInputBox, saveImmediately, bool, false);
ENDCLASS(XonoticInputBox)
entity makeXonoticInputBox_T(bool, string, string theTooltip);
entity makeXonoticInputBox(bool, string);
