#pragma once
+
+// convenience
+#include "skin.qh"
+#include "draw.qh"
+#include "menu.qh"
+
+CLASS(Item, Object)
+ METHOD(Item, draw, void(Item));
+ METHOD(Item, keyDown, float(Item, float, float, float));
+ METHOD(Item, keyUp, float(Item, float, float, float));
+ METHOD(Item, mouseMove, float(Item, vector));
+ METHOD(Item, mousePress, bool(Item this, vector pos));
+ METHOD(Item, mouseDrag, float(Item, vector));
+ METHOD(Item, mouseRelease, float(Item, vector));
+ METHOD(Item, focusEnter, void(Item));
+ METHOD(Item, focusLeave, void(Item));
+ METHOD(Item, resizeNotify, void(Item, vector, vector, vector, vector));
+ METHOD(Item, relinquishFocus, void(Item));
+ METHOD(Item, showNotify, void(Item));
+ METHOD(Item, hideNotify, void(Item));
+ METHOD(Item, toString, string(Item));
+ METHOD(Item, destroy, void(Item));
+ ATTRIB(Item, focused, float, 0);
+ ATTRIB(Item, focusable, float, 0);
+ ATTRIB(Item, allowFocusSound, float, 0);
+ ATTRIB(Item, parent, entity);
+ ATTRIB(Item, preferredFocusPriority, float, 0);
+ ATTRIB(Item, origin, vector, '0 0 0');
+ ATTRIB(Item, size, vector, '0 0 0');
+ ATTRIB(Item, tooltip, string);
+ENDCLASS(Item)