========================
The Tkinter 3000 Project
========================

The Tkinter 3000 Widget Construction Kit (WCK) allows you to write new
Tkinter widgets in Python.

This is release 1.0 final of the WCK implementation for Tkinter.

For more information, documentation, articles and sample code, see:

    http://tkinter.effbot.org
    http://www.effbot.org/wck
    http://www.pythonware.com/products/tkinter

Enjoy /F

fredrik@pythonware.com
http://www.pythonware.com

--------------------------------------------------------------------
Contents

README               this file

WCK/*.py             WCK package, including Tkinter driver

tk3/*.py             compatibility interface.  new code should
		     import "WCK" instead of "tk3".

_tk3draw.c           source code for the Tk graphics driver

_tk3demo.c           a demo extension that contains a WCK widget
		     implemented in C (!)

setup.py             distutils build script for Tkinter 3000 WCK
setuplib.py          helpers for setup.py

demo*.py, bench*.py  assorted demo scripts and benchmarks

WCK.html             api documentation
WCK.css              stylesheet for WCK.html

--------------------------------------------------------------------
Release History

(1.0 final release)

+ added 'ui_path' dummy method, for compatibility with the WCK
  implementation used in effbot.exe 2.0.

(1.0c1 released)

+ added DrawInterface section to WCK.html

(1.0b5 released)

+ Added 'crop' method to pixmap objects.  This creates a reference
  to a subrectangle in a given pixmap; you can use this to copy a
  portion of a pixmap to the screen:

      dxy = (x, y) # destination offset
      sxy = (x0, y0, x1, y1) # source rectangle
      draw.paste(pixmap.crop(sxy), dxy)

+ Added 'settransform' method to draw and pixmap objects.  This
  release only supports translation, with the transform given as
  a (dx, dy) tuple.

      draw.settransform((dx, dy))
      draw.line(...)

  Note that settransform *replaces* the current transform; if you
  need to combine transformations, you have to merge them yourself.

(1.0b4 released)

2003-05-10: It's in beta, but I still cannot make up my mind about
naming: all the code is now moved to a "WCK" package.  The package
initialization code imports the right widget classes and all utility
classes, so instead of importing "wck" or "tk3", new code should
simply import "WCK", and use stuff from the "WCK" namespace.  The
"tk3" module (now a package) is still available as an alias.

2003-05-09: Added "wck" module (removed in the next release; see
above); moved Tkinter implementation to an internal "wckTkinter"
module.  The "tk3" module is simply an alias for "wck".  Changed
'ui_image' interface to accept PIL Image objects as well as Tkinter
PhotoImage objects.  Changed 'paste' method to take an optional
destination region instead of offset/size.  added unicode support to
the "text" and "textsize" methods.

2002-08-18: Added WCKSimple2DAPI hooks for implementing (parts of) a
WCK widget in C.  The demoC/tk3demo sample code shows how to use it.
for more info, see: http://effbot.org/zone/tkinter3000-wck-draw.htm

2002-08-14: First public beta, after a considerable time as an
internal beta.  The biggest change is the addition of pythondoc
markup.

2001-12-31: Third alpha; use smarter Tcl/Tk library search for Windows

2001-12-29: Second alpha; distutils build script; experimental pixmap
support; etc.

2001-02-03: Alpha cleanup; improved uiToolkit compatibility; changed
'ui_init' behaviour; moved utility functions to tk3utils.py (this
module shouldn't be used by user code; all public utilities are
available from tk3's namespace).

2001-01-17: Fifth public preview release.

2001-01-11: Use style object to draw default background and border;
fixed rollback on bogus relief setting; added support for horizontal
scrolling; don't let 'ui_damage' generate multiple expose events if we
can prevent it; fixed paste offset

2001-01-10: On the way to first alpha: draw highlight region and
border relief

2001-01-09: Minor demo tweaks; experimental framework support for
double buffered rendering (ui_doublebuffer)

2001-01-08: Fourth preview release; new license; added scroll mixin;
changed mixin method names; simplified textmixin (no repair method);
added standard button controller class.

2001-01-07: Third preview release; experimental support for
double-buffered rendering (see rough version in demoLissajou.py)

2001-01-06: Second preview release; includes driver source code

2001-01-05: Support for controllers; more demo scripts

2001-01-04: Support for Python 2.0/Tk 8.3; cursor option

2001-01-03: Initial sneak preview

--------------------------------------------------------------------
License

The Tkinter 3000 Widget Construction Kit is

Copyright (c) 1998-2003 by Secret Labs AB
Copyright (c) 1998-2003 by Fredrik Lundh

By obtaining, using, and/or copying this software and/or its
associated documentation, you agree that you have read, understood,
and will comply with the following terms and conditions:

Permission to use, copy, modify, and distribute this software and its
associated documentation for any purpose and without fee is hereby
granted, provided that the above copyright notice appears in all
copies, and that both that copyright notice and this permission notice
appear in supporting documentation, and that the name of Secret Labs
AB or the author not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR
ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

--------------------------------------------------------------------
