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