[2 Sep 2003]
The Tile Widget is an experiment in refactoring Tk's widget
internals. The main goal is to generate ideas for how to build
the next generation of Tk, when the asteroid strikes and we prepare
for the 9.0 release. Subsidiary goals are to make widgets simpler,
more flexible, and more robust.
~ Current features:
There's not much of interest here yet for end-users.
But if you're interested in Tk internals, you'll find:
+ A working example of how to use (a hacked version of)
the TIP #48 style engine
+ A declarative layout engine based on the above, which
can greatly simplify internal geometry calculations
+ A declarative scheme for dynamic resources (e.g.,
-background and -highlightcolor) that change according
to the widget's state
That said, there's not much in the way of comments yet and
absolutely no documentation. You might want to check back later.
+ Implement buttons, checkbuttons, etc., on top of the Tile
widget framework (challenge: basic sanity test to make
sure the framework is actually useful for more than just
+ Add an "image" element (challenge: excruciatingly
hairy resource management issues, esp. when combined
with dynamic resources).
(Status 12 Sep 2003: resource management has already
proven to be excruciatingly hairy even without images.
More ideas are needed here.)
+ Implement an alternate look for buttons, checkbuttons, etc.
(challenge: sanity test to see how well the infrastructure
really supports pluggable look-and-feel)
+ [New issue, 12 Sep 2003]: Develop a script-level interface
for customizing styles. The style engine, layout engine,
and dynamic resources provide a great deal of flexibility;
it needs to be exposed to Tcl users.
+ Integrate Georgios Petasis' patch for Windows XP themed buttons,
(challenge: truly native look and feel on non-Unix platforms)
+ Implement scrollbars and sliders (challenge: widgets with moving parts)
+ Implement a Notebook widget (challenge: cope with a variable number
of styled elements)
+ Work out a transition scheme to lessen user-visible changes
from Tk 8.* (challenge: give the new implementation a
snowball's chance in hell of being accepted into the core)
Snapshots are available in:
<URL: http://www.flightlab.com/~joe/downloads >
Look for tile-0.1-YYYY-MM-DD.tar.gz.