What is new in Tablelist 7.1? ----------------------------- 1. Added support for terminating the editing with one of the following automatic postprocessings: (1) fill the column's selected cells; (2) fill all cells of the column; (3) fill down within the column; (4) fill up within the column (thanks to Blair J Basom for his proposal). 2. The multi-line cell texts are now displayed vertically centered within their rows, just like the single-line ones (thanks to Harald Oehlmann for his proposal). 3. Fixed a long-standing bug due to which under some circumstances the default values of several configuration options became theme-specific even if the tablelist package rather than tablelist_tile was being used. 4. Fixed a long-standing bug related to creating the expand/collapse control images when handling the "-treestyle" option (thanks to Nicolas Bats for his bug report). 5. Guarded against destroying a tablelist widget (e.g, by an "after" callback) in which an interactive column resize or row/column move operation is in progress (thanks to Ulrich Seidl for his bug report). 6. Handled the extremely rare case that the frame widget to be used as parent of the edit window already exists (again, thanks to Ulrich Seidl for his bug report). 7. Fixed a typo in the mega-widget utility file mwutil.tcl, introduced in the previous release (thanks to Harald Oehlmann for his bug report). What was new in Tablelist 7.0? ------------------------------ 1. Dropped the support for Tk versions earlier than 8.4. This has made the code simpler and easier to maintain. 2. For the selection type "cell", the F2 key now starts the interactive editing of the active element, just like Return and KP_Enter (thanks to Alexandru Dadalau for his proposal). 3. Added explicit support for the themes "black", "breeze", "breeze-dark", "sun-valley-light", and "sun-valley-dark". 4. Improved the compatibility with Tcl 9 and Tk 8.7/9. For example, added support for the new event, introduced in Tk 8.7 and 9. 5. Removed the now redundant distribution file "repair.tcl". 6. Fixed a long-standing bug related to updating the list variable by the "insertcolumns", "insertcolumnlist", and "deletecolumns" subcommands (thanks to Alexandru Dadalau for his bug report). What was new in Tablelist 6.22? ------------------------------- 1. If SVG is supported, i.e., if the Tk version is at least 8.7 or the tksvg package can be loaded into the interpreter, then the new variable "tablelist::svgfmt" is set to a Tcl list that you can pass to the commands that create or manipulate SVG images as the value of their "-format" option to make sure that your images will be properly scaled (see the new section "More on tablelist::svgfmt" in Tablelist Programmer's Guide for details). 2. In the presence of SVG support, added the arrow style "photo0x0", whose sort arrows are SVG images that will scale automatically according to the display's real scaling percentage (which can be greater than 200, the maximum value of the variable "tablelist::scalingpct"). 3. Removed the very rarely needed arrow styles "flat6x4", "flat7x5", "flat9x6", "flatAngle9x7", and "flatAngle10x7", and added the styles "flat10x5", "flat12x6", "flat14x7", and "flat16x8". 4. The default value of the "-arrowstyle" option on X11 is now "photo0x0" if SVG is supported, and (depending on the display's scaling level) one of "flat8x4", "flat10x5", "flat12x6", "flat14x7", or "flat16x8" otherwise (POTENTIAL INCOMPATIBILITY!). 5. In the presence of SVG support, added the tree styles "plain", "bicolor", "white", and "classic", which are quite similar to the styles "plain*", "bicolor*", "white*", and "classic*", except that they use SVG images whose sizes are automatically adapted to the display's real scaling percentage. 6. The BWidget SpinBox and ComboBox widgets used for interactive cell editing are now scaled according to the display's real scaling percentage rather than to the value of the variable "tablelist::scalingpct". 7. If SVG is supported then the temporarily or persistently embedded checkbuttons as well as the calendar and watch icons of the Iwidgets dateentry and timeentry widgets used for interactive cell editing now use SVG images that will scale automatically according to the display's real scaling percentage. 8. For Tcl versions 8.4 and later replaced the deprecated "trace variable" and "trace vdelete" invocations with "trace add variable" and "trace remove variable", respectively. 9. Improvements in the themepatch package, especially regarding the "default" theme. 10. In the presence of SVG support, the demo scripts now use SVG images created with the aid of the variable "tablelist::svgfmt", and on X11 the demo scripts "browseTree(_tile).tcl" and "dirViewer(_tile).tcl" now set the "-treestyle" option to the SVG-based style "bicolor". 11. Guarded against destroying a tablelist widget in which interactive cell editing is in progress (thanks to Alexandru Dadalau for his bug report). 12. Several further improvements and minor bug fixes. What was new in Tablelist 6.21? ------------------------------- 1. For the built-in themes "alt", "clam", "classic", and "default", the "-stripebackground" option now has a nonempty theme-specific default value (for the "aqua" theme this has always been the case). 2. In disabled state, the "finishediting" subcommand now returns immediately, without terminating the interactive cell editing (thanks to Ulrich Seidl for his proposal). 3. Improvements related to the appearance of the Tk core checkbutton widgets embedded into a header label or a cell (temporarily or persistently). 4. The (ttk::)checkbutton embedded into the header label of the column "available" of the tablelist widget created by the demo-scripts for interactive cell editing now appears in tri-state mode and is selected/deselected or set into the tri-state mode whenever the editing changes the value of any cell contained in this column. 5. The scaleutil package now scales more styling options of the ttk::treeview widget and some styling options of a series of widgets of the "winnative" theme, too. 6. The scaleutil package now supports also the case that on Xfce the DPI value was set in the "Fonts" tab of the "Appearance" dialog or (on Linux Lite 5+) via the "HiDPI Settings" dialog, or on MATE it was set via the "Font Rendering Details" dialog. 7. The scaleutil package now takes into account that current MATE versions scale the font DPI for HiDPI displays. 8. The Tablelist distribution now includes the themepatch package, whose "themepatch::patch" command significantly improves the look and behavior of the ttk::checkbutton and ttk::radiobutton widgets of the "alt", "clam", and "default" themes, and makes the "clam" theme's ttk::button and ttk::menubutton widgets as well as its ttk::treeview and tablelist headers smaller. If the tk version is at least 8.7 or the tksvg extension can be loaded into the interpreter, then the package uses fully scaling-aware SVG images for drawing the indicators of the patched ttk::checkbutton and ttk::radiobutton widgets. The demo script "tileWidgets.tcl" now patches the "default" theme on X11 via "themepatch::patch default". 9. Added support for the case that the "alt" theme was modified by invoking the "themepatch::patch" command of the themepatch package. 10. Extended the description of the "tablelist::setThemeDefaults" command by the hint that with current Tablelist_tile versions there is no need for invocations of this procedure in application code, and this is now reflected by the demo scripts, too. 11. Fixed two bugs related to the "embedcheckbutton(s)", "embedttkcheckbutton(s)", "header embedcheckbutton(s)", and "header embedttkcheckbutton(s)" subcommands (thanks to Adrian Medrano Calvo for his bug report). 12. Fixed a few bugs related to the comparison of package versions. 13. Several further improvements and minor bug fixes. What was new in Tablelist 6.20? ------------------------------- 1. Added the "dumptostring" and "loadfromstring" subcommands, which complement "dumptofile" and "loadfromfile", respectively (thanks to Rolf Ade for his proposal). 2. The argument of the "tablelist::getTablelistColumn" command now may also be the path name of a Tk core or tile checkbutton embedded into a header label. 3. Added support for the case that the "default" theme was modified by invoking the "themepatch::patch" command of the themepatch package, which is bundled with the Scrollutil distribution. 4. Redisplaying a column (due to, e.g., setting its "-align", "-font", "-formatcommand", or "-width" option) is no longer suppressed if the column is hidden. This makes sure that on unhiding the column, its elements will appear properly formatted (thanks to Alexandru Dadalau for his example script that determined me to make this improvement). 5. Improvements related to moving a column interactively, especially on Mac OS X/11+. 6. Several further improvements and minor bug fixes. What was new in Tablelist 6.19? ------------------------------- 1. The "get", "getcells", "getformatted", "getformattedcells", "getfullkeys", and "getkeys" subcommands now accept an optional argument with the possible values "-all", "-nonhidden", and "-viewable", just like the "curcellselection" and "curselection" subcommands (thanks to Alexandru Dadalau for his proposal). 2. If the tablelist widget has no columns then the "deletecolumns" subcommand now returns immediately without any further action, like checking the validity of the column indices (thanks to Paul Obermeier for his proposal). 3. Made sure that the workaround for the problem that in Tk 8.6.11 and later on Mac OS X/11+ the idle callbacks are often fired at unexpected times won't lead to invocations of callbacks for already destroyed tablelist widgets (thanks to Paul Obermeier for his bug report). 4. Fixed a bug related to making a hidden column visible again, which caused unexpected behavior when moving a column interactively (thanks to Ulrich Seidl for his bug report). 5. Made the detection of the desktop environment when calculating the scaling percentage corresponding to the display's DPI scaling level on X11 more reliable (thanks to Florian Pigorsch for his bug report). What was new in Tablelist 6.18? ------------------------------- 1. Improvements in the scaleutil package, related to setting the default height of the ttk::treeview rows to a value based on the font's metrics (see the section "More on tablelist::scalingpct" in Tablelist Programmer's Guide for details); several extensions. 2. Added support for the case that the "clam" theme was modified by invoking the "clampatch::patchClamTheme" command of the clampatch package, which is bundled with the Scrollutil distribution (and used by its demo scripts). 3. When starting the editing session, the "-exportselection" option of the tablelist widget is now set to 0 (thus making sure that the widget won't lose the selection while a cell's content is being edited), and when the editing is finished or canceled, the option's original value is restored (thanks to Alexandru Dadalau for his proposal). 4. Made sure that the "-showeditcursor" configuration option will work as expected also in the special case that the application was cross- wrapped on Linux for Windows using freewrap (thanks to Rolf Ade for his valuable contribution and discussions on this topic). 5. Overhauled the workaround for the problem that in Tk 8.6.11 and later on Mac OS X/11+ the idle callbacks are often fired at unexpected times (thanks to Christian Gollwitzer for his bug report and discussions on this topic). 6. Fixed a bug related to the handling of the <> event when the package Tablelist rather than Tablelist_tile was loaded into the interpreter (thanks to Sait Dogru for reporting this bug). 7. Fixed a long-standing bug related to the mouse event handling for the header labels in the special case that there is another tablelist closely to the left of the widget in question (thanks to Alexandru Dadalau for his bug report). 8. Improvements in Tablelist Programmer's Guide. What was new in Tablelist 6.17? ------------------------------- 1. The virtual event <> is now only generated if the editing session has effectively changed the cell's content (thanks to Manfred Rosenberger for his input that determined me to make this change, which will be useful for applications that perform complex actions whenever this event is triggered). 2. Extended the descriptions of the "-tooltipaddcommand" and "-tooltipdelcommand" options by hints showing how to use these options with version 1.3+ of the baltip package by Alex Plotnikov. 3. The scaleutil package (which is bundled with Tablelist) now works "as is" with undroidwish and AndroWish, too. In addition, as described in section "More on tablelist::scalingpct" of Tablelist Programmer's Guide, it is now possible to prevent this package from changing Tk's scaling factor when calculating the scaling percentage corresponding to the display's DPI scaling level on X11 (thanks to Christian Werner for his proposal and discussions on these topics). 4. Worked around the problem that on Mac OS X/11+ the idle callbacks are often fired at unexpected times (thanks to Torsten Berg for his bug report and discussions on this topic). 5. Fixed a bug related to the embedded ttk::checkbutton widgets when the package Tablelist rather than Tablelist_tile was loaded into the interpreter (thanks to Nicolas Bats, Ralf Fassel, and Jakob Gager for reporting this bug). 6. Fixed a bug in the scaleutil package, related to setting the default height of the ttk::treeview rows for one of the themes provided by the awthemes package (thanks to Harald Oehlmann for his bug report). What was new in Tablelist 6.16? ------------------------------- 1. Extended the "itemtodict" subcommand by an optional argument that specifies the column indices of the elements that are to be ignored when building the dictionary that will be returned by the subcommand (thanks to Dieter Lonken for his proposal). 2. After handling the mouse wheel events for the binding tag "TablelistBody", the default bindings now prevent the processing of these events by bindings associated with further tags (like the containing toplevel window and "all"). This makes sure that in case of a tablelist within a scrollable widget container, the mouse wheel events will not at the same time scroll the widget container when the pointer is over the tablelist's body. 3. Significantly extended the code responsible for initializing the variable "tablelist::scalingpct". See the section "More on tablelist::scalingpct" in Tablelist Programmer's Guide for details. 4. Made sure that the above-mentioned code will work as expected also with future Tk versions containing the changes made recently in the library file "ttk/fonts.tcl". 5. For the themes "clam", "vista", and "xpnative", the default vertical padding of the header labels is now scaled according to the value of the variable "tablelist::scalingpct". 6. Improvements related to the appearance of the (temporarily or persistently) embedded ttk::checkbutton widgets, especially for the theme "clam" and the ones provided by the awthemes package. 7. Fixed a bug related to the "cellbbox" subcommand (thanks to Alexandru Dadalau for his bug report). 8. Several further improvements in the code and documentation. What was new in Tablelist 6.15.1? --------------------------------- This is a bugfix-only release. The only corrected file in the "scripts" directory is "tablelistUtil.tcl". 1. Guarded against potential endless loops, triggered in the previous Tablelist release by the presence of hidden columns and a strictly positive value of the "-titlecolumns" option (thanks to Johann Oberdorfer for his bug report). What was new in Tablelist 6.15? ------------------------------- 1. Added the "dumptofile" and "loadfromfile" subcommands, inspired by some procedures related to a special type of tablelists, posted by Helmut Giese on the Wiki (note that these new subcommands are not restricted to any particular tablelist type). 2. The "dicttoitem" subcommand no longer expects all dictionary keys to be valid column indices; instead, it simply ignores those keys that don't fulfill this condition (thanks to Dieter Lonken for his proposal). 3. Added code that handles the virtual event <> with the "user_data" field (%d) set to "FontChanged", which, with Tk versions later than 8.6.11 and 8.7.a5, will be sent by the Tk engine to all widgets when a font is changed, for example, by invoking "font configure" (see TIP 608). 4. Adapted the sort rank bitmaps used in multi-column sorting to the display's scaling percentage. 5. Worked around a serious regression in Tk 8.6 regarding the text widget's "see" subcommand, which caused several performance problems in tablelist widgets containing a tree structure (thanks to Helmut Giese for reporting some of them on the Wiki). 6. The scrolling in tablelist widgets displaying a tree structure has become significantly smoother, due to several further code optimizations. 7. Fixed a bug related to the "searchcolumn" subcommand with the "-descend" option, which in addition no longer depends on the interpreter's maximum nesting depth. 8. Adapted the implementation of the "deletecolumns" subcommand to changes made in current Mac OS versions (thanks to Torsten Berg for his bug report). 9. Fixed a bug related to the supported scaling percentages on Windows (thanks to Manfred Schwarz for his bug report). What was new in Tablelist 6.14? ------------------------------- 1. Added support for embedding checkbuttons into the header labels, by using the new "-labelwindow" column configuration option, whose possible values are "checkbutton" and "ttk::checkbutton" (thanks to Alexandru Dadalau and Ralf Fassel for their proposal). 2. Added the "labelwindowpath" subcommand, used to retrieve the path name of the (ttk::)checkbutton widget embedded into a header label. 3. Added the virtual event <>, generated by the default bindings whenever the active row or cell changes due to user interaction. 4. If the value of the "-titlecolums" option is positive then a event and the corresponding and events on X11 now scroll the tablelist widget by one column only on all platforms. 5. The "-stretchwindow", "-windowdestroy", and "-windowupdate" options are now supported at column level, too. Setting these options at column rather than cell level will reduce the memory consumption, improve the performance, and make the application code simpler. 6. Extended the "fillcolumn" and "header fillcolumn" subcommands by the capability to embed an image or window in all body/header cells of the specified column. 7. The demo scripts "bwidget*.tcl", "iwidgets*.tcl", "miscWidgets*.tcl", and "tileWidgets.tcl" now also demonstrate how to use the new "-labelwindow" column configuration option and "labelwindowpath" subcommand. 8. The demo scripts "embeddedWindows*.tcl" now set the "-stretchwindow" option at column rather than cell level, and embed the windows into the cells by using the "fillcolumn" subcommand instead of invoking "cellconfigure" in a loop. 9. Improved the retrieval of the numerical equivalent of a column index of the form "@x,y" and the robustness of the code in connection with tkcon (thanks to Markus Freiberg for his bug report, profound analysis, and discussions on these subjects). 10. On X11, the initialization code now only corrects the sizes of the standard fonts and sets the scaling factor if the display's scaling percentage is greater than 100. In addition, the scaling factor is no longer changed if the scaling percentage was derived from it (thanks to Erik Leunissen and Harald Oehlmann for their bug reports). 11. Several further improvements and minor bug fixes (thanks to Emiliano Gavilan for his input). What was new in Tablelist 6.13? ------------------------------- 1. The "expand(all)" and "collapse(all)" subcommands no longer depend on the interpreter's maximum nesting depth (thanks to Ulrich Seidl for his proposal and discussions on this subject). 2. Drastically reduced the memory consumption of tablelist widgets displaying a deeply nested tree structure and significantly improved their performance. 3. Added support for macOS 11 (Big Sur), including the new tree style "aqua11", which is the default on macOS 11. 4. Reworked the support for the awthemes package and extended it by support for the "awbreezedark" theme, introduced in awthemes 10.3. 5. Improvements in the demo scripts "browse(Tree)_tile.tcl", "config_tile.tcl", "dirViewer(_tile).tcl", and "embeddedWindows(_tile).tcl". 6. Fixed a bug related to font scaling on X11 (thanks to Ulrich Seidl for his bug report). 7. Fixed a bug related to the interactive row move operation (again, thanks to Ulrich Seidl for his bug report). 8. Several further improvements and minor bug fixes. What was new in Tablelist 6.12? ------------------------------- 1. Added support for the platform-independent handling of mouse wheel events (TIP 474), introduced in Tk 8.7a4 (as of January 9, 2021). 2. Added the "-editendonfocusout" configuration option (thanks to Alexandru Dadalau and Jakob Gager for their proposals). 3. Added the "-editendonmodclick" configuration option (thanks to Ulrich Seidl for his proposal and discussions on this subject). 4. Added the "-itembackground" configuration option (thanks to Harald Oehlmann for his proposal). 5. Added the "autoscrolltarget" and "stopautoscroll" subcommands, which enable the user to scroll the target tablelist before dropping a dragged object into it (thanks to Nicolas Bats for his proposal and discussions on this subject). 6. Further improvements related to the termination of interactive cell editing (thanks to Ulrich Seidl for discussions on this subject). 7. Improved the font scaling on X11 (especially for Xfce and MATE) in the calendar component of an iwidgets::dateentry widget used for interactive cell editing. 8. Extended the description of the scaling support on Xfce (including version 4.16, which adds fractional scaling), MATE, and Cinnamon. 9. Fixed a regression related to font scaling on X11 if the display's DPI scaling level is greater than 100 %, introduced in the previous release. 10. Fixed a few long-standing issues related to the "yview" subcommand (thanks to Ulrich Seidl for his bug report). What was new in Tablelist 6.11? ------------------------------- 1. Updated the "aqua" theme support and extended it by support for the Dark Mode appearance, introduced in Mac OS version 10.14 (Mojave). When using Tk 8.6.10 or later, the package Tablelist_tile now renders the tablelist widgets according to the current system appearance and updates them whenever the latter toggles between Light Mode and Dark Mode or the Accent Color in the General Preferences changes. If the Tk version is 8.6.11 or later then on Mac OS 10.15 (Catalina) and later the tile-based tablelist widgets are also updated when changing the Highlight Color in the General Preferences. 2. Added support for the "awdark", "awlight", and the five other themes provided by the package awthemes 9.4 or later by Brad Lanam. 3. Added the tree styles "white100", "white125", "white150", "white175", and "white200", designed for use with dark themes. 4. Added the virtual event <>, sent to the main window when handling the virtual events <>, <>, and <>. See the section "The tablelist:: setThemeDefaults Command" of the manual page "Commands Related to Tile Themes" for details. 5. For current Tk versions Tablelist no longer requires that changing the theme be done using the "ttk::setTheme" command instead of "ttk::style theme use", which was necessary for older tile versions. 6. Improvements related to laying out the widget used for interactive cell editing. 7. With Tk 8.6.10 or later, the demo-scripts "browse(Tree)_tile.tcl", "config_tile.tcl", "dirViewer_tile.tcl", "embeddedWindows_tile.tcl", and "tileWidgets.tcl" now fully support the Dark Mode appearance on Mac OS 10.14 and later (see also the section "Tile-Based Demo Scripts" in Tablelist Programmer's Guide). The same demo-scripts also support the themes provided by the awthemes package. 8. Reworked the invocations of "package vcompare", taking into account that Tcl versions earlier than 8.5 did not support the letters "a" and "b" in version numbers (thanks to Mike Walsh for his bug report). 9. Several further improvements in the code, demo scripts, and documentation. What was new in Tablelist 6.10? ------------------------------- 1. Made the variable "tablelist::scalingpct" read-only. 2. Extended the initialization of the variable "tablelist::scalingpct" by scaling: (a) the default width of the Tk core scrollbars on X11; (b) for the built-in themes "alt", "clam", "classic", and "default", the default width of the ttk::scrollbar widget, as well as the arrows of the ttk::combobox and ttk::spinbox widgets; (c) for the "alt" and "clam" themes, the arrow of the ttk::menubutton widget; (d) for the "clam", "classic", and "default" themes, the indicators of the ttk::checkbutton and ttk::radiobutton widgets. 3. Made sure that in the "vista" and "xpnative" themes the indicators of the ttk::checkbutton and ttk::radiobutton widgets will be properly scaled, regardless of the Tk release being used (a long-standing bug in the implementation of these widgets was fixed in May 2020). 4. Automatic scaling of the default arrow style on the windowing system "x11" and for a few tile themes, like "alt", "clam", and "default": Now the default value of the "-arrowstyle" option can be, besides "flat8x4", one of "flat9x5", "flat11x6", "flat13x7", and "flat15x8", depending on the value of the variable "tablelist::scalingpct". 5. The temporarily embedded widgets used for interactive cell editing now will appear properly scaled, thanks to additional improvements related to the editing with the aid of Tk core checkbutton, BWidget SpinBox, BWidget ComboBox, iwidgets::dateentry, iwidgets::timeentry, iwidgets::combobox, and Oakley combobox widgets. A tile widget used for cell editing will be properly scaled in all built-in themes; the only exception is ttk::checkbutton, which cannot be scaled if the theme is "alt" or "winnative". 6. Made all demo-scripts scaling-aware. 7. Several further improvements in the code and documentation, as well as minor bug fixes. What was new in Tablelist 6.9? ------------------------------ 1. Significantly extended and improved the code for initializing the variable "tablelist::scalingpct", especially on X11, including GNOME and KDE on both Xorg and Wayland, Solus and Ubuntu Budgie, Cinnamon, MATE, and Xfce. This variable now has the additional value 175. See the new section "More on tablelist::scalingpct" in Tablelist Programmer's Guide for details. 2. Corresponding to the new scaling percentage 175, added the arrow styles "flat13x7", "flatAngle13x7", and "photo13x7". Removed the not really useful arrow styles "flat5x3" and "flat5x4" (POTENTIAL INCOMPATIBILITY!). 3. Changed the tree style names "plain1", ..., "plain4" to the more suggestive ones "plain100", "plain125", "plain150", and "plain200", and added the tree style "plain175". Similar changes for the tree styles "bicolor*" and "classic*". POTENTIAL INCOMPATIBILITY! 4. The demo scripts "dirViewer.tcl" and "dirViewer_tile.tcl" now also demonstrate how to use the variable "tablelist::scalingpct" for developing scaling-aware applications. 5. Adapted the look & feel of the tree style "ubuntuMate" to version 20.04 of the Ubuntu MATE distribution. 6. Made the "refreshsorting" subcommand by orders of magnitude faster (thanks to Ulrich Seidl for reporting the poor performance of this subcommand). 7. Fixed an issue related to the bindings for the edit window, which prevented the triple-clicks from being handled by the class bindings of the edit widget (thanks to Ulrich Seidl for his bug report and discussions on this subject). 8. Fixed a bug related to the "expand" subcommand for a list of indices (again, thanks to Ulrich Seidl for his bug report). 9. Several further improvements in the code and documentation, as well as minor bug fixes. What was new in Tablelist 6.8? ------------------------------ 1. Updated and significantly improved the support for Windows 10. 2. Adapted the "aqua" theme support to Tk release 8.6.10. Note that this was tested on Mac OS X 10.13.6 (High Sierra) and currently doesn't support the "Dark Mode" appearance, introduced in Mac OS X version 10.14 (Mojave). 3. When computing the number of units for "(x|y)view scroll" within the bindings for mouse wheel events, the rounding now works the same for both positive and negative delta values, just like in Tk 8.6.10 and later. 4. For Tk 8.7.a3 and above on X11, the mouse wheel event handling now includes bindings for horizontal scrolling with the aid of the (virtual) mouse buttons 6 and 7, which correspond to left/right tilting the scroll wheel of a mouse having one or two additional (thumb) buttons. 5. The tile-based demo scripts now use ttk::scrollbar widgets for the "aqua" theme, too, provided that the Tk release is 8.6.10 or later. 6. Several further improvements in the code and documentation. What was new in Tablelist 6.7? ------------------------------ 1. Optimized the horizontal scrolling by units (thanks to Nicolas Bats for his input). 2. Many improvements related to the "aqua" theme. 3. Tablelist no longer creates aliases in the "::tk" namespace for Tk commands for which that namespace already contains a command of the same name (thanks to Juge for his input). 4. Made sure that the commands specified as the values of the "-xscrollcommand" and "-yscrollcommand" options will only be invoked if the view's data have changed. This prevents a potential endless loop when scrolling several tablelists simultaneously with the aid of the scrollutil::scrollsync widget (thanks to Paul Obermeier for his bug report). 5. Fixed a bug introduced in Tablelist 6.2, related to the "scan" subcommand. 6. Several further improvements in the code and documentation. What was new in Tablelist 6.6? ------------------------------ 1. Added mouse bindings for setting, extending, and toggling the column- wise cell selection with the aid of the header labels if the selection type is "cell" (thanks to Nicolas Bats for his proposal, testing, and discussions on this subject). 2. New "-selectfiltercommand" widget and column configuration option, which can be used for filtering the cells that are to be selected by the column-wise cell selection operation (again, thanks to Nicolas Bats for his proposal, testing, and discussions on this subject). 3. Improvements related to the interactive editing of multi-line cells (thanks to Johann Oberdorfer for his proposal). 4. Adapted the look & feel of the tree style "adwaita" to current versions of the GTK+ 3 theme Adwaita. 5. Improved the description of the "-height" option in the reference manual and extended it by a hint concerning the desired height in rows (thanks to Jakob Gager for discussions on this subject). 6. The reference manual now contains several links to the new Scrollutil package, along with an example showing how the scrollutil::scrollarea widget can be used to make the creation of a scrolled tablelist quite simple. 7. Eliminated the flickering in the presence of header items, introduced in Tablelist 6.5 (thanks to Johann Oberdorfer for reporting this regression). 8. Fixed a long-standing bug related to the "move" subcommand (thanks to John J. Seal for his bug report). 9. Several further improvements and minor bug fixes. What was new in Tablelist 6.5? ------------------------------ 1. Support for the new virtual events <> and <>, generated when the header's height or the total width of the viewable title columns, respectively, has changed. 2. Optimized the vertical scrolling by units (thanks to Nicolas Bats for his input). 3. Minor improvement related to the appearance of embedded checkbuttons on X11. 4. Fixed a bug introduced in Tablelist 6.4, related to the "-showlabels" option (thanks to Jakob Gager for his bug report). 5. Fixed a few bugs specific to Mac OS X Aqua, introduced in Tablelist 6.4 (thanks to Paul Obermeier and Nicolas Bats for their bug reports). 6. Fixed a bug related to the handling of mouse wheel events during interactive cell editing, introduced in Tablelist 6.4 (thanks to Alexandru Dadalau for his bug report). 7. Fixed a bug related to the "move" subcommand, introduced in Tablelist 6.3 (thanks to Jose Luis Lijo and Bo Berggren for their bug reports). 8. Several further improvements in the code and documentation. What was new in Tablelist 6.4? ------------------------------ 1. Added the "-xmousewheelwindow" and "-ymousewheelwindow" configuration options, which make it possible to redirect the mouse wheel events of the tablelist's body to the containing scrollable window or toplevel widget in case the focus is outside the tablelist (thanks to Michael Niehren for discussions on this subject). 2. Optimized the deletion of a list of items (thanks to Martin Lemburg for his proposal). 3. Improved the performance of the vertical scrolling (thanks to Olivier Jolet for discussions on this subject). 4. Eliminated a potential endless loop triggered by key navigation with the "aqua" theme and selection type "cell" (thanks to Michael Grundler for his bug report). 5. Fixed a regression introduced in Tablelist 6.3, related to the handling of the "-listvariable" option when using Itcl 3.x (thanks to Ralf Fassel for his bug report and valuable contribution). 6. Fixed another regression introduced in Tablelist 6.3, related to clearing the multiple or extended selection (thanks to Martin Lemburg for his bug report). 7. Several further improvements and minor bug fixes in the code and demo scripts. What was new in Tablelist 6.3? ------------------------------ 1. Added the "-showbusycursor" configuration option, used to control whether the default bindings should display a busy cursor during the actions that can take a long time to complete, using the new "setbusycursor" and "restorecursor" subcommands. 2. The "-stretch" configuration option is no longer ignored if the width of the tablelist widget was specified as zero or less (thanks to Adrian Medrano Calvo for his proposal). For technical reasons there is just a minor restriction, which is only relevant on X11: If the value of the "-width" option is zero or less and the tablelist has stretchable columns, then the "-setgrid" option will be ignored. 3. The vertical scrollbar, when managed with the aid of the "cornerpath" subcommand, will now appear below the entire header, including both the header labels and the header items (if any). 4. Besides the north-east corner frame there is now a south-west corner frame, designed to be used when managing the horizontal scrollbar in the presence of title columns. The "cornerpath" subcommand now accepts the corner specification as optional argument. 5. Significant optimizations in the item insertion as well as in the selection-related code (thanks to Johann Oberdorfer for testing and discussions on this subject). 6. Adapted to some changes in future Tcl and Tk releases (for example, made sure that it works with Tcl 9.0 and Tk 8.7). 7. Further improvements related to the interactive cell editing with the aid of the ctext widget (thanks to Sait Dogru for discussions on this subject). 8. Made the overall handling of the "-listvariable" option much more robust (thanks to Ulrich Seidl for his bug report). 9. Fixed a long-standing bug related to the "-maxwidth" column configuration option (again, thanks to Ulrich Seidl for his bug report). 10. Fixed a bug related to the "-displayondemand" configuration option (thanks to "tombert" for his bug report). 11. Fixed a bug related to the tooltip support (thanks to Bo Berggren for his bug report). 12. Fixed a bug related to the "rowconfigure" subcommand, introduced in Tablelist version 6.0 (thanks to Ulrich Seidl for his bug report). 13. Numerous further improvements and minor bug fixes. What was new in Tablelist 6.2? ------------------------------ 1. Added the "-labelvalign" column configuration option, for controlling the vertical alignment of header label images (thanks to Johann Oberdorfer for his proposal). 2. The "collapse" and "expand" subcommands now accept a list of indices as first argument (thanks to Ulrich Seidl for his proposal). This is much more efficient than a series of invocations for individual rows. 3. Significantly improved the overall performance of tablelist widgets containing a tree structure, embedded images, or multi-line cells (thanks to Ulrich Seidl for reporting some performance-related issues in tree widgets). 4. Important improvements related to the scanning performance and behavior (thanks to Johann Oberdorfer for discussions on this subject). 5. Changed the default arrow style "flat7x5" to "flat8x4" on the windowing system "x11" and for the tile themes "alt", "clam", "default", "kroc", "sriv", "srivlg", and "step" (POTENTIAL INCOMPATIBILITY!). 6. The manual now recommends managing the vertical scrollbar (if any) to appear below the header labels with the aid of the "cornerpath" subcommand not only for Mac OS X Aqua but also for X11. The demo scripts have been adapted accordingly. 7. Fixed two minor bugs related to the interactive cell editing with the aid of the ctext widget (thanks to Sait Dogru for his bug report). 8. Fixed a long-standing bug related to the handling of the "-listvariable" option in connection with snit widgetadaptors (thanks to Rolf Ade for his bug report). 9. Several further code improvements and minor bug fixes (thanks to Alexandru Dadalau and Bernhard Wallner for their bug reports). What was new in Tablelist 6.1? ------------------------------ 1. Added the "-imagebackground" cell configuration option, useful for embedded images having (partially) transparent regions (thanks to Jose Luis Lijo for his proposal). 2. Extended the description of the "bodytag" subcommand in the reference manual by examples showing how to register the body of a tablelist widget as a drag source in such a way that the drag works also for the separators, multi-line cells, and embedded images. 3. Eliminated a regression related to both temporarily and persistently embedded Tk checkbuttons on Windows, introduced in the previous Tablelist version (thanks to Johann Oberdorfer, Jyrki Majamaeki, and Ralf Fassel for their bug reports). What was new in Tablelist 6.0? ------------------------------ 1. Added support for header items (aka title rows) with the aid of the new "header", "headerpath", and "headertag" subcommands. The first one supports a great number of subcommands itself, like "insert(list)", "delete", "size", "rowconfigure", "cellconfigure", "get(formatted)", "get(formatted)cells", etc. (thanks to Hemang Lavana, Kenneth Green, and Ralf Fassel for their proposals). The demo scripts "embeddedWindows.tcl" and "embeddedWindows_tile.tcl" now contain invocations of "header insert" and "header rowconfigure". 2. Added the "embed(ttk)checkbutton" and "embed(ttk)checkbuttons" subcommands, which provide interactive cell editing with the aid of persistently embedded checkbuttons (thanks to Mark Garvey and Holger Jakobs for their proposal). The Tablelist Programmer's Guide now contains an example of usage of the "embedcheckbuttons" subcommand. 3. Compatibility with the revised implementation of the text widget, which will be contained in Tk 8.7 (thanks to Brad Lanam, Gregor Cramer, and Francois Vogel for their valuable assistance). 4. The "dicttoitem" and "itemtodict" subcommands are now supported in the presence of alternative, Tcl-only "dict" implementations, too (thanks to Andy Goth for his proposal). 5. Deleting all items has become by orders of magnitude faster (thanks to Martin Lemburg for requesting this performance improvement). 6. Guarded against invocations of the "update" command from within the command specified as the value of the "-tooltipaddcommand" option (thanks to Alexandru Dadalau for his bug report and discussions on this subject). 7. Made sure that the "xview" and "yview" subcommands work as expected even if the script was started from wthin a C application in which the decimal point is different from "." (thanks to Paul Obermeier for his bug report). 8. Numerous further improvements in the code, demo scripts, and documentation. What was new in Tablelist 5.18? ------------------------------- 1. Improved the performance of the vertical scrolling (thanks to Alexandru Dadalau and Olivier Jolet for discussions on this subject). 2. Added the "-displayondemand" configuration option, which can be used to speed up the scrolling even further. 3. Added the "tablelist::delaySashPosUpdates" command (described in the manual page "Commands Related to Binding Scripts"), designed to control the frequency of the sash position updates for a given panedwindow widget, which might be necessary to eliminate some artifacts if some of the panes contain tablelist widgets with embedded images (thanks to Nicolas Robert for his input). 4. Added support for the themes "Arc" and "clearlooks"; updated the support for the themes "Aquativo", "blue", "clam","keramik", "keramik_alt", and "plastik". 5. Extended the reference manual by the description of an important use case for the "-formatcommand" column configuration option, related to tablelist columns whose "-sortmode" option was set to "integer" or "real" (thanks to Alexandru Dadalau for discussions on this subject). 6. Fixed a bug related to retrieving the current cell selection (thanks to Alexandru Dadalau for his bug report). 7. Fixed a bug related to excluding the "dicttoitem" and "itemtodict" subcommands for Tk 8.4 and earlier (thanks to Andy Goth for his bug report). 8. Numerous further improvements in the code, demo scripts, and documentation. What was new in Tablelist 5.17? ------------------------------- 1. Added the tree styles "arc", "blueMenta", "menta", "ubuntuMate", and "ubuntu3", inspired by the Arc icon theme (of the GTK 2/3 theme Arc) and some GTK 3 themes of the latest versions of the MATE desktop and Ubuntu Linux distribution, respectively. 2. Added the "dicttoitem" and "itemtodict" subcommands (thanks to Denis Rheault for his proposal). 3. Support for the new virtual event <>, generated when the tablelist widget has finished updating its view (thanks to Martyn Smith for his proposal). 4. Added the boolean variable tablelist::strictTk, which controls the strict listbox-compatibility of the default bindings. If its value is false (which is the default) then now toggles the selection state of the item or element under the mouse in all selection modes, and and toggle the selection state of the active item or element (thanks to Alexandru Dadalau for discussions on a related subject). 5. The default bindings on X11 and Windows now support the keyboard shortcuts and as alternatives to the key sequences (for "Select All") and (for "Deselect All") (thanks to Juge, Alexandru Dadalau, Christian Gollwitzer, Rich, and Andreas Leitgeb for discussions on a related subject). 6. Improvements related to vertical scrolling, especially in the presence of embedded images or multi-line elements (thanks to Olivier Jolet for discussions on this subject). 7. Improvements in the documentation (thanks to Adam Jensen for his input). What was new in Tablelist 5.16? ------------------------------- 1. Added the "-autofinishediting" configuration option, relevant for interactive cell editing via a combobox or menubutton widget (thanks to Alexandru Dadalau for his proposal). 2. On Windows Vista, 7, 8, and 10, the sort arrows are now shown horizontally centered in the header labels and attached to their top edges. 3. Added the arrow style "photo7x4" as well as its automatically scaled versions "photo9x5", "photo11x6", and "photo15x8", used as defaults on Windows Vista, 7, and 8. 4. Added the tree style "mint2", suiting version 18 of the Linux Mint distribution. 5. Support for fully qualified edit window names of the form "::ttk::*" (thanks to Adrian Medrano Calvo for his proposal). 6. Worked around a text widget issue introduced in Tk 8.6.6 (thanks to Peter Spjuth, Harald Oehlmann, and Rene Zaumseil for their valuable input). 7. Improvements related to the "move" and "movecolumn" subcommands as well as to the management of the images used in sort arrows (thanks to Adrian Medrano Calvo and Torsten Berg for their proposals). 8 Drastically increased the speed of the "collapse" and "collapseall" subcommands with the "-fully" option (thanks to Ulrich Seidl for reporting the poor performance of "collapseall -fully"). 9. Adapted the implementation of the "delete" subcommand to the changed text widget behavior in Tk 8.6.5 (thanks to Ulrich Seidl for his bug report). 10. Fixed a bug related to the "curcellselection" subcommand (thanks to Juge for his bug report). What was new in Tablelist 5.15? ------------------------------- 1. Support for Windows 10, including the new tree style "win10", whose size is automatically adapted to the display's scaling level. 2. Added the arrow styles "flatAngle11x6" and "flatAngle15x8", needed for automatic scaling of the default arrow style "flatAngle7x4" on Windows 10. 3. The variable "tablelist::scalingpct", used by Tablelist when adapting the sizes of several tree styles to the display's DPI scaling level, is now documented in Tablelist Programmer's Guide. 4. Worked around a text widget bug introduced in Tk 8.5.18 and 8.6.4 (fixed for the next Tk versions). 5. Fixed a bug that prevented the subcommands "see end", "see last", and "yview moveto 1" from working as expected if the tablelist widget contains multi-line cells or large images (thanks to Harald Oehlmann for his bug report and to Francois Vogel for discussions on this subject). What was new in Tablelist 5.14? ------------------------------- 1. Added the "-colorizecommand" configuration option, enabling you to change the colors of arbitrary character regions within the cells of the currently visible tablelist rows (thanks to Peter Spjuth for his proposal). 2. The "curcellselection" and "curselection" subcommands now accept an optional argument with the possible values "-all", "-nonhidden", and "-viewable" (thanks to Will Duquette for his proposal). 3. Added the tree styles "plain1", ..., "plain4", "bicolor1", ..., "bicolor4", and "classic1", ..., "classic4", suitable for use with large fonts and images (needed on high-resolution displays). In addition, the sizes used by the tree styles "vistaAero", "vistaClassic", "win7Aero", and "win7Classic" are now automatically adapted to the display's scaling level (thanks to Harald Oehlmann for his proposal). 4. On Windows Vista and later, automatic scaling is now performed for the default arrow style, too. This made is necessary to add the arrow styles "flat11x6" and "flat15x8". 5 Added the arrow style "flat8x4" and the tree style "ubuntu2", suiting version 15.04 of the Ubuntu Linux distribution. Similarly, added the tree style "yuyo", inspired by the GTK+ theme Yuyo on Ubuntu MATE. 6. Changed the default arrow color "" and arrow style "sunken10x9" to "black" and "flat7x5" on the windowing system "x11" and for the tile themes "alt", "clam", "default", "kroc", "sriv", "srivlg", and "step" (POTENTIAL INCOMPATIBILITY!). 7. In case of "-selecttype cell", the row containing the active cell is now displayed with raised relief (thanks to Holger Jakobs for his proposal). 8. Guarded against invocations of the "update" command from within binding scripts associated with the <> virtual event (thanks to Martyn Smith for his bug report and discussions on this topic). 9. Worked around some unexpected events in certain X11 environments, which prevented Tablelist 5.13 from starting the interactive cell editing in such environments (thanks to Toni Giorgino for his bug report and helping me to reproduce this problem). What was new in Tablelist 5.13? ------------------------------- 1. Added support for Mac OS X 10.10 (Yosemite) (thanks to Kevin Walzer for his proposal). 2. Renamed the four arrow styles having the shape of an angle from "flat7x5", ..., "flat10x6" to "flatAngle7x5", ..., "flatAngle10x6" (POTENTIAL INCOMPATIBILITY!); added the arrow styles "flat7x5", "flat9x6", "flatAngle7x4" (which is now the default on Yosemite), "flatAngle9x5", and "flatAngle10x7". 3. Added the tree style "mate", inspired by a few GTK+ themes of the MATE desktop. 4. Added the "-showeditcursor" configuration option, used to let the cursor take on the shape of a pencil whenever a mouse click would start an editing session (thanks to Rene Zaumseil and Cesare Bavazzano for their proposals). 5. New column configuration option "-changetitlesnipside", which allows you to override the alignment-specific default snip side for the column's title (thanks to John Vella for his proposal). 6. Support for the word "last" as row, column, cell, or child index, indicating the last row/column/cell of the tablelist or the last child of a given parent node (remember that the meaning of "end" as a row, column, or child index is subcommand-specific). 7. The description of the "imagelabelpath" subcommand in the reference manual now contains an example showing how to define bindings for the embedded images. 8. Eliminated the endless loop generated by the "yview" subcommand when synchronizing two or more tablelist widgets (thanks to Paul Obermeier for his bug report). What was new in Tablelist 5.12.1? --------------------------------- This is a bugfix-only release. The corrected files in the "scripts" directory are "tablelistEdit.tcl" and "tablelistUtil.tcl". 1. Appended the missing 4th argument to the two invocations of the procedure "tablelist::moveOrActivate" in the file "tablelistEdit.tcl" (thanks to Patrick Fradin and Ralf Fassel for their bug reports). 2. Fixed a typo in the file "tablelistUtil.tcl" (thanks to Patrick Fradin for reporting this bug). What was new in Tablelist 5.12? ------------------------------- 1. Added the "-customdragsource" configuration option, used to indicate whether the tablelist widget is a drag source for some drag & drop implementation other than TkDND and the drag & drop framework included in BWidget. 2. Improvements and extensions in the default binding scripts. Besides providing full compatibility with the Tk listbox, they now perform an automatic drag-friendly handling of the selection and of pointer movements with mouse button 1 down if the "-customdragsource" option was set to true or the tablelist's body was registered as a TkDND or BWidget drag source (thanks to Will Duquette for his proposal). The same holds true for the local drag & drop via the "move" subcommand. 3. Added the "hidetargetmark", "showtargetmark", "targetmarkpath", and "targetmarkpos" subcommands, for enhanced drop target support (thanks to Trevor Williams for his proposal). 4. Added a "Drag & Drop Support" section to the reference manual, with examples demonstrating the use of the new subcommands mentioned above in a tablelist widget registered as a TkDND or BWidget drop target. 5. The visibility of the horizontal separator placed just below the last tablelist row if the value of the "-showseparators" option is true and that of the "-fullseparators" option is false, can now be controlled with the aid of the new "-showhorizseparator" configuration option (thanks to Martyn Smith for his proposal). 6. New values "flat5x3" and "flat5x4" for the "-arrowstyle" configuration option, suiting current versions of the Ubuntu Linux distribution. 7. Adapted the look & feel of the tree styles "adwaita", "ubuntu", and "mint" to current versions of the GTK+ 3 theme Adwaita and of the Linux distributions Ubuntu Linux and Linux Mint, respectively. 8. Fixed a long-standing bug related to horizontal scrolling in an empty tablelist widget with positve "-titlecolumns" value (thanks to Ulrich Seidl for his bug report). What was new in Tablelist 5.11? ------------------------------- 1. Added the "findrowname" and "findcolumnname" subcommands (thanks to Adrian Medrano Calvo for his proposal and discussions on this subject). 2. Collapsing a row no longer leads to renumbering the lines for the purpose of updating a column configured to display the line numbers (thanks to Will Duquette for his proposal). 3. For improved appearance, if the value of the "-showseparators" option is true and that of the "-fullseparators" option is false, then a horizontal separator is now placed just below the last tablelist row (thanks to Allan Silverstein for his proposal). 4. Worked around a peculiarity of Tk on Windows, which caused problems when resizing the tablelist window in the presence of embedded images or multi-line elements (thanks to Will Duquette for his bug report). 5. Added the missing actualization of the active and anchor row indices after moving an item to a different position (thanks to Will Duquette for his bug report). 6. Fixed two bugs in Tablelist_tile, related to header labels with embedded images (thanks to Ulrich Seidl for his bug reports). 7. Numerous further improvements in the code and documentation. What was new in Tablelist 5.10? ------------------------------- 1. Added the "-acceptdropcommand" configuration option, used to control whether the local drag & drop may move a specified item just before a given row (thanks to Nagu and Georgios Petasis for discussions on this subject). 2. Added the "-instanttoggle" configuration option, related to the cell editing with the aid of a Tk or tile checkbutton (thanks to Rich Wellner for his proposal and discussions on this topic). 3. Added the "-tight" configuration option, used to eliminate the one-pixel additional space left below each tablelist row for Tk listbox compatibility (thanks to Koen Breugelmans for his proposal and discussions on this subject). 4. Added the "isviewable" and "viewablerowcount" subcommands (thanks to Nagu for proposing the latter). 5. Improvements related to the value of the "-data" option for the virtual events <> and <> (thanks to Georgios Petasis for discussions on this topic). 6. The item deletion has become significantly faster, especially in tablelists used as tree widgets and in the presence of embedded images and/or multi-line elements (thanks to Rob Ratcliff and Rene Zaumseil for requesting this performance improvement). 7. Guarded against column deletions from within non-default binding scripts for the header labels (thanks to Ulrich Seidl for his input). 8. Restored the support for Tcl/Tk versions earlier than 8.3, by cleaning up the use of elided text in the underlying text widget. Similarly, restored the support for Tcl/Tk 8.0, by cleaning up the use of "regsub" and that of the event (thanks to Joerg Mueck for reporting the first two issues). 9. Improved the package loading mechanism (thanks to Paul Obermeier for his bug report). 10. Guarded against potential item insertions or deletions from within the command specified as the value of the "-editendcommand" option (thanks to Julian H J Loaring for his bug report). 11. Guarded against deletion of embedded images or windows from within the command specified as the value of the "-tooltipaddcommand" option (thanks to Jan Kandziora for his bug report). 12. Fixed a bug related to column deletion if the "-selecttype" option has the value "cell" (thanks to Ulrich Seidl for his bug report). 13. Several further code improvements and minor bug fixes. What was new in Tablelist 5.9? ------------------------------ 1. Added the "-valign" column and cell configuration option, for controlling the vertical alignment of embedded images and windows (thanks to Trevor Williams for his proposal). 2. The "-stripebackground" and "-stripeforeground" options can now be specified at column level, too (thanks to Christian Gollwitzer for his proposal). 3. Improvements related to the Windows 7 platform. 4. Worked around a text widget bug in Tk versions 8.5 and later, related to getting the index of the last line in the window if some of the lines are elided (thanks to Bernhard Wallner for his bug report). 5. Corrected a typo in the implementation of the "rowconfigure" subcommand, introduced in the last Tablelist version (thanks to Jerzy Witkowski for reporting this bug). 6. Fixed a bug related to resetting the "-(select)background" and "-(select)foreground options at column, row, and cell levels, introduced in the previous Tablelist version (thanks to Christian Gollwitzer for his bug report). 7. Several further improvements in the code, demo scripts, and documentation. What was new in Tablelist 5.8? ------------------------------ 1. Support for interactive cell editing with the aid of the ctext widget (thanks to Sait Dogru for his proposal). 2. Added the "canceledediting" subcommand (thanks to Martyn Smith for his proposal). 3. The "selection" and "cellselection" subcommands have become by orders of magnitude faster (thanks to Jean-Francois Beaud for his input that motivated me to speed up these subcommands). 4. The "-(select)background" and "-(select)foreground options at column, row, and cell levels now impose by far less performance penalty than in earlier Tablelist versions. 5. The keyboard traversal during interactive cell editing is now aware of changes like appending a new row, performed by the procedure specified as the value of the "-editendcommand" configuration option (thanks to Andreas Leitgeb for his proposal). 6. For Tk versions 8.5 or later, most virtual events are now generated with the "-data" option set to a suitable event-specific value (thanks to Christian Gollwitzer, Andreas Leitgeb, and Nagu for their proposals). 7. Improvements related to the selection mode "extended". 8. Worked around a peculiarity of Tk on Windows, related to deleting an embedded window while resizing a text widget interactively (thanks to Harald Oehlmann for his bug report and discussions on this topic). 9. Eliminated a regression introduced in Tablelist version 5.6, related to vertical scrolling under Tk 8.5 or later in the presence of embedded images or windows (thanks to Patrick Fradin for reporting this bug). 10. Fixed a screen refresh problem introduced in Tablelist version 5.6, related to wrapped multiline elements (thanks to Rob for his bug report). 11. Further code improvements (thanks to Harald Oehlmann for his valuable contribution). 12. Added a "Virtual Events" section to the reference manual (thanks to Andreas Leitgeb for his proposal). What was new in Tablelist 5.7? ------------------------------ 1. Added the "cellbbox" subcommand. 2. Added the "editinfo" subcommand (thanks to Trevor Williams for his proposal). 3. Adapted the tree styles "ubuntu" and "mint" to the latest Ubuntu Linux and Linux Mint releases. 4. Minor change related to the ttk::combobox widget used as edit window (thanks to Julian H J Loaring for his input). 5. Improved the multi-platform support by increased use of virtual events. 6. Worked around a bug in some earlier Tk versions, related to checkbuttons without indicator (thanks to Allan Silverstein for his input). 7. Restored the support for Tcl/Tk versions earlier than 8.4, which has been broken since the previous Tablelist release, due to the use of the "namespace exists" command, introduced in Tcl 8.4 (thanks to Ralf Fassel for drawing my attention to this issue). 8. Fixed a copy & paste bug related to embedded windows, introduced in the previous Tablelist version (thanks to Heng Li and David Hanks for their bug reports). 9. Fixed a long-standing bug related to the "cancelediting" subcommand and the "-forceeditendcommand" option (thanks to Julian H J Loaring for his bug report). 10. Fixed a long-standing minor bug that caused the "-labelbg" column configuration option to be accepted by Tablelist_tile, contrary to the option of the same name at widget level (thanks to Bernhard Wallner for his bug report). 11. Several further improvements in the code and demo scripts (thanks to Patrick Fradin for his valuable contribution and to Marianne Baumann for her input related to the "-showlabels" option). What was new in Tablelist 5.6? ------------------------------ 1. Added the tree styles "adwaita", "mint", and "ubuntu", inspired by a few GTK+ 3 themes on popular Linux distributions. 2. Added the "-windowupdate" cell configuration option (thanks to Trevor Williams for his valuable contribution). 3. The item insertion and sorting have become significantly faster, especially when using static-width columns. 4. Embedded windows are now hidden during interactive cell editing (thanks to Trevor Williams for discussions on this subject). 5. Extended the support for the "tileqt" theme to work on KDE 4, too. 6. Improvements in the documentation (thanks to Glenn Herteg for his proposal). 7. Guarded against the case that a tablelist widget is deleted and its name is reused for a widget of a different class (thanks to Roger Niva for his valuable input). 8. Guarded against scripts that start by destroying all children of the root window (thanks to Helmut Giese and Gerhard Kraus for drawing my attention to this case). 9. Fixed two bugs related to the "move" subcommand, introduced in Tablelist version 5.2 (thanks to "DrS" and Trevor Williams for their bug reports). 10. Several further improvements and minor bug fixes. What was new in Tablelist 5.5? ------------------------------ 1. Hidden tablelist elements are no longer excluded from the selection (thanks to Martyn Smith for his proposal). (They are, however, ignored when exporting the selection.) 2. Added the "cornerpath" and "cornerlabelpath" subcommands. The first one makes it quite easy to respect the native Mac OS X look & feel, where the vertical scrollbar appears placed under the header (thanks to Torsten Berg for a related page on the Wiki, which provided me the idea for these subcommands). The "cornerpath" subcommand is now used in all demo scrips that contain vertical scrollbars. 3. Added support for the appearance-related changes introduced in Mac OS X 10.7 (Lion). 4. On Mac OS X Aqua, the default values of the "-move(column)cursor" and "-resizecursor" options are now native cursors. Besides improving the look & feel of tablelist widgets on the Mac, this change also works around the problem that on Mac OS X 10.7, Tk versions 8.5 and 8.6 can only use native and native-mapped cursors. 5. Removed the "-labelbackground" option from Tablelist_tile, because current versions of the tile engine no longer support setting the background color for the header labels (and even with earlier tile versions, some themes ignored any attempt to change the background color of the header labels). 6. Adapted the code to some changes in current tile versions, to make sure that in disabled state the tile-based column labels will appear in the theme-specific disabled foreground color, as it was the case with earlier tile versions (thanks to "tombert" for his related posting on comp.lang.tcl). 7. Improved a few binding scripts (thanks to Ulrich Seidl for his bug report and testing). 8. Fixed a bug related to embedded windows in a tablelist used as a tree widget (again, thanks to Ulrich Seidl for his bug report and testing). 9. Several further improvements in the code, demo scripts, and documentation. What was new in Tablelist 5.4? ------------------------------ 1. Added the "-populatecommand" configuration option, used by the "searchcolumn" subcommand to insert child items on demand before checking whether they contain the specified pattern. 2. Added the "-autoscan" configuration option, which can be used to deactivate the automatic scrolling triggered by leaving the tablelist window with mouse button 1 down, in order to avoid any conflicts with drag & drop via tkdnd (thanks to Patrick Fradin for his valuable contribution). 3. New "isexpanded" subcommand. 4. New value "flat9x6" for the "-arrowstyle" configuration option. 5. Adapted the tree style "oxygen2" to the look of current KDE 4 versions. 6. Worked around some peculiarities of Tk on Mac OS X Aqua (thanks to Torsten Berg for his problem report and discussions on this topic). 7. Improved the check for PNG support in Tk (thanks to Ian Gay for his posting on the Wiki related to this subject). 8. Fixed a bug related to the tree style "aqua", introduced in Tablelist version 5.3 (thanks to Julian H J Loaring for his bug report). 9. Numerous further improvements in the code and documentation. What was new in Tablelist 5.3.1? -------------------------------- This release contains just one bug-fix and an enhancement: 1. Fixed a bug related to the "-hide" row configuration option, introduced in the previous Tablelist version (thanks to Ralf Fassel and Michal Sosnowski for their bug reports). 2. Extended the support for the native "Aqua-blue" background for the header label of the sort column (which in the previous Tablelist release was restricted to Tk versions 8.6 and above) to the Cocoa- based Tk patch levels 8.5.9 and above (thanks to Kevin Walzer for discussions on this topic and to Paul Obermeier for enabling me to access the ActiveTcl 8.5.8 distribution for the Mac). What was new in Tablelist 5.3? ------------------------------ 1. The interactive row move operation (i.e., local drag & drop) now supports moving an item outside its parent and dropping it under another item as a child (thanks to Dr. Detlef Groth for his proposal, thorough testing, and discussions on this topic). 2. Added the "-acceptchildcommand" configuration option, related to the local drag & drop. 3. New "searchcolumn" subcommand, supporting a rich set of options (thanks to Matthew Callaghan, Adrian Davis, and Jeff Godfrey for their proposals). 4. New "getformatted", "getformattedcolumns", and "getformattedcells" subcommands. 5. Support for interactive cell editing with the aid of the Tk core and tile menubutton widgets (thanks to Georgios Petasis for his proposal). 6. Support for the row indices "top" and "bottom" (thanks to Julian H J Loaring and Paul Obermeier for their proposals). Likewise, support for the column indices "left" and "right". 7. New value "photo7x7" for the "-arrowstyle" configuration option, needed for the "aqua" theme. 8. Adapted the appearance of tablelist widgets on the Macintosh to current versions of OS X Aqua. 9. Numerous further improvements and minor bug fixes. What was new in Tablelist 5.2? ------------------------------ 1. Added the "-fullseparators" configuration option (thanks to Kevin Partin, Martyn Smith, and Harald Oehlmann for their proposals). 2. Added the tree styles "ambiance", "dust", "dustSand", "newWave", "plastik", and "radiance". 3. The implementation of the "collapse(all)" and "expand(all)" subcommands no longer makes use of the "-hide" row configuration option, hence you are now free to set the latter (via "rowconfigure", "configrowlist", "configrows", or "togglerowhide"), regardless of whether the tablelist widget displays a tree hierarchy or just a plain list. 4. The "move" subcommand now supports moving an item outside its parent. 5. Deleting the whole content of a tablelist widget has become significantly faster (thanks to Harold Campbell for his input). 6. Worked around a peculiarity of the text widget related to tag handling when deleting a range of lines from its end (thanks to Batox for his bug report). 7. Minor improvements and bug-fixes in the binding scripts (thanks to Bernhard Wallner, Batox, and Roger Niva for their bug reports). 8. Fixed a bug related to the "-selecttype cell" configuration option, (re)introduced in Tablelist version 5.0 (thanks to Harold Campbell and Dietmar Mueller for their bug reports). 9. Fixed a bug related to row hiding via "configrowlist" or "configrows", introduced in Tablelist version 5.0 (thanks to Michal Sosnowski for his bug report). 10. Fixed a long-standing bug related to tooltip support (thanks to Trevor Williams for his bug report). 11. Several further improvements and minor bug fixes. What was new in Tablelist 5.1? ------------------------------ This is a bugfix-only release. The corrected files in the "scripts" directory are "tablelistBind.tcl", "tablelistSort.tcl", "tablelistUtil.tcl", and "tablelistWidget.tcl". 1. Fixed a bug related to item deletion, introduced in the previous Tablelist version (thanks to Aric Bills and Roger Niva for their bug reports). 2. Fixed a bug related to multi-column sorting, introduced in the previous Tablelist version (thanks to Albrecht Mucha for his bug report). 3. Fixed a long-standing bug related to column deletion (thanks to Liang Sian Yin for his bug report). 4. Fixed a few further minor bugs and typos, introduced in the previous Tablelist version (thanks to Patrick Fradin, Roger Niva, Harald Oehlmann, and Peter Spjuth for their bug reports). What was new in Tablelist 5.0? ------------------------------ 1. A tablelist widget is now not only a multi-column listbox, but also a multi-column tree widget (thanks to Sebastien Barre, Tillmann Basien, Jos Decoster, Dr. Detlef Groth, Kai Morich, Georgios Petasis, and Kevin Walzer for their proposals, as well as to Paul Obermeier for testing the preliminary version). This is achieved with the aid of the new configuration options "-collapsecommand", "-expandcommand", "-treecolumn", and "-treestyle", along with the new subcommands "childcount", "childindex", "childkeys", "collapse", "collapseall", "depth", "descendantcount", "expand", "expandall", "expandedkeys", "insertchild(ren)", "insertchildlist", "noderow", "parentkey", and "toplevelkey". 2. Added the "-editselectedonly" configuration option, related to starting the interactive cell editing with mouse button 1 (thanks to Julian H J Loaring for discussions on this topic). 3. New values "flat6x4", "flat9x7", and "flat10x6" for the "-arrowstyle" configuration option. 4. New value "asciinocase" for the "-sortmode" column configuration option. 5. New subcommands "applysorting", "getfullkeys", and "refreshsorting". 6. Two new demo scripts (and their tile-based counterparts) illustrating the use of a tablelist as multi-column tree widget. 7. The subcommands "insert", "insertlist", "insertchild(ren)", and "insertchildlist" now return the list of full keys corresponding to the items just inserted. 8. Fixed a long-standing bug related to the "-labelfont" option (thanks to Jacek Jendrysik for his bug report). 9. Fixed a bug related to the "-text" column configuration option (thanks to Paul Obermeier for his bug report). 10. Fixed a long-standing bug related to embedded windows in right- aligned columns (thanks to Jerzy Witkowski for his bug report). 11. Numerous further improvements in the code and documentation. What was new in Tablelist 4.12? ------------------------------- 1. Added the "labeltag" subcommand and the helper command "tablelist:: getTablelistColumn", designed to be used in non-default binding scripts for the header labels. 2. Support for interactive cell editing with the aid of the tile spinbox widget. The demo script "tileWidgets.tcl" now uses this widget when available. 3. Support for interactive cell editing with the aid of the new mentry widget for IPv6 addresses. 4. Improved the support for Windows Vista and added explicit support for the "vista" theme. 5. Updated the support for the themes "plastik" and "keramik"; added support for the "keramik_alt" theme. 6. Support for the native "Aqua-blue" background, set for the header label of the sort column (thanks to Kevin Walzer for his proposal and valuable contribution). For technical reasons, this feature is only supported for Mac-Tk versions using Cocoa. 7. Further improvements in the support for Mac OS X Aqua (thanks to Daniel Steffen and Kevin Walzer for their valuable feedback). 8. Improvements in the binding scripts related to interactive cell editing (thanks to Hadas Porat for discussions on this subject). 9. The binding for the event in the resize area of a column header now works as expected for large lists, too. 10. Eliminated a minor regression related to interactive cell editing, introduced in the previous Tablelist version (thanks to Kai Morich for his valuable input). 11. Fixed a small bug related to interactive cell editing with the aid of a text widget (thanks to Bryan Oakley for his bug report and valuable suggestion). 12. Fixed a long-standing bug related to the "-listvariable" option in disabled state (thanks to Ralf Fassel for his bug report). 13. Added a version-related hint to the "How to use it?" section of the Tablelist Programmer's Guide. What was new in Tablelist 4.11? ------------------------------- 1. Added the "-columntitles" configuration option, which is mainly a simplified form of the "-columns" option (thanks to Roy Terry for his proposal). 2. Added the virtual events <> and <>, generated after toggling the hidden state of a column or row, respectively (thanks to Jeff Godfrey for his proposal). 3. Besides with , the optimal column width can now be set with in the resize area of the column's header. Similarly, the effect of can also be achieved with in the column label's resize area. 4. Support for Windows Vista (thanks to Jeremy Cowgar for his input). 5. The recommended package name is now "tablelist" rather than "Tablelist", for compatibility with the ActiveTcl distribution; the demo scripts have been changed accordingly. 6. Made sure that the "-tooltipdelcommand" configuration option won't affect other widgets (thanks to Jeff Godfrey for drawing my attention to this issue). 7. Fixed a long-standing nasty bug related to the "yview" subcommand (thanks to Nestor Patino for his bug report and very helpful example script). 8. Fixed two bugs related to the "-listvariable" configuration option (again, thanks to Nestor Patino for his valuable input). 9. Fixed a bug related to the item deletion when using Tcl/Tk 8.5 (thanks to Jos Decoster and Sven Wuytack for their valuable contribution to finding and fixing this bug). 10. Fixed a bug related to the "-windowdestroy" cell configuration option, introduced in Tablelist 4.9 (thanks to Sebastien Barre for his bug report). What was new in Tablelist 4.10? ------------------------------- 1. Support for individual binding scripts controlling the interactive cell editing, with the aid of the new "editwintag" subcommand (thanks to Oscar Fuentes for his valuable input). 2. Complemented the "attrib" subcommand with the new subcommands "hasattrib" and "unsetattrib". 3. Support for column-, row-, and cell-specific attributes, with the aid of the new subcommands "columnattrib", "hascolumnattrib", "unsetcolumnattrib", "rowattrib", "hasrowattrib", "unsetrowattrib", "cellattrib", "hascellattrib", and "unsetcellattrib". 4. Support for interactive cell editing with the aid of the new mentry widget of type "DateTime", introduced in version 3.2 of the Mentry package (thanks to Florian Murr for his proposal). 5. Made sure that the default bindings are set up immediately when loading the package, prior to creating any tablelist widget (thanks to Schelte Bron for his proposal and discussions on this topic). 6. Re-established the support for tile widgets as edit windows in non- tile-based tablelist widgets (again, thanks to Schelte Bron for reporting that this was broken in the last few Tablelist versions). 7. Adapted the handling of the tile checkbutton as edit window in the "xpnative" theme to some changes made in tile 0.8 (thanks to Jeff Godfrey for his bug report). 8. Guarded against potential widget deletion from within user-defined binding scripts or "update (idletasks)" (thanks to Schelte Bron and Jan Kandziora for their bug reports). 9. Updated the (very rarely needed) distribution file "repair.tcl" to work with current Tablelist versions (thanks to Robert Stollf for his bug report). 10. Corrected the description of the "-height" option in the reference manual (thanks to Glenn Herteg for his bug report concerning the case "-height 0"). 11. Improved the color handling in the "disabled" state (thanks to Rolf Ade for his bug report and discussions on this topic). 12. Made the handling of elided text more robust (thanks to Jos Decoster for his bug report and valuable contribution). 13. Several further improvements and minor bug fixes (thanks to Albrecht Mucha for his valuable input). What was new in Tablelist 4.9? ------------------------------ 1. Added the "-wrap" column configuration option, which makes it possible to display long texts in word-wrapped multi-line rather than snipped form (thanks to Alexander Schoepe and Anant Adke for their proposals). Also, added support for interactive cell editing with a word- or char-wrapped text widget when using Tk 8.5 (thanks to Juberi Rajib for discussions on this topic). 2. Support for dynamic-width embedded windows, with the aid of the new "-stretchwindow" cell configuration option (thanks to Kurt Kurczyk, Bryan Oakley, and Rasmus Debitsch for their proposals). The demo script "embeddedWindows.tcl" and its tile-based counterpart now make use of this option. 3. New "formatinfo" subcommand, returning information about the cell whose content is being formatted by a command specified as the value of the "-formatcommand" column configuration option (thanks to Goran Ivankovic and Sebastien Barre for their proposals). 4. Changed the default value of the "-activestyle" configuration option from "underline" to "frame" and that of the "-setfocus" option from 0 to 1, making them conform to similar changes in Tk 8.5 related to the listbox widget. 5. Improved the appearance of the header labels for the "aqua" theme (thanks to Torsten Berg for discussing this topic on the Wiki). 6. Eliminated the potential invocation of the "unknown" command from within the Tablelist code (thanks to Roger Niva for discussions on this topic). 7. When starting the interactive cell editing with the aid of a combobox widget, the list associated with the latter is only dropped down if the combobox is read-only (thanks to Bryan Oakley for his proposal). 8. The "setThemeDefaults" command no longer throws an error if the current theme is not explicitly supported by Tablelist. Instead, it uses the options set by the current theme and falls back to the "default" one for the rest (thanks to Schelte Bron for his valuable contribution). 9. Improved the tablelist widget's appearance when the header labels are not shown (thanks to Mark Garvey for his input). 10. Fixed two bugs related to the optimized item insertion (thanks to Harold Campbell and Bryan Oakley for their bug reports). 11. Fixed a bug related to the "-showlinenumbers" column configuration option (thanks to Martin Lemburg for his bug report). 12. Several further improvements and minor bug fixes. What was new in Tablelist 4.8? ------------------------------ This release fixes a few nasty bugs related to the optimized item insertion, introduced in the previous Tablelist version (thanks to Harold Campbell, Roger Niva, and Joerg Klingseisen for their bug reports). What was new in Tablelist 4.7? ------------------------------ 1. Significant performance improvements related to the "insert", "rowconfigure", "sort", "sortbycolumn", and "sortbycolumnlist" subcommands (thanks to Harold Campbell for his valuable contribution to speeding up the item insertion). The extent of the speed-up depends on the configuration options present at column, row, and cell levels. 2. Support for cell- and column label-specific balloon help, with the aid of the new configuration options "-tooltipaddcommand" and "-tooltipdelcommand". 3. New subcommands "iselemsnipped" and "istitlesnipped", which make it very easy to display the full cell texts and column titles as tooltips for cells and header labels with snipped contents. 4. New subcommands "configcolumnlist", "configcolumns", "configrowlist", "configrows", "configcelllist", and "configcells", which allow you to configure several columns/rows/cells with a single command invocation (thanks to Harold Campbell, Jeff Godfrey, and Paul Obermeier for their proposals). 5. Worked around some performance problems regarding the "switch" command in Tcl 8.5a6/8.5b1 and ActiveTcl 8.4.14. 6. Made sure that ActiveState's "style::as" package won't break the mousewheel bindings (thanks to Michael Schlenker for drawing my attention to this problem). 7. Improved the focus handling when resizing a column interactively (thanks to Jorge Enderr for his bug report). 8. Corrected a typo in the adaptation of vertical scrolling to the text widget changes made in Tk 8.5 (thanks to Julian M Noble for his posting on the Wiki related to this subject). 9. Fixed a bug related to hidden rows when having "-selecttype cell", introduced in Tablelist version 4.3 (thanks to Harold Campbell for his bug report and discussions on this subject). 10. Fixed a bug in the "cellconfigure" subcommand, introduced in the previous Tablelist release (thanks to Roy Terry for reporting this problem on the Wiki). 11. Fixed a bug in the "-changesnipside" option (thanks to Kai Morich for his bug report). 12. Numerous further improvements in the code and documentation. What was new in Tablelist 4.6? ------------------------------ 1. Tablelist_tile now supports tile 0.8 and Tk 8.5a6/8.5b1 (where tile is integrated in the core). The new commands "tablelist::setTheme", "tablelist::getCurrentTheme", and "tablelist::getThemes" enable you to set and get the current theme and to query the available ones, without having to worry about the incompatibilities between the various tile versions. 2. New column configuration option "-changesnipside", which allows you to override the alignment-specific default snip side (thanks to Georgios Petasis for his proposal). 3. New "columnwidth" subcommand, with the options "-requested", "-stretched", and "-total" (thanks to Matthew Callaghan, Richard Finstad, Lieven Forrez, and Tom Roeder for their proposals). 4. Support for the new virtual event <>, generated after resizing a column interactively (thanks to Kurt Kurczyk for his proposal). 5. Visual improvement: Within an active row, the gap to the left or right of an embedded image or window no longer appears underlined (when the "-activestyle" option has its default value "underline"). 6. Embedded images and windows are no longer hidden during interactive cell editing (except the editing with the aid of a Tk or tile checkbutton widget). 7. Significantly improved the redraw and stretching behavior when resizing a column interactively. 8. Eliminated some annoying visual effects caused by hidden columns when displaying the items of an already visible tablelist widget (thanks to Rolf Ade for discussions on this topic). 9. Adapted the implementation of vertical scrolling to the text widget changes made in Tk 8.5 (thanks to Julian M Noble for his posting on the Wiki related to this subject). 10. Fixed a bug related to hidden rows, introduced in Tablelist version 4.3 (thanks to Matthew Callaghan for his bug report). 11. Eliminated the possible endless loop caused by some option database settings in the "seecell" subcommand (thanks to Erik Allaert and Mauro Comin for reporting this bug). 12. Added a detailed performance-related hint to the description of the "-listvariable" configuration option. 13. Numerous further improvements and minor bug fixes. What was new in Tablelist 4.5? ------------------------------ 1. Static-width columns are now displayed much faster than in earlier Tablelist releases. 2. Quite significantly reduced the performance penalty imposed by various column, row, and cell configuration options when sorting, redisplaying, moving, or deleting tablelist items. 3. Embedded images are now handled much more efficiently and are displayed much faster than in earlier Tablelist versions. 4. New column configuration option "-showlinenumbers" (thanks to Rolf Schroedter and Sean Xu for their proposals and to Kathrin Klaes for testing the implementation). 5. Support for tile-based multi-entry widgets (introduced in Mentry 3.0) used as edit windows. 6. Significantly improved the handling of the <> virtual event. 7. Defined more reasonable windowing system- and theme-specific default values for the "-arrowdisabledcolor" option. 8. Improved and simplified the package loading mechanism (thanks to Andreas Kupries for his valuable contribution). 9. Eliminated the "togglevisibility" subcommand, which was deprecated in the previous Tablelist version in favor of "togglecolumnhide". 10. Fixed a bug in the implementation of the "deletecolumns" subcommand, introduced in the previous Tablelist release (thanks to Kai Morich, Kurt Kurczyk, and Dave Leslie for their bug reports). 11. Fixed two binding-related bugs (thanks to Mark Garvey and Kurt Kurczyk for their bug reports). 12. Fixed a bug related to the handling of the "tileqt" theme (thanks to Andres Garcia for his bug report). 13. Fixed a small but annoying bug related to the "-maxwidth" column configuration option, introduced in the previous Tablelist version. 14. Numerous further improvements and minor bug fixes (thanks to Patrick Fradin and Georgios Petasis for their valuable feedback). What was new in Tablelist 4.4? ------------------------------ 1. New row configuration option "-hide" (thanks to Jeff Godfrey, Patrick Fradin. Hemang Lavana, and Martyn Smith for their proposals, and especially to Harold Campbell for providing the initial implementation and testing the final one.) For performance reasons this option is implemented by using elided text in the underlying text widget, and therefore it is not supported for Tk versions earlier than 8.3. 2. New subcommand "togglerowhide" for hiding/unhiding several rows at a time (not supported for Tk versions earlier than 8.3). 3. Renamed the "togglevisibility" subcommand to "togglecolumnhide". The old name is still supported, but will be eliminated in the next Tablelist release. 4. New command "tablelist::setThemeDefaults", which can be used to make sure that classical Tk widgets, e.g., text, will have a theme- specific appearance, just like the tile widgets. The tile-based demo scripts now make use of this command. 5. When using the "tileqt" theme, the version number of TileQt must be 0.3 or higher (thanks to Georgios Petasis for providing the new "tileqt" features used in this Tablelist release). 6. For Tk 8.3 or later, hidden columns are now handled by using elided text, which results in very significant performance improvements (thanks to Harold Campbell for his valuable contribution). 7. Improved the handling of the "-listvariable" option in connection with snit widgetadaptors (thanks to Rolf Ade for his bug-fix). 8. Corrected a typo in the implementation of the "move" subcommand, introduced in the previous release (thanks to Jerome Siot for his bug report). 9. Improved the handling of the virtual event <> (thanks to Wofgang Grosser for his bug report). 10. Fixed a long-standing bug related to hidden columns (thanks to Dave Leslie for his bug report). 11. Worked around a peculiarity of the "place" command on Windows, which caused refresh problems in column labels with images (thanks to Sebastien Barre for his bug report). 12. Numerous further improvements and minor bug fixes. What was new in Tablelist 4.3? ------------------------------ 1. Support for multi-line cells: Newline characters now force line breaks when displaying the items (thanks to Sebastien Barre, Tillmann Basien, Cameron Laird, Kai Morich, and Vaclav Snajdr for their proposals). In addition, interactive cell editing can now take place with the aid of a text widget, too (this has caused a few minor changes in the default key bindings for the edit window). 2. Support for multi-column sorting with the aid of the new subcommands "sortbycolumnlist", "sortcolumnlist", and "sortorderlist", as well as of the new command "tablelist::addToSortColumns". The latter is designed to be specified as the value of the new widget and column configuration option "-labelcommand2", whose value is invoked on events. Multi-column sorting is visualized by means of multiple sort arrows, which are displayed together with the corresponding sort ranks. (Thanks to Harold Campbell for proposing most of these features, providing the initial implementation, and testing the final one.) 3. New configuration option "-setfocus", specifying whether mouse button 1 should set the focus to the tablelist's body (thanks to Tillmann Basien for discussions on this topic). 4. Replaced the contents of the directory "images" with a script file containing procedures that create the bitmap images from inline data (thanks to Mats Bengtsson, Patrick Fradin, and Kai Morich for their proposals). 5. Fixed a bug related to the use of a tile entry within a non-tile- based tablelist widget on Windows XP (thanks to Schelte Bron for his bug report). 6. The handling of events during interactive cell editing is now explicitly restricted to Mac OS Classic and Mac OS X Aqua, because, strangely enough, on Windows these events are generated by simple keypresses if Num Lock is active. 7. Numerous further code improvements, minor bug-fixes, and support for several recent changes in tile. 8. Cleaned up the documentation, to make sure that the HTML files generated for the ActiveTcl distribution with the tool HTML Tidy will be syntactically identical to the original ones. What was new in Tablelist 4.2? ------------------------------ 1. The resize area of the header labels now consists of a few pixels on both sides of the right edge (thanks to Bryan Oakley for suggesting this improvement). 2. Made sure that the header labels have the right appearance in the "aqua" theme when using tile version 0.6.4 or later (thanks to Bryan Oakley for his bug report). 3. Several further improvements related to Mac OS X Aqua (for example, support for the "Command" key during keyboard navigation between the editable cells). 4. Fixed a very long-standing bug in the "containing" subcommand (thanks to Mats Bengtsson, Schelte Bron, and Mark Garvey for their bug reports). 5. Fixed a bug related to the "xpnative" theme, introduced in the previous release (thanks to Mark Garvey, Jeff Godfrey, and Uwe Koloska for their bug reports). 6. Fixed another very long-standing bug, related to insertion and deletion of columns having images in their labels (thanks to Sebastien Barre for his bug report). 7. Fixed an old bug related to embedding images or windows into hidden cells (again, thanks to Sebastien Barre for reporting this bug). 8. The demo scripts now work independently of their location (this small improvement reflects the fact that Tablelist is now included in tklib, where the examples are in a location different from "$tablelist::library/demos"). 9. Adapted two tile-based demo scripts to the recently released tile version 0.7. 10. Several further improvements in the code and documentation (thanks to Patrick Fradin for his valuable contribution). What was new in Tablelist 4.1? ------------------------------ 1. Significantly extended the tile support in the Tablelist_tile package: Header labels now look and behave like the column headings of treeview widgets, and over a dozen configuration options have theme-specific default values (thanks to Paul Obermeier for his excellent "poImgview" application, which helped me a lot during this work, as well as to Georgios Petasis for his Qt-related hints). 2. Header labels containing the mouse cursor are now set into active state. Their appearance is controlled in the Tablelist package by the new configuration options "-labelactivebackground" and "-labelactiveforeground", while the Tablelist_tile package uses theme-specific background and foreground colors for the active and pressed states of the labels. 3. New configuration option "-arrowstyle", specifying the flat or sunken relief and the dimensions of the arrow indicating the sorting order. This option has windowing system- and theme- specific default values. 4. New configuration option "-protecttitlecolumns", used to protect the title column boundary from being crossed when moving a column interactively (thanks to Schelte Bron for his proposal). 5. New configuration option "-spacing", specifying additional space to provide above and below each tablelist row (thanks to Sebastien Barre for his proposal). 6. New column configuration option "-stretchable", complementing the global "-stretch" option (thanks to Sebastien Barre for his proposal). 7. New row configuration option "-name", whose value can also be used as a row index and as the first component of a cell index (thanks to John Kozura for his proposal). 8. New cell configuration option "-windowdestroy", specifying a script to be invoked when a window embedded into the cell is destroyed (thanks to Sebastien Barre for his proposal). 9. New "imagelabelpath" subcommand (thanks to Schelte Bron for his proposal). 10. Keyboard navigation during interactive cell editing now works on Mac OS X Aqua, too. 11. Restored the support for Tcl/Tk versions earlier than 8.3, by cleaning up the handling of the "-titlecolumns" option (thanks to Andreas Flach and Brian O'Hagan for their bug reports). 12. Restored the support for Tcl/Tk versions earlier than 8.0.4, which has been broken since release 3.5, due to the use of the event, introduced in Tk 8.0.4 (thanks to Brian O'Hagan for his valuable contribution). 13. Worked around a peculiarity of the text widget's "dump -window" command (thanks to Greg Reynolds for his bug-fix). 14. Fixed a binding-related bug in "extended" selection mode (thanks to David Mattinson for his bug-fix). 15. Numerous further improvements and minor bug fixes (thanks to Schelte Bron, Patrick Fradin, Silas Justiniano, and Uwe Koloska for their bug reports and valuable contributions). What was new in Tablelist 4.0? ------------------------------ 1. Support for the tile entry, combobox, and checkbutton widgets for interactive cell editing (thanks to Miguel Bagnon, Andy Black, Adrian Chan, and Mark Garvey for their proposals and to Mats Bengtsson and Kevin Walzer for their support on the Macintosh). See the new reference page "tablelistTile.html" for details. 2. Support for tile-compatibility: By just specifying "package require Tablelist_tile" instead of "package require Tablelist", the tablelist widgets will have a modern theme-specific appearance (again, thanks to the above-mentioned Tablelist users for their suggestions and assistance). See the "How to use it?" and "More on Tablelist_tile" sections of the tutorial "tablelist.html" for details. 3. New demo script "tileWidgets.tcl", illustrating the use of tile widgets for interactive cell editing and of the Tablelist_tile package. All the other demo scripts are now provided in both a traditional and a tile-based version. See the "Tile-based demo scripts" section of the tutorial "tablelist.html" for an example and some screenshots. 4. The Tk checkbutton used for interactive cell editing is now a platform-specific checkbutton widget on Windows and the Macintosh (thanks to Mats Bengtsson for his help related to the Macintosh platform). 5. The "-editwindow" option is now available at cell level, too (thanks to Kenneth Green for his proposal). 6. New subcommand "togglevisibility" for hiding/unhiding several columns at a time (thanks to Stefan Finzel and Kai Morich for their proposals). 7. Support for the new virtual event <>, generated when a tablelist widget having "-exportselection 1" loses the selection (thanks to Aldo Buratti for his proposal). 8. After sorting the items, the "most important" row is automatically brought into view (thanks to Kai Morich for his valuable input). 9. Worked around a peculiarity of Tk for Windows, related to mouse events (thanks to Tore Morkemo and Mike Collins for their bug reports). 10. Worked around a problem related to the visibility of the up/down- arrow on Mac OS X Aqua (thanks to Kevin Walzer for his bug report). 11. Fixed a bug in the "seecell" subcommand, introduced in Tablelist version 3.7 (thanks to Stefan Finzel for his bug report). 12. Fixed a bug in the "rowconfigure" subcommand, introduced in the previous Tablelist release (thanks to Tore Morkemo for his bug report). 13. Eliminated the memory leak caused by incomplete cleanup on deleting rows with embedded windows (thanks to David Cockerell for his bug report). 14. Fixed a small timing-related bug in the "editcell" subcommand (thanks to Kenneth Green for his bug report). 15. Numerous further improvements and minor bug fixes (thanks to Greg Reynolds for his valuable input). What was new in Tablelist 3.8? ------------------------------ 1. New configuration option "-forceeditendcommand", controlling the invocation of the script corresponding to the value of the "-editendcommand" option (thanks to Nestor Patino for his proposal). 2. New subcommands "getcells" and "windowpath" (thanks to Jeff Godfrey and Mike Collins for their proposals). 3. Support for the new virtual event <>, generated by the "cancelediting" subcommand. 4. Significantly improved the performance of the "delete", "deletecolumns", and "movecolumn" subcommands for tablelist widgets having color or font options set at column, row, or cell level (thanks to Michael Bahr for his valuable feedback). 5. Improved the autoscrolling with the left mouse button in both the body and the header of a tablelist widget having title columns. 6. Fixed a bug related to the "-titlecolumns" option, introduced in the previous Tablelist release (thanks to Alexander Schoepe for his bug report). 7. Fixed a typo in the implementation of the "seecell" subcommand, introduced in the previous Tablelist release (thanks to Patrick Fradin for his bug report). 8. Improved the demo script "embeddedWindows.tcl" (thanks to Patrick Fradin for his valuable input). 9. Several further improvements and minor bug fixes. What was new in Tablelist 3.7? ------------------------------ 1. New configuration option "-titlecolumns", specifying the number of the non-scrollable columns at the left edge of the window (thanks to Goran Ivankovic, Paul Kienzle, Hemang Lavana, and Takeshi Sakamoto for their proposals). For technical reasons (the use of the "-elide" option for a text widget tag), this option is not supported for Tk versions earlier than 8.3. 2. Extended the "separatorpath" and "separators" subcommands, to support the new special separator, which is displayed to mark the end of the title columns, independently of the value of the "-showseparators" option. 3. The "-stripebackground" and "-stripeforeground" options now have a higher priority than the "-background" and "-foreground" column configuration options, respectively (see the demo script "styles.tcl", which has been extended to illustrate this change). 4. Improved the handling of embedded images with transparent background, complementing the changes made in the previous Tablelist release (thanks to Kai Morich for his valuable contribution). 5. Improved the implementation of the "seecell" subcommand for centered and right-aligned columns. 6. Fixed two bugs related to the "rowconfigure" subcommand, introduced in Tablelist version 3.5 (thanks to Ted Branscomb and Roger Niva for their bug reports). 7. Fixed an old bug related to the "movecolumn" subcommand. 8. Several further improvements and minor bug fixes. What was new in Tablelist 3.6? ------------------------------ 1. Support for embedded windows, with the aid of the new cell configuration option "-window" (thanks to Wolf Grossi, Glenn Herteg, Takeshi Sakamoto, and Keesang Song for proposing this option). 2. New demo script "embeddedWindows.tcl" illustrating the use of embedded windows in tablelist widgets; this is discussed in a new section of the tutorial "tablelist.html". 3. Significantly improved and optimized the handling of embedded images. 4. Simplified the support for user-defined binding scripts with the aid of the new commands "tablelist::getTablelistPath" and "tablelist::convEventFields", as well as of a new binding tag whose name is returned by the new "bodytag" subcommand (which is now used in the demo script "browse.tcl"). 5. Support for the new virtual events <>, <>, <> and <> (thanks to John Vidolich for his proposal). In addition, the new virtual event <> can now be used instead of <> (which is supported for compatibility reasons). 6. New subcommand "itemlistvar", for accessing the tablelist widget's internal list (thanks to Patrick Fradin for his valuable input). 7. Fixed a bug related to the "-listvariable" option, introduced in the previous Tablelist release (thanks to Torsten Reincke for his bug report). 8. Fixed two bugs related to the "cellselection" subcommand (thanks to John Vidolich for his bug report). 9. Fixed a few typos and minor bugs in the default binding scripts (thanks to Patrick Fradin, Tore Morkemo, and Torsten Reincke for their bug reports). 10. Numerous further improvements and minor bug fixes. What was new in Tablelist 3.5? ------------------------------ 1. New configuration option "-selecttype" with the values "row" and "cell", and new binding scripts supporting these two selection types (thanks to Kevin Partin for his proposal and to Dietmar Mueller for his valuable contribution). 2. New subcommands "activatecell", "cellselection", and "curcellselection", used in the binding scripts mentioned above. 3. The words "active" and "anchor" are now recognized as valid column and cell indices, too. 4. New configuration options "-movablerows" and "-movecursor", and new mouse bindings for moving a row interactively (thanks to Dan Rogahn for his valuable contribution). 5. The key sequences used for navigation between the editable cells now also move the active item or element and change the (cell)selection and the (cell)selection anchor in the body of the tablelist widget. 6. Improved the handling and appearance of the checkbutton widget when used as edit window (thanks to Kevin Partin for reporting a problem experienced when the tablelist is embedded into an Iwidgets dialogshell). 7. The "-listvariable" option now supports variable names returned by the "itcl::scope" command, too (thanks to Nicolae Mihalache for his bug report). 8. Fixed a very long-standing bug related to horizontal scrolling when using a non-default font (thanks to Brand Hilton for his bug report and fix). 9. Fixed another very long-standing bug, related to list variables (thanks to Dr. Detlef Groth and John R. Smith for their bug reports). 10. Numerous further improvements and minor bug fixes (thanks to Patrick Fradin for his valuable input). What was new in Tablelist 3.4? ------------------------------ 1. New column configuration option "-editwindow", specifying the widget type used for interactive cell editing in the respective column (thanks to Damon Courtney, Patrick Fradin, and Keesang Song for their proposals and to Mats Bengtsson and Benny Riefenstein for their help related to the Macintosh platform). The edit window may be a Tk core entry, spinbox, or checkbutton, or one of the 16 supported widgets from the packages BWidget, Iwidgets, combobox (by Bryan Oakley), and Mentry. 2. New subcommand "editwinpath". 3. Three new demo scripts illustrating the use of the "-editwindow" option; these are discussed in a new section of the tutorial "tablelist.html". 4. New column configuration option "-maxwidth" (thanks to Tore Morkemo for his proposal). 5. The event in a column label now restores the column's last static width (thanks to Dietmar Mueller for his valuable input). 6. Changing a tablelist's font now updates the column widths accordingly. 7. Improved the handling of the "-setgrid" option. 8. Improved the error handling related to the option database in the general mega-widget utility module "mwutil.tcl". 9. Fixed a minor bug in the "containingcolumn" subcommand (thanks to David Mattinson for his bug report). 10. Restored the support for Tcl/Tk versions earlier than 8.0.4, which has been broken since release 3.0, due to the use of the event, introduced in Tk 8.0.4. 11. Further code improvements (thanks to Patrick Fradin for his valuable input). 12. Many improvements in the documentation, including a new Quick Reference section (thanks to Dietmar Mueller for his valuable contribution). What was new in Tablelist 3.3? ------------------------------ 1. New column configuration option "-text" (thanks to Paul Kienzle for his proposal). 2. New subcommands "containing", "containingcolumn", "containingcell", and "fillcolumn". 3. New subcommands "deletecolumns", "insertcolumns", and "insertcolumnlist" (thanks to Kevin Partin and Paul Kienzle for their proposals). 4. Renamed the subcommands "getcolumn" and "getkey" to "getcolumns" and "getkeys", respectively. (This won't break any existing scripts, because the old command names are abbreviations of the new ones.) 5. Restored the support for Tcl/Tk versions earlier than 8.4, which was broken in Tablelist 3.1 and 3.2, due to the use of the improved syntax of the "place configure" command, introduced in Tk 8.4 (thanks to David Mattinson, Kurt Braganza, and Alexander Baath for reporting this problem). 6. Fixed a bug in the "editcell" subcommand, introduced in Tablelist 3.1 (thanks to Damon Courtney for his bug report). 7. Improved the demo script "config.tcl" (thanks to Mats Bengtsson for his input). 8. Restructured the code by moving several procedures from the distribution file "tablelistWidget.tcl" into smaller, more manageable modules. 9. Numerous further improvements and minor bug fixes. What was new in Tablelist 3.2? ------------------------------ 1. The key associated with a tablelist item can now be used as a row index and as the first component of a cell index of the form "row,col". 2. The "delete", "get", "getcolumn", "getkey", "selection clear", and "selection set" subcommands now also accept a list of indices as single argument (thanks to Damon Courtney and Erik Leunissen for their proposals). 3. Made the interactive "movecolumn" operation more intuitive and compatible with the behavior exhibited by similar actions in popular applications on various platforms (thanks to Paul Kienzle for his suggestion). For example, the target position of the column being moved is now indicated by a temporary gap displayed in the tablelist's header. 4. New configuration option "-targetcolor", used to set the color of the gap mentioned above. 5. Fixed a bug related to the event, caused by a missing close-bracket in the last release (thanks to Patrick Fradin for his bug report). 6. Fixed a bug that raised an error in the "movecolumn" command for an empty tablelist widget (thanks to Paul Kienzle for his bug report). 7. The workaround in the "xview" and "yview" subcommands for a Tk bug under Mac OS X Aqua is now only activated for that windowing system, since (as reported by Patrick Fradin) it caused problems on some other systems. 8. Further minor code improvements. What was new in Tablelist 3.1? ------------------------------ 1. New configuration options "-movablecolumns" and "-movecolumncursor". 2. New column configuration option "-name", whose value can also be used as a column index and as the second component of a cell index of the form "row,col". 3. New subcommands "move", "movecolumn", "getcolumn", "getkey", and "finishediting" (thanks to Damon Courtney, Daniel Fehrenbach, Jeff Godfrey, and Kevin Partin for their proposals). 4. Extended the scope of the "cancelediting" subcommand. 5. New mouse bindings for moving a column interactively. 6. The autoscrolling, as described in the "DEFAULT BINDINGS" section of the "listbox" manual entry, is now implemented for the header of a tablelist widget, too. 7. The interactive cell editing is now finished by any mouse click in the tablelist's body, outside the cell just being edited (thanks to Patrick Fradin and Jeff Godfrey for this suggestion). 8. The value returned by the "selection includes" command no longer depends on the tablelist's state. 9. Worked around a bug in Tk 8.4.0 and 8.4.1 related to the "selection handle" command, which caused crashes under KDE 3.0 (thanks to Andres Garcia for reporting this and to Joe English for suggesting the workaround and fixing the bug in Tk 8.4.2). 10. Improved the support of Mac OS X Aqua and Mac OS Classic (thanks to Mats Bengtsson, Raymond Calande, Techin Alex Kang, Bernhard Spinnler, and especially to Benny Riefenstein for their valuable contributions). 11. Fixed a bug related to the invocation of the "cellconfigure" subcommand from within a pre-edit callback (thanks to Dr. Johannes- Heinrich Vogeler for his bug report). 12. Several performance improvements (thanks to Patrick Fradin for his valuable suggestions). 13. Improved the platform-specific stuff in the demo scripts "config.tcl" and "browse.tcl". 14. Numerous further improvements in the code and documentation. What was new in Tablelist 3.0? ------------------------------ The main new feature provided by this release is the support for interactive cell editing (thanks to Juri Shimon, Dr. Johannes-Heinrich Vogeler, and Jeff Godfrey for their proposal). The first three items below are related to this subject: 1. New configuration options "-editstartcommand" and "-editendcommand". 2. New column and cell configuration option "-editable". 3. New subcommands "editcell", "entrypath", "cancelediting", and "rejectinput". Further changes: 4. New subcommands "seecolumn" and "seecell". 5. Tabulator and newline characters are now retained in the internal list, displayed as "\t" and "\n", and supported by interactive cell editing (thanks to Jacek Jenrysik for his query concerning multi- line items). 6. The redisplay and sorting of tablelist items have become dramatically faster (thanks to Matt Becker for his input that determined me to optimize these operations, and also for his testing). 7. Further performance improvements (thanks to Patrick Fradin for his valuable contribution). 8. The option values displayed by the demo script "config.tcl" can now be edited interactively. 9. Minor improvements in the code and documentation. What was new in Tablelist 2.8? ------------------------------ 1. The trailing or leading ellipsis ("...") used when displaying the elements that don't fit into their cells can now be replaced with an arbitrary string specified with the aid of the new "-snipstring" configuration option (thanks to Tore Morkemo for his proposal). 2. New value "none" for the "-activestyle" configuration option. 3. When exporting the selection, the elements of the hidden columns are now skipped and the contents of the visible cells are transformed according to the value of the "-formatcommand" option for the corresponding columns. 4. Improved and simplified the focus control (thanks to Juri Shimon and Gopal Reddy for their bug reports). 5. Further minor code improvements. What was new in Tablelist 2.7? ------------------------------ 1. Increased the speed of the "insert" and "insertlist" subcommands as well as that of item insertions with the aid of the "-listvariable" option by a factor of about 1.3. The "insert" subcommand is now about 2.3 times faster than in version 2.4. Compared to version 2.4, item insertion with the aid of the "-listvariable" option has become more than 10 times faster. 2. The number of pixels by which a column is stretched is now proportional to its width in pixels. Based on this change, significantly improved the stretching behavior after an interactive column resize operation (thanks to Mats Bengtsson for his valuable suggestions). 3. Fixed a bug in the "-(label)font" and "-labelborderwidth" configuration options, introduced in version 2.5 (thanks to Bastien Chevreux for his bug report). 4. Fixed a bug in the "columncget", "rowcget", and "cellcget" subcommands, introduced in version 2.3 (again, thanks to Bastien Chevreux for reporting this bug). 5. Fixed a bug in the binding scripts for the binding tag "TablelistBody" (thanks to Miguel Bagnon for his bug report). 6. Applied a patch proposed by Jeff Adamczak that works around a bug in the "lsort" command, present in Tcl versions 8.0 - 8.3.2. 7. Applied a patch proposed (in a slightly different form) by Mats Bengtsson that works around a bug in the "info script" command on the Macintosh. 8. Further minor code improvements. What was new in Tablelist 2.6? ------------------------------ The only change in this version is a bug-fix eliminating a rather nasty bug in the "insert" and "insertlist" subcommands, introduced in the previous release. Thanks to Mats Bengtsson for his bug report and to Jeffrey Hobbs for suggesting me to bump the version number to 2.6. What was new in Tablelist 2.5? ------------------------------ 1. Increased the speed of the "insert" subcommand by a factor of about 1.8 and that of item insertions with the aid of the "-listvariable" option by a factor of about 8. (These figures are based on speed measurements made with two tablelist widgets: one having 1000 rows and 10 columns and another one with 5000 rows and 20 columns.) 2. The "delete", "sort", and "sortbycolumn" subcommands, as well as row and cell updates with the aid of the "rowconfigure" and "cellconfigure" operations have also become significantly faster. 3. New "insertlist" subcommand. 4. New "-stripeheight" configuration option (thanks to Gregory Samoluk for his proposal). 5. If no columns are to be stretched then the blank space following the header labels is now filled with a dummy, insensitive label having the same background, borderwidth, and relief as the "normal" header labels. 6. Fixed a bug concerning the placement of the arrow indicating the sorting order (thanks to Robert Minichino for his bug report). 7. Improved the handling of header labels with embedded images, to eliminate some peculiarities experienced on Windows. 8. Several further improvements and minor bug fixes. What was new in Tablelist 2.4? ------------------------------ 1. New column configuration option "-formatcommand" (thanks to Jeff Godfrey for his proposal). This option is now used in the demo script "browse.tcl". 2. New row configuration option "-selectable" (thanks to Tore Morkemo for this proposal). 3. Significantly improved the performance of the row and cell updates, as well as of the "delete" subcommand (thanks to Emanuele Lupi for her input that determined me to optimize these operations). 4. The widget implementation is now fully compatible with the recent changes made in Tk 8.4a4 (thanks to Patrick Fradin for his input). 5. Pop-up menus as children of a tablelist widget cause no problem any longer (thanks to Andres Garcia and Bastien Chevreux for reporting this bug, introduced in the previous release). 6. Fixed a bug caused by the delayed redisplay after changing the number of columns (thanks to Tore Morkemo for his bug report). 7. Minor improvements in the code and documentation. What was new in Tablelist 2.3? ------------------------------ 1. New configuration option "-activestyle", enabling to surround the active item with a frame instead of underlining it. 2. The columns can now be separated with borders, by making use of the new configuration option "-showseparators". 3. A nice distinguishing effect for the rows can now be obtained with the aid of the new configuration options "-stripebackground" and "-stripeforeground". 4. New tablelist widget subcommands "separatorpath" and "separators". 5. Fixed a bug related to the column index if the header labels are hidden (thanks to Emanuele Lupi for her bug report). 6. New demo script "styles.tcl", showing several ways to improve the appearance of a tablelist widget. 7. The demo scripts "config.tcl" and "browse.tcl" now make use of the new "-stripebackground" option. 8. Numerous further improvements and minor bug fixes (thanks to Patrick Fradin for his valuable input). What was new in Tablelist 2.2? ------------------------------ 1. The "-font" configuration option can now be specified at column, row, and cell level, too (this was proposed and partly implemented by Patrick Fradin). The data will be aligned properly, no matter if the fonts are of different sizes. 2. Significantly improved the performance of the Tcl command associated with a tablelist widget, especially that of the "delete", "sort", and "sortbycolumn" subcommands for a large number (i.e., several thousands) of items. 3. Corrected the creation of the arrow indicating the sorting order, to make sure that it works under all supported Tcl/Tk versions (thanks to Juri Shimon and Andres Garcia for their bug reports). 4. Several improvements in the demo scripts "config.tcl" and "browse.tcl". Among others, the GUIs generated by these scripts now have a better platform-specific look & feel (many thanks to Mats Bengtsson for his valuable suggestions concerning the Macintosh platform). 5. Further minor improvements in the code. What was new in Tablelist 2.1? ------------------------------ 1. The up- or down-arrow indicating the sorting order now has a 3-D border, giving the arrow a sunken relief. 2. Due to the new 3-D look of the arrow, the default values of the "-arrowcolor" and "-arrowdisabledcolor" configuration options have been changed to an empty string, indicating that the arrow will inherit the background color of the label in which it is placed. 3. Several improvements in the demo script "browse.tcl". 4. Minor improvements in the code and documentation. 5. The distribution file "tablelist2_1.zip" for Windows now includes the "tablelist2.1" directory, hence it is no longer necessary to create this folder before unpacking the distribution file (thanks to Kevin Partin for this suggestion). What was new in Tablelist 2.0? ------------------------------ 1. New cell configuration option "-image", used to set and retrieve the image to be displayed (by itself or together with a text) in a cell of a tablelist widget. 2. New column configuration option "-labelimage" specifying the image to be displayed (by itself or combined with a text) in a column label. 3. The alignment of a header label can now be defined to be different from that of the elements contained in its column, by using the new column configuration option "-labelalign". 4. Renamed the column configuration option "-justify" to "-align", because (at least in the case of the header labels) this actually specifies not only the justification, but also the anchor point. Hopefully, this POTENTIAL INCOMPATIBILITY will not break too many existing applications, because the column alignments are usually specified within the "-columns" global option. 5. Fixed a bug that raised an error when some configuration options were specified at widget creation time before the "-columns" option (thanks to Bastien Chevreux for his bug report). 6. Reverted the implementation of the focus control to that contained in the pre-1.6 Tablelist releases, because its simplified version from the last release failed to work as expected if a tablelist was the only widget taking the focus during keyboard traversal (thanks to Juri Shimon for his bug report). 7. Fixed a bug that caused an erronous return value of the "labels" subcommand if the arrow indicating the sorting order was displayed. 8. Several performance improvements, kindly contributed by Patrick Fradin. 9. To improve the performance even further, the invocations of "info exists" for array elements are no longer replaced with a call to a helper procedure (introduced in Tablelist 1.2), because the Tcl bug that made this necessary for Tcl versions 8.2, 8.3.0 - 8.3.2, and 8.4a1 was fixed in Tcl 8.3.3 and 8.4a2. If for some reason you cannot upgrade your Tcl/Tk version, then you should patch the file "tablelistWidget.tcl" with the aid of the script "repair.tcl", as described in the files "README.txt" and "tablelist.html". 10. The demo script "browse.tcl" now inserts an image into the first cell of each row of the tablelist widget. 11. Numerous further improvements and minor bug fixes. What was new in Tablelist 1.6? ------------------------------ 1. The value of the "-stretch" configuration option is now ignored if the width of the tablelist widget was specified as zero or less. This change was necessary in order to improve the behavior of dynamic-width tablelist widgets with the "-setgrid" option set to true. 2. By pressing mouse button 1 over a header label, the label's relief is now only changed to "sunken" if the value of the global or column-specific "-labelcommand" option is nonempty. 3. Several improvements concerning hidden columns (thanks to Juri Shimon for his bug report). 4. Made the focus control more straight-forward. 5. Extended the "How to use it?" section of the tutorial "tablelist.html". What was new in Tablelist 1.5? ------------------------------ This version contains mainly bug fixes and small improvements. Many thanks to Andres Garcia, Bastien Chevreux, and Patrick Fradin for their valuable contributions. 1. Fixed a bug concerning the "-label*" configuration options. 2. Fixed the erronous invocation of "getSubCmd" in the selection handler "fetchSelection" (this bug was introduced in version 1.1). 3. Elements that don't fit into their cells are now displayed with a trailing or leading ellipsis ("..."), depending on the column alignment. 4. Several further improvements and minor bug fixes. What was new in Tablelist 1.4? ------------------------------ 1. New "-stretch" configuration option specifying the columns that are to be stretched in order to eliminate the blank space that might appear at the right of the table. 2. Improved the error handling in the "attrib", "configure", "columnconfigure", "rowconfigure", and "cellconfigure" subcommands. 3. Improved the demo scripts "browse.tcl" and "config.tcl". What was new in Tablelist 1.3? ------------------------------ 1. The "sortbycolumn" subcommand now per default places an up- or down-arrow indicating the sorting order into the respective column's label. This can be enabled or disabled with the new "-showarrow" configuration option, at both widget and column level. 2. New configuration options "-arrowcolor", "-arrowdisabledcolor", and "-incrarrowtype" to control the appearance of the arrow mentioned above. 3. New "resetsortinfo" subcommand, used to reset the information about the sorting of the items. 4. Improved the demo script "browse.tcl". 5. Further improvements in the code and documentation. What was new in Tablelist 1.2? ------------------------------ 1. Whereever possible, eliminated the invocations of "info exists" for array elements. This works around a severe bug in Tcl versions 8.2 and 8.3 (fixed in 8.4a2), which causes excessive memory use when calling "info exists" on a non-existent array element. Some serious memory leaks in earlier Tablelist versions when run under Tcl/Tk 8.2 or 8.3 (reported by Henning Hanusa and Christian Burrini) could be tracked down to this very annoying Tcl bug (which I was not aware of until recently). 2. The help variables used in the initialization of the "tablelist" namespace are now declared with the "variable" keyword, in order to avoid any conflicts with global variables. 3. Improved the parsing of configuration and command options. What was new in Tablelist 1.1? ------------------------------ This version contains mainly bug fixes and small improvements. Many thanks to Patrick Fradin, Bastien Chevreux, and Mats Bengtsson for their valuable contributions. 1. Fixed some bugs in the implementation of the "-listvariable" option. Also, the value of this option can now be an array element, not only a scalar variable. 2. Fixed a bug in the implementation of the "get" subcommand. 3. New "sortcolumn" and "sortorder" subcommands to query the arguments of the last sorting. 4. Improved the look & feel of tablelist widgets on the Macintosh. 5. Worked around a bug in Tk 8.3.0 (fixed in 8.3.1) concerning listbox widgets with configured "-cursor" option. 6. Several further improvements and minor bug fixes. What was new in Tablelist 1.0? ------------------------------ 1. New "-resizable" option for the "columnconfigure" subcommand. 2. New "labels" subcommand, returning the list of the header labels. 3. The "-disabledforeground" and "-state" configuration options no longer require Tk version 8.3 or higher. 4. All "-label*" column configuration options can now have an empty string as value, meaning that the corresponding global option will be used instead of the column-specific one. 5. Improved the output of the "columnconfigure" subcommand. 6. The help variables used in the coordinate transformations within the scripts defined for the "TablelistBody" binding tag have been moved into the "tablelist" namespace, in order to avoid any conflicts with global variables. 7. Improved cross-platform support with the aid of the new <> virtual event. 8. Fixed a bug in the "compareAsSet" procedure of the demo script "config.tcl". 9. New demo script "browse.tcl", containing a simple widget browser based on a tablelist. 10. Both demo scripts now use a namespace for their procedures, to avoid any conflicts when evaluating them with the "source" command. 11. The tutorial "tablelist.html" is now completed and includes a detailed discussion of both demo scripts mentioned above. 12. Numerous further improvements in the code and documentation. What was new in Tablelist 0.9? ------------------------------ 1. The documentation now includes the tutorial "tablelist.html" (part of which is still work in progress), as well as reference pages for the two exported commands "tablelist::tablelist" and "tablelist::sortByColumn". 2. The "-listvariable" configuration option is now fully implemented. 3. A column of a tablelist widget can now be made invisible by using the new "-hide" option of the "columnconfigure" subcommand. 4. The contents of a row can now be updated with the new "-text" option of the "rowconfigure" subcommand. 5. For Tk versions 8.3 or higher the "tablelist::tablelist" command now supports the "-disabledforeground", "-labeldisabledforeground", and "-state" configuration options. 6. Replaced "[focus]" with "[focus -displayof $win]", so that the code will work properly in applications using multiple displays. Similarly, the "font measure" command is now invoked with the "-displayof $win" option. This also works around a peculiarity of the "font measure" command. 7. Renamed "tablelistBindingTag" to "Tablelist". 8. Fixed a bug in the private procedure "colIndex", for arguments of the form "@x,y". This procedure is invoked (directly or indirectly) in the implementation of all commands that take a column or cell index or an x coordinate as argument. 9. Numerous further improvements and minor bug fixes.