Pre-requisites ============== Debian ------ Warning: mywidgets.py is known not to work on Debian systems. A fix is in progress. apt-get install python-imaging python-tk python-imaging-tk Gentoo ------ USE="tcltk" emerge -vp python imaging ...? Fedora Core 3 ------------- yum install tkinter python-imaging To /etc/yum.conf, add (to get python-imaging): [extras] name=Fedora Core $releasever - $basearch - Extras gpgkey=http://download.fedora.redhat.com/pub/fedora/linux/extras/RPM-GPG-KEY-Fedora-Extras baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/$basearch/ #...or... #baseurl=http://fedoraproject.org/extras/$releasever/$basearch/ Explained in: http://download.fedora.redhat.com/pub/fedora/linux/extras/EXTRAS Design goals ============ - Use of Design Patterns - Simplicity The code constructing the GUI should look similarly to the GUI itself (think HTML). Anything that can be observed should be based on a simple Observer pattern, for example: mouse overs, drag-n-drop notifications, button clicks, text edit box modifications, etc.. - Run-time reconfiguration The GUI is not static. It can completely modified at runtime. To do ===== When set_master() on Tk widgets needs to move from one master to anoter... Add clone methods to widgets... this might be tricky: will the observers appreciate this? The observer will need to be informed of the newly cloned subject... No: do a lighter weight internal-only closing. Delete the implementing Tk widgets and recreate them. Don't clone the whole Widget itself. Observing enhancements Implement something closer to Apple's KVO (key-value-observing) Can we also get something like the DOM's event API? http://www.w3.org/TR/DOM-Level-2-Events/events.html More style control Allow setting widths, heights, and alignments of widgets. Can we implement the box model? (a CSS or DocBook concept?) Figure out how this compares to... ...Gecko ...Cocoa/OpenStep/GNUstep Make better examples... Make Tk stop sucking...