
[2 Sep 2003]

~ About:

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.


~ Roadmap: 

    + 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
      a Tile.)

      (Status 12 Sep 2003:  Not completely done yet, but far enough along 
      that I'm pretty sure the style engine is viable).

    + 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)

      (Status 12 Sep 2003: A half-baked "alternate" style implemented.
      Only real problem so far is that tuning widget defaults
      for the default "classic" style makes things look like ass
      in the "alternate" style, and vice versa.  See next issue.)

    + [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)

      (Status 12 Sep 2003: Stay tuned...)

    + Implement scrollbars and sliders (challenge: widgets with moving parts)

    + Implement a Notebook widget (challenge: cope with a variable number
      of styled elements)

      (Status, 12 Sep 2003: Current layout engine won't handle this,
      but I've got a good idea how to adapt it to make it work.)

    + 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)

      (Status, 12 Sep 2003: I've got a pretty good idea how to do this now.
      I have no idea if the TCT will think it's worth doing.)


~ Availability

Snapshots are available in:

    <URL: http://www.flightlab.com/~joe/downloads >

Look for tile-0.1-YYYY-MM-DD.tar.gz.


