More work on GUI framework. Still very WIP.

Signed-off-by: Chris Sanders <zidane@outlook.com>