What is 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 Bañón 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.