Skinning
Theme
contains all information requires to change entire visual styling of all controls
Any control can accept a theme
- all offspring will inherit the same theme
- if value not in theme, will search up to root to find (will use default if not found)
Theme Options Types:
- integer constant: spacing, alignment, etc
- Color: single color (fonts, icons)
- Texture: single image (handles, icons)
- Font: used to draw text
- StyleBob: defines how to draw a panel in varying sizes
Each option is associated with a name of the option and the name of the Control
Custom Controls
use the _draw() method to implement custom drawing
- can check .rect_size to ensure everything remains in bounds
- can check has_focus() to see if control is in focus
- minimum size: allows a control to have an intrinsic smallest size