ref: 1d84452255fa2d3c41ac2596f39d61d7e3b27b12
dir: /CONVENTIONS/
• widgets that encapsulate other widgets: - take ownership (responsible for freeing, etc) - are responsible for ensuring their subwidgets don't stomp all over the screen • widgets should make sure global state is consistent with how it was when their functions were invoked (i.e. if you touch screen->clipr, restore it before returning, etc) • Widget->draw returns size of widget • event handling functions return 1 for when they (or one of their children) handled the event and 0 when they didn't