Redesign event system a little.
Add 'order' parameter to Widget::for_each_child().
Button widget kinda works.