Basic Concepts - Gadgets
Gadgets are the basic component of Woopsi. All UI components inherit from the Gadget class - from windows and screens to borders and buttons, everything is a gadget.
This approach gives Woopsi a consistent API - all UI components can handle the same set of events, and everything offers the same basic set of functionality. Obviously, as each gadget has been specialised for a particular job, they each add extra functionality on top of the basics, but the homogenous architecture should reduce the learning curve.