IDE has a GUI builder
built in for building Tk GUI
s. It is itself written in Tcl/Tk
(based off SpecTcl
, although most of that code went out with the trash folder long ago ...). Previously Komodo
has shipped on Windows
. We are currently porting it to OS X, GUI Builder included. This page shows a before and after, with some comments.
GUI Builder Before edit
This used all the classic Tk controls, with some megawidgets from BWidget
and some custom-rolled stuff. For all intents and purposes, this worked fine on Windows and unix variants. It isn't so happy for Aqua, as you can see ...
GUI Builder After edit
OK, this isn't "complete", but works for alpha look and feel satisfaction.
OK, I should comment on the many changes I had to make. First off though, a significant chunk of time spent was just transitioning to tile
and themed widgets. This work will eventually be used across all platforms. The next part was working with various issues in the themed widgets, where it wasn't appropriate, they didn't quite work right (eg, scrollbar), or an appropriate widget wasn't available (eg, having to use menubuttons instead of spinboxes, which is actually more correct
from a Aqua HIG pov).
Mind you, I am aware that the Aqua HIG would entail much more rewriting, but this was an attempt to port what existed. There will have to be more done later. I just wanted to ensure that it worked, and didn't look like total crap.
For those wanting to repro the above changed for their own apps, using tile
being a more appropriate verb) is the first task. I also am currently using a modified Tk for things like themed toplevels. See some other points on this at Aqua toplevels
Maybe one day I'll find time to annotate those pictures, but there are over a dozen significant changes worth commenting on (which I'll get to eventually). In any case, you will still find several visual oddities in the "native" version, which I am aware of. For the most part, they are either bugs (scrollbars just have issues ...) or widget elements that require more elaborate efforts to port.