The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Within each 'release' time advances down the file, but most recent
release is at the top.

Changes in Tk400.200

* Fixed typos in tkPort.h, accept perl5.002 and later, including
  conditional compile for 5.003_04 

* Fixed bug with menu traversal and entering upper-case caused by 
  Tk-b12's attempt to enable Solaris's keypad.

* Tolerate 'extreme POSIX-ness' for 'irix'.

* Added some more converted Tix stuff to Contrib 
  - Tix stuff will probably become a separate CPAN module.

* Messy hack to cause pod documentation to get added to HTML version
  - doc directory now processes pre-installed pod2man output!

* Made default for -scrollbars option to be non-optional
  can now have string matching /([or]?[ns])?([or]?[ew])?/
  that is 
    'n' or 's', prefixed by optional 'o' or 'r'
    'e' or 'w', prefixed by optional 'o' or 'r'
  The 'r' (for required) is ignored as it is new default (as in pre-Tk-b11)
  'o' causes that scrollbar to only be visible if needed, as in Tk-b11..Tk-b12

* Some new pods courtesy of Achim Bohnet <ach@rosat.mpe-garching.mpg.de>

* Convert '.o' to $(OBJ_EXT) when writing Makefiles - for OS/2.

* Removed (some of) junk from distribution.

* Updated Copyright dates.

Changes in Tk-b12

* Added -ldnet to Makefile.PL (DEC Net library for ultrix)

* Tweeked DoOneEvent to be more tolerant of 'strings' as flags.

* 'Enabled' keypad number-lock for Solaris.

* Made 'optional' scrollbars a little more robust.

* Added missing 'sub-methods' to Canvas

* Change to Tk::MMutil and its uses to derive relative
  pathnames.

* Mods to Tk::HTML for (then current) libwww and to add features.

* Convert to Tk::IO to use IO::Handle/IO::File rather than FileHandle

* Use PerlIO abstraction rather than <stdio.h>'s FILE.

* Added basic TIEHANDLE support to Tk::Text (needs very recent perl...)

* 'required' perl5.003 - it didn't!

* Tweak to Tk::After to allow $w->repeat's callback to cancel
  further repeats, and make period more deteministic.

* Added 'Dirlist' - thankyou whoever contributed it.

* Mods to ErrorDialog to allow buttons to be customized.

* (Some) cleanup of auto-scrollbar code.

* Optionmenu allows name/value pairs as well as lists of values.

* Updated TextUndo's 'Save' method.

* Added missing sub-methods to 'grid'.

* Make generated HTML more compliant with standards (weblint).

* Fixed problem with -background/-bg options to composites.

* Used correct Configure variable to allow use with perl installed
  in ~name paths.

* Avoid 'regex' name-clash for picky AIX compiler.

* Allow perl/Tk in 'tainted' mode (I think).

* Some other stuff - details lost due to disk problem.

Changes in b11.02

* Fix for K&R 'cc' (e.g. Sun's /bin/cc) compile.

* 'Scrolled' scrollbars now only get packed (dynamically) when required.

* Tweaks for perl5.002_01 

* Tidied up basic_credentials stuff to HTML/Web.pm a bit

* Brought Pod viewer up to date.

* Fixed memory leak in Tk::Callback->new, highlighted by recent
  'after' changes. 

Changes in b11.01

* Added ccflags to MMtry 'configure' tests so that trial compile
  has same flags as real compile.

* Added XQueryTree to Xlib (need it for Motif Drag&Drop hacking ;-))

* Some tweaks to HList 

* Demo patches from Steve.

* Messed with Table to permit empty rows.

* Added basic_credentials stuff to HTML/Web.pm 

* Added selectionSet etc. aliases to Listbox.


Changes in b11

* Corrected initialization/malloc/free bug in Text Tag -data option.

* Down graded ConfigDefault not to propagate 'default' values if 
  ConfigSpec has 'undef' as default value. Changed default -foreground
  -background to supplied by Tk::Derived to follow this model.
  These changes allow subwidgets to default their own colours.
  
* Made '-class' universal and used it to set class for all Tk::Widgets.
  Will allows Tix-like options db priming to affect subwidget defaults
  (e.g. colours).

* Messed with 'Menubar' class - now only exported decendants of 'Frame' and
  auto-packs itself at top. Its Menubutton method looks for existing
  menubutton of the supplied name, does maps ~Name to -underline
  and passes -menuitems to the menu.

* Adopted xpm3.4h for Pixmap/xpm 

* Moved pTk's gettimeofday() tests up to top level myConfig.
  Changed way C #define's are passed to code; now builds tkConfig.h 
  and #include's it rather than passing lots of -DXXXX to the compiler.

* Fixed infinite recursion on configure of DEFAULT options on derived widgets.

* Fixed bad case of 'bit rot' in Sun drag&drop - it was broken at time of 
  Tix code merge. Cleaned up the interface to it and added generic 'Local' 
  drag&drop independent of Sun's. Drop is always via a selection, as 
  both Sun's and Motif use that mechanism.

   - 'Local' drop should allow emulation of Tix-like Drag&Drop.

   - Works fine with olvwm4.1 under Solaris2.4.
   - Works after a fashion under olvwm4.1 on SunOS4 - incoming drops sometimes 
     fail. (Suspect bugs on 'xview' side...)
   - SunOS4 olvwm3.* is even worse.
   
   - Need to add Motif methods when I can  decipher the protocol.

* Various point fixes suggested to pTk list.

Changes in b10

* Hand-converted Tk::HList.pm from Graham Barr.

* Tk::Font from Graham Barr, added XListFonts to Tk::Xlib to support this.

* Cleaned up demos from Steve - thanks as always.

* Cleaned up error message propagation:
   - now use $widget->BackTrace('message')  rather than "croak" to get perl call
     history into "stack trace" for ErrorDialog etc.
   - Resolved "duplicate" messages to be result of perl5.002b2's $@ handling,
     and adjusted glue to comprehend this.

* Resolved netbsd problem with certain (unused, undefined) Tix 'extern's. 
   - will try and remember to run checking scripts in future...

* Added `a' version of tkGrid.c (to be included in tk4.1b*) which 
  allows folks to play with SpecTcl GUI builder (so I am told).

* Merged tk4.0p3 changes.

* Tested under perl5.002b3
   - located nasty bug when perl's stack grows (and therfore changes address)
     during a call to Tk. e.g. if Button callback invoked perl code which
     puts a large array on the stack. This may explain the 'FileSelect' 
     bug.
   - Still some risk in this area - will investigate further before production
     release. 

* Adopted $VERSION checking via .xs and DynaLoader.
* Added checks to toplevel Makefile.PL for installed perl5.002.
* Changed gettimeofday() calls to #define in tkPort.h - as yet 
  no 'configure' test for right prototype.

* Edited (previously non-distributed) doc/man* directories so that doc/*.ht 
  relates to perl/Tk rather than Tcl/Tk.
  May have missed some changes - proof reading by users requested ;-)

* Changed Tk::BackgroundError to Tk::Error, allows C API BackgroundError 
  to be used and makes documentation read better.

* Cleaned up and adopted Steves mkmenu from Menubar2 as $menu->AddItems
  and incoprorated into Menu's create process. 
  Can now say $parent->Menu(-menuitems => [...]);
  Can also also use method $menu->AddItems([...]) post creation.

- pre testing occured here 

* Fixed various build problems.

* Removed lingering debug. 

* Changed ConfigSpecs to handle 'aliases' e.g. -fg for -foreground
  in a manner more like core widgets.

* Implemented Tk::Widget::after as a wrapper on core Tk::after.
  Auto-cancels afters when widget is destroyed.

* Hook for above $widget->OnDestroy(callback) is also available for general
  use. Arranges for callback to be called just before widget is destroyed.
  Note that unlike bind('<Destroy>',...) the widget methods are still 
  available. For example this allows Text to save modified contents.

Changes in b9.01

* Fixed missing function table entry which caused problems on AIX.

* Removed spurious debug from 'place'.

* Patch to ColorEditor.pm from Steve.

Changes in b9

* pod patches from Larry Virden, ColorEditor fix from Steve.

* Applied AIX patch to tkImgPhoto.c - also added code to test signed-ness
  of chars in general.

* Added <HTML> at start of doc/*.ht files so Mosaic realises that is
  what they are.

* Added some checking on -*variable options - similar to use strict vars.

* Tidied up Tk::Tiler to get requested size and border handling correct,
  added configure options -rows and -columns.

* Moved ConfigSpecs and related methods out of Tk::Frame to Tk::Derived 
  to allow non-frame derived widgets. Tk::Frame now inherits from 
  Tk::Derived and Tk::Widget.

* re-Implemented Optionmenu using Tk::Derived - adding -command option
  where -command is invoked when option is set.

* Made leading '-' on core-widget configure options optional,
  by changing compare code in tkConfig.c 
  Similar changes in ConfigSpecs handling perl code in Tk/Derived.pm.

* Changed names as per new script b9names which can be used
  to update old applications.
  b9names script script script...

* Brought Ghostview sub-directory into line with changes in last few releases,
  still needs polish.

* New demos from Steve.

* Modified glue code to allow -0+0 and similar geometry specs though
  to Tk.

* Tweaked Menu and Menubutton bindings and Unpost scheme

* Merged tk4.0p2 C code changes

* Removed setting of $ENV{'TK_LIBRARY'} - replaced most of uses (demos etc.)
  of Tcl's $tk_library with Tk->findINC 

* Abstracted case insensitive regexp's and changed tkText.c not to 
  downcase pattern.

* Common case $w->pack now returns $w. 

* Merged Extended FileSelect from Steve.

* Make Read-Only Text available as ROText

* Fixed $w->Containing but which prevented dragging along a menubar.

* Changed InheritThis to use 5.002's ->SUPER:: instead.

* Re-worked Tk:IO a bit to use new "anonymous globs", and give access to 
  child process pids.

* Added simple Up,Down,Left,Right,Home,End bindings to Canvas.

* Cleaned up clipboard bindings for Text/Entry/Listbox.

* Did rest of nameSubmethod aliases etc. that Steve reported missing.

* Implemented simple Tk::Table in perl (modeled on Tiler) as one 
  ported from 'blt' core-dumps.

* Used hash in 'new' to speed up creating names for a lot of widgets of 
  same class, now O(1) not O(N) for Nth such widget.

* Implemented 'tie' of scalars to conigure options as 'obvious' 
  enhancement to Tk::Config class.

* Adjusted tkGlue.c's handling of perl 'magic' to make above ties 
  work in more cases. In particular using a tied -variable in a 
  check- or radio-button now allows them to re-configure widgets.
  (See table_demo).

* Generalized Canvas bindings (above) to (AutoLoaded) methods in Tk::Widget 
  usable by any widget which supports new-style [xy]view and does not need 
  special arrow key handling. Used these in Table and Tiler.

* Arranged for short-hand 'constructors' e.g. $w->Button(...) to use 
  the delegate mechanism so that once a 'composite' has a default subwidget
  (i.e. after its Populate) further widgets are created as children 
  of the subwidget. This allows (for example) correct parentage of 
  sub-windows of a ScrlText 'Frame'. 

* Implemented TextUndo class derived from Text but re-defining ->insert and
  ->delete to record their inverses on an 'undo' stack.
  Changed toyedit to use this class.

* Changed Tk::Config to be Tk::Configure - it makes 'tie' make more sense
  and avoids confusion between Tk/Config.pm and perl's Config.pm

* Moved demos to be their own sub-directory. Will allow more subtle
  handling of #! line when that is in place and allows demos to 
  be uninstalled separately

* Merged Tix-4.0 (production) C code. Adopted Tix's tkWm and tkMenu
  enhancements.

Changes in b8

* Adjusted handling of 'const' in pTk C code.

* Changed delegation to really define AUTOLOADed delegate 
  function avoids horrible overhead on each call.

* Corrected Steve's long standing issue with inserting selection
  with <2>. 

* Fixed all the 'use Pretty' problems.

* Merged tk4.0p1 patches

* Added explicit Tk::focus in places to allow tab traversal etc.
  of canvases which have their own focus method.

* Added Optionmenu.pm

* Divided Text bindings into two parts - one appropriate
  for read-only Texts - to make it easier to derived HTML
  stuff from Text.

* Added ability to specify X11 location as
  perl Makefile.PL X11=/path/to/X

* Other things I have forgotten.

Changes in b7

* Added workround for perl bug in new C version Callback::Call called from 
  perl in a loop (e.g. showed up in color_editor apply defaults).

* Changed Makefile.PL's to allow build on OSF again

* Changed enabling of -Werror for GCC to only occur where my home
  directory exists.

* Adjusted Frame.pm to comprehend that -colormap is create-time only 
  option.

* Applied John Outerhout patch to tkImgPhoto.c 

* Enforced 14 character filename length limit on all files in MANIFEST.
  Renamed 
    ScrolledListbox -> ScrlListbox
    FileSelector    -> FileSelect
    LabledEntry     -> LabEntry
    LabledRadio     -> LabRadio
  >> INCOMPATIBLE <<

* Fixed memory leak due to -textvariable 

* Implemented Tcl_GetVar2 so that -fontmap and -colormap work
  for canvas postscript option.
  Added trivial postscript demo canvas_ps, and postscript print
  option to widget demo 'plot' (Thanks Guy/Steve).

Changes in b6

* Merged production tk4.0 C code and doc files, and added
  new winfo commands to Widget.pm

* Demos updated from Steve as usual - thanks as always.

* Changed Tk::Widget::new code so that Name => name pair can 
  occur in any position.

* Added a DoWhenIdle to ConfigChanged when a composite's configure
  changes. Derived class can override this method to (for example)
  repaint when all of a group of configures have occurred.
  (Still experimental).

* Fixed Canvas tags inquiry.

* Changed 'WidgetClass' declaration scheme to something more readable (IMHO).
  >>> INCOMPATIBLE <<<  (But WidgetClass is still there for now...)

* Eliminated the string evals for constructor and convenience methods,
  in favour of assigning to globs. 
  >>> Requires perl5.001m for fixes to closures <<<

* Automatically create @Tk::Xxxxx::Inherit::ISA (as per perlbot)
  when a widget Construct occurs.
  Provide Inherit method to use above.

* Implemented Tk/perl hooks to allow Text regular expression matching
  to work (using perl style regexps!)

* Added Busy/Unbusy to inhibit events and display a cursor while
  doing something that takes a while.

* Continued evolution of Composite stuff, making ConfigSpecs
  an array to allow defaults to be specified.
  More types of configure now allowed.
  Tk::Composite has gone, Tk::Frame is now the base class,
  with Tk::Toplevel @ISA'ing Tk::Frame

  Hacked all existing Composites to use new scheme,
  partially functional FileSelector converted too.

  >>> INCOMPATIBLE <<<

* Eliminated dubious practice of pattern matching the package name
  to decide on core Tk widget (an one or two other things).
  Such things are now found via inheritcance.

* Major overhaul of internals of tkGlue.c, fixed leaks and core dumps.
  Added END block to Mainwindow.pm to cleanup after 'die'.

* Permitted multiple MainWindow->new calls
  this requires Tk->update style calls to change to $widget->update
  >>> INCOMPATIBLE <<<

* Started tkpod pod viewer

Changes in b5

* Fixed Photo dynamic loading problems highlighted by AIX.

* Fixed warnings/errors on XFree() building Xlib.ft (SGI and others)

* Fixed tear-off menus with Radio/Check button items.

* Adopted Stephen's latest ColorEditor stuff.

* Adapted Stephen's Composite.pm stuff, adding delegation of 
  methods and configure stuff, and allowing Toplevel composites
  without dummy Frames. Propogated style to ScrolledListbox, Dialog
  and ErrorDialog. Tweaked (some of ) demos as well.

* Merged tk4.0b4 C code and converted its 'man' pages to doc/*.html
  Minor tweak to Tk.pm/Widget.pm for change of 'winfo allmapped' to
  'winfo visible'.
  More consequences of tk4.0b4 expected when further testing occurs.
  (*.tcl -> *.pm audit *NOT* yet done.)

* Moved 'xpm' library out of pTk and into Pixmap which is what uses it.

* Changed whole approach to stdio 'cnt' that latest Configure
  'broke' for linux.
  Now simply define a function in tkGlue.c using perl's FILE_cnt() macro.

* Removed perl patches from the distribution now that perl5.001l
  is widely available, and patches were getting bulky.

* Edited pTk/mTk/tkPack.c and  pTk/mTk/tkPlace.c so that their info
  sub commands return usable perl lists.
  Added convience methods $widget->packslaves and $widget->packinfo.

* Fixed problem in Text 'search' which either rendered it non-functional,
  or caused a segfault.

* Changed way 'vtables' are declared to avoid problems with one 
  Linix dld variant.

* Incorporated Stephens conversion of tk4.04 style demos.

* Converted palette.tcl and merged into Widget.pm 

* Adopted code for myConfig that tries to locate X includes and 
  library by looking for an xmkmf in $PATH.

* Hacked Makefile.PL's to correctly build full-static tkperl
  Added code to Tk.pm to supress used-once warnings on internal
  variables.

* Moved all the major widgets to be separately loadable

* Tweak Composite stuff some more - it should still be considered
  subject to change, but basic structure should be okay.
   - Not all composites are in same style yet
   - I may have missed some $cw->{-opt} changes to $cw->{Configure}{-opt}
   - ConfigSpecs 'delagation' needs work to make the fact that 
     a widget is a composite transparent to the user.
     * In place are ways to direct -xxx to a subwidget->configure(-xxx)
     * Need way to direct -xxx to a subwidget->configure(-yyy)
     * Need way to direct -xxx to  somewidget->handler(-yyy)
     * Need cget 
     * Need to be able to use options 

Changes in b4

* An 'experimental' release which attempts to minimize startup time
  and memory use by AutoLoading and Dynamicaly loading as much as possible.
  As such it may be seriously damaged on machines which don't support dynamic
  loading - such machines should probably stick to Tk-b3.
  Needs a patch (supplied) to perl5.001e to make auto-loaded methods work.

* A few fixes from Stephen Lidie to demos (Thanks again Stephen).

* Removed most of the $w->IsXxxx tests following recent discussion 
  by perl5-porters.

* Other minor cleanups.