GTK

Some improvements to gtk binding - primarly new widgets
The abstract ui layer is not part of this request.