#pragma once
+
+#include "listbox.qh"
+CLASS(XonoticSkinList, XonoticListBox)
+ METHOD(XonoticSkinList, configureXonoticSkinList, void(entity));
+ ATTRIB(XonoticSkinList, rowsPerItem, float, 4)
+ METHOD(XonoticSkinList, resizeNotify, void(entity, vector, vector, vector, vector));
+ METHOD(XonoticSkinList, drawListBoxItem, void(entity, int, vector, bool, bool));
+ METHOD(XonoticSkinList, getSkins, void(entity));
+ METHOD(XonoticSkinList, setSkin, void(entity));
+ METHOD(XonoticSkinList, loadCvars, void(entity));
+ METHOD(XonoticSkinList, saveCvars, void(entity));
+ METHOD(XonoticSkinList, skinParameter, string(entity, float, float));
+ METHOD(XonoticSkinList, doubleClickListBoxItem, void(entity, float, vector));
+ METHOD(XonoticSkinList, keyDown, float(entity, float, float, float));
+ METHOD(XonoticSkinList, destroy, void(entity));
+
+ ATTRIB(XonoticSkinList, skinlist, float, -1)
+ ATTRIB(XonoticSkinList, realFontSize, vector, '0 0 0')
+ ATTRIB(XonoticSkinList, columnPreviewOrigin, float, 0)
+ ATTRIB(XonoticSkinList, columnPreviewSize, float, 0)
+ ATTRIB(XonoticSkinList, columnNameOrigin, float, 0)
+ ATTRIB(XonoticSkinList, columnNameSize, float, 0)
+ ATTRIB(XonoticSkinList, realUpperMargin1, float, 0)
+ ATTRIB(XonoticSkinList, realUpperMargin2, float, 0)
+ ATTRIB(XonoticSkinList, origin, vector, '0 0 0')
+ ATTRIB(XonoticSkinList, itemAbsSize, vector, '0 0 0')
+
+ ATTRIB(XonoticSkinList, name, string, "skinselector")
+ENDCLASS(XonoticSkinList)
+
+entity makeXonoticSkinList();
+void SetSkin_Click(entity btn, entity me);