Control
Class methods
Instance methods
For each bindable function, aka action, if that action exists in the keymap, associate the keymap's key with that action for this specific control.
called when this control becomes the active control. It will start receiving keystrokes after this point.
if this control can take keyboard input Only frames, screens, and non-interactive elements should return false.
by default, key assumes any key press will cause the control to change state. If you e.g. are at the top of a list, and attempt a prev_item action, the code for prev_action must explicitly set @dirty to false to prevent extraneous repaints. This is purposefully done for developer productivity.
will verify that none of the four corners of new child overlap with an existing child, and that no existing child overlaps any of it's 4 corners with new child.
Macros
writing action def name... creates an action that can be bound to a key we have this macro include itself again below so that the action gets copy-and-pasted to each subclass. because class vars aren't singletons, subclassing a control removes all action bindings from the subclassed control by default. This undo's that removal.