New gui object concept 1

This should be a more class based approach with less linking between
shapes and widgets