It's time to dust off the GoMail application design again and adapt it for GTK+ widgets. As the andlabs UI application (when run on Linux) was using GTK+, it would seem logical to start from there. However, this time we are not limited by the lowest common denominator design constraint, which the native cross-platform design of andlabs worked around, so let's start from scratch and see what GTK+ can do.
Basic layout with GTK+-based applications uses a familiar vertical and horizontal box model. Go-GTK (as a straightforward binding to this API) exposes this same functionality. We lay out the GoMail main window using a vertical box to position the menu and toolbar above the main content. Our main content is then a horizontally split pane created with gtk.NewHPaned()
(where H refers to the horizontal layout, not the bar orientation, which is vertical). Before looking at the details, here's the basic layout code for the main window. The toolbar and menu creation code...