CHANGES to Tclutil ----------------- This file contains a list of changes to the Tclutil software. The latest changes are at the top. --------------- 09.11.00 released tclutil-1.2.3 ----------------- * Fixed a bug that occurred when attempting to memory map a file that was a relative path to a relative symbolic link. (For example: Mem("../x.fits"), where x.fits is a link to y.fits). The util/Mem class previously tried to resolve symbolic links, but didn't get it right in this one case. The new version does not try to resolve the links (commented out the call to fileRealname()). --------------- 02.03.00 released tclutil-1.2.2 ----------------- * Added an optional argument to TopLevelWidget::start to specify the valid options for an application. This was as a workaround to what may be a bug in Tcl or Itcl that caused the application to crash when an unknown argument was given. --------------- 14.12.99 released tclutil-1.2.1 ------------------ * Merged in changes made by Peter Biereichel (see below): * Mem.C: use _exit() in the signal handler to avoid that the message queue of a possible parent process (see Batch.tcl) is closed. * Mem.C: attach to shm with SHM_RDONLY when owner=0 --------------- 25.10.99 released tclutil-1.2 -------------------- * Merged in changes made by Peter Biereichel --------------- 09.09.99 released tclutil-1.1.5 ------------------------ * Updated for egcs/gcc-2.95 (This compiler version is stricter for C++ code and even fails the solaris X11 header files, unless told to ignore the errors...). Added check in configure.in for solaris and gcc-2.95*, to include the -fpermissive flag with g++. --------------- 21.06.99 released tclutil-1.1.4 ------------------------ * FileSelect.tcl: changed listbox bindings from <1> to to avoid conflict with default bindings. --------------- 01.04.99 released tclutil-1.1.3 ------------------------ * Replaced sys_errlist[] with strerror() in error.C to get around porting problems. * changed tclsh$vers to itclsh$vers in tix/src/Makefile.in, since tclsh was often not found. * Added workaround in configure.in to tcl8.0.5 configure script bug dealing with HP-UX machines and the TCL_SHLIB_LD variable defined in tclConfig.sh (was set wrong for HP). --------------- 22.03.99 released tclutil-1.1.2 ------------------------ * Replaced itclsh2.2 with itclsh@ITCL_VERSION@ in Makefile.in. * EntryForm.tcl: added scrollbars to make it easier to view many entries. * Changed "quit" method in TopLevelWidget to use "delete object $this" instead of "destroy $w_". * Removed lib -lieee from configure.in, since it caused problems with shared libraries later on in the gaia plugin. * error.C: removed "#include errno.h" to avoid problems with new linux versions. * configure.in: removed -lieee library from configure script, since it caused linking problems on glibc linux versions. * updated local copies of tcl headers for the local tix package for tcl8.0.5. * Merged in changes from Peter W. Draper (Starlink) to support 16 and 24 bit color. * Added routine Tk_CanvasWindowCoordsNoClip() in tkCanvasImagePs.c to work around Tk's limit on canvas coordinates to short range. Now the canvas coordinates do not have to be clipped to short range. * bltGraph.tcl: Added patch for blt2.4g from Peter Draper. --------------- 28.12.98 released tclutil-1.1.1 ------------------------ * Minor change in udialog.tcl to avoid multiple error message problems. * Added an optional argument to Mem::remap() to allow increasing the size of an mmapped file. * Fixed mistaken "//" comments in Blt_GraphElement.c. * Rebuild tclIndex file whenever configure is run, since Tcl8 version is not compatible with tcl7 version (see makelinks script). * tkCanvasPsImage.c: changed "unsigned int" to "int" to avoid sunpro cc warning. --------------- 16.11.98 released tclutil-1.1 ------------------------ * Ported to tcl8.0.3 (still compatible with tcl7.6): - Changed the syntax used for the namespace and scope commands in tcl8. - Itcl member procs in the "util" namespace now need to be called with "util::" prefix. For example: "util::TopLevelWidget::start ..." - Updated the BLT related code to work with both BLT2.1 and 2.4f. - Updated the configure scripts to handle Tcl8.0 and Tcl7.6. --------------- 30.8.98 released tclutil-1.0.17 ----------------------- * Added a "wait" command in Batch.tcl to reap background processes and avoid zombies. --------------- 5.8.98 released tclutil-1.0.16 ----------------------- * Added authorization support to class HTTP. The class now recognizes the "Authorization Required" message returned from an HTTP server and provides a method "authorize(username, passwd)" for clients to set user and password information. The information is optionally saved in a file (by default: ~/.http_auth), indexed by server host name and realm and with the username and password encoded. * Added new public methods to class HTTP: content_encoding(), www_auth_realm(), authorizationRequired(), authorize(), authFile(), userAgent(), and changed html_error() from a "static" to nonstatic member. * Added new Itcl dialog class: PasswdDialog, and new proc that uses it: passwd_dialog. * Added the X11 library directory to shared lib path in startup script * Changed DialogWidget itcl class to use a label in place of a message and truncate lines from long messages. * Fixed minor bug in TopLevelWidget that prevented the code from remembering the locations of top level widgets. Now, if you place a window somewhere, it comes up there the next time the window is created in that session. --------------- 07.07.98 released tclutil-1.0.15 ----------------------- * class HTTP: added suport for HTTP POST: new methods: HTTP::post(url, data) and HTTP::post(url, data, ostream). --------------- 26.6.98 released tclutil-1.0.14 ----------------------- * Added support for HTTP proxy servers (thanks to Peter Draper for implementing this). The proxy server, if available, is defined by the "http_proxy" environment variable. This should have the format: http_proxy = "http://wwwcache.some.domain:port/" A list of domains that do not require to be proxied (i.e. local machines etc.) is defined by the variable "http_noproxy". This should be a list of comma separated names, i.e.: http_noproxy = "local.domain,national.domain" If the given host is in one of these domains no proxy will be set up. * Mem.C: added checks for file permissions to avoid problems with mmap and read-only files (or files with no read permission). --------------- 19.6.98 released tclutil-1.0.13 ----------------------- * HTTP.C: fixed a minor bug that cut off last char of an HTTP error message * Added new file: tclutil/src/tkCanvasPsImage.c, which implements Tk canvas postscript printing for images. The default Tk canvas postscript command does not support printing images and the available patch could not handle large, zoomed in images. This version does not require a patch to Tk. The extension is based on the patch, with fixes provided by Peter Draper of Starlink, and is activated optionally by calling the C routine TkCanvasPsImage_Init(). --------------- 28.5.98 released tclutil-1.0.12 ----------------------- * Added support for HTTP redirect "Location: ..." to HTTP class * HTTP.C: check for HTTP header info in URL command output. If a URL is a command (not "file:/..." or "http:/...") its output may have an optional HTTP type header containing lines such as "Content-type: ...", "Content-length: ...", etc. (at most 5 lines). If these lines are found, they are noted and skipped over before accessing the data. * Minor bug fix in TclCommand.C, for case when interp->result is appended to itself. --------------- 13.5.98 released tclutil-1.0.11 ----------------------- - * FileSelect.tcl: added missing method (set_filter_type) * EntryForm.tcl: destroy window on "Enter" as well as "Cancel" (previously, "Cancel" destroyed the window, but "Enter" only closed it). --------------- 4.5.98 released tclutil-1.0.10 ------------------------- * CanvasDraw.tcl: Changed protection on "create_done" to public --------------- 28.4.98 released tclutil-1.0.9 ------------------------- * Minor addition to TopLevelWidget error handling (in start_err_, allow --help option to print "usage" message). --------------- 15.4.98 released tclutil-1.0.8 ------------------------- * itcldoc.tcl (automatic man page generation from Itcl classes) - Added code to extract information from Itcl classes about the Itk components and component options. - Added code to document "public" and "protected" methods and variables. * (doc, *.tcl): For documenting the "public interface": Updated comments on all Itk component declarations and added "public", "private" and "protected" keywords in the source to help identify the public interface, which is documented in man pages generated from the source by the itcldoc utility in this package. * Minor changes in configure script and top level makefile for shared libraries * Fixed a last minute problem with calling plugin procs (needed to use "uplevel #0" due to Itcl scoping/namespace hell...). ----------------- 31.03.98 released tclutil-1.0.7 ---------------------- * Updated man pages and documentation ----------------- 25.03.98 released tclutil-1.0.6 ---------------------- * Minor change in class ShellCommand (kill child process on error). * added "more_error" method to TclCommand, to append an error message. * TkImage constructor: changed options arg from reference to pointer for consistency with usage. * TopLevelWidget.tcl: Added support for a simple help window to TopLevelWidget, and added two new widgets: HelpWin and ScrolledText (contributed by Peter Draper, Starlink). * CanvasDraw.tcl: * Make use of "init" method in CanvasDraw constructor (easier for subclassing). * Added -clipping option to control clipping of graphics (default is the same as before). * TopLevelWidget.tcl: Added "-underline" option to add_menubutton, to allow proper keyboard traversal. * Tix library: commented out global bindings (grep for "bind all" in tix/library dir), since they interfere with Tk keyboard traversal in menus, etc. * TopLevelWidget: fixed bug in method "list_windows" so that it lists all top level windows (previously not all windows were listed). * TopLevelWidget: added "-number" option to keep track of cloned windows. This is a number that can be put in the window title to identify which main window a popup window belongs to. By default the number is set automatically set from the widget path name by looking for a name, such as "....", for example: .app1, .app2, ... * LabelEntryScale.tcl: added fixes from Peter Fraper, Starlink, to support vertical and horizontal layout and keybindings and improve performance. ----------------- 05.03.98 released tclutil-1.0.5 ------------------------- * fixed minor problems setting and restoring the mouse cursor * (CanvasDraw). * For backward compatibility with existing applications: The Tclutil package now contains the sources for the Tix widget set. Tix support can be included in an application by calling Tixsam_Init(interp) and linking -ltclutil (or the necessary object files from this package). This has no effect on packages that do not use Tix. * Implemented rotation for canvas graphics. Since Tk doesn't support this directly, it is done now in Tcl code. Polygons are now used in place of rectangles, to make it posible to rotate a rectangle. (The appearance and funtionality is the same). You still can't rotate ovals, but you can rotate a smooth rectangle, which is similar (see below). * Added a "Smooth" option in the graphics window (CanvasDraw), so you can make smooth (rounded) rectangles, polygons or polylines. * Changed the selection mechanism, so that the graphics window always displays the options for the currently selected object. * Plugins: The _PLUGIN environment variable may now contain a colon separated list of plugin files or directories containing plugin files. This way you can have multiple plugins for a class. For a top level class Foo, for example, the environment variable FOO_PLUGIN may contain a colon separated list of plugin files or directories containing plugin files. The default file name, if only a directory name is given, is then Foo_plugin.tcl, which defines the Tcl proc Foo_plugin. ----------------- 13.2.98 released tclutil-1.0.4 ------------------------- * Added 2 methods to TopLevelWidget: list_windows and hide_windows to add support for toggling the visibility of all popup windows other than the main one. ----------------- 9.2.98 released tclutil-1.0.3 ------------------------- * Added "const" to "cmdname" arg in constructor for TclCommandand TkImage classes. * Added (void*) cast to MAP_FAILED constant in class Mem_Map * Fixed minor bugs in bltGraph.tcl (used for zooming in a graph) * added check for "gethostname" prototype to configure script. ----------------- 3.2.98 released tclutil-1.0.2 ------------------------- * In class CanvasDraw, added support for selecting a region of objects, and moving a group of objects. Added region icon to drawing mode frame. * Added methods "append_result", "append_element", "reset_result" in class TclCommand. --------------- 26.01.98 released tclutil-1.0.1 ------------------------- * Added plugin support to the TopLevelWidget class, so all classes derived from it can have Tcl plugins (see docs). * Added a script tclutil/demos/itcldoc that extracts man pages from Itcl class sources automatically, with no special syntax needed in the comments. The script simply assumes that comments precede declarations. Since Itcl sources have a simple Tcl list format, it is fairly easy to parse them. The only requirement is that each class, method and other important declarations are preceded by a "block" comment (a group of lines starting with "#"). To run the script, cd to the dir containing the tcl source files (here tclutil/library) and type: "make doc". * Updated comments in Itcl sources for automatic generation of man pages. * Renamed some source files to have the same name as the class (TList.tcl ==> TableList.tcl, Dialog.tcl ==> DialogWidget.tcl, ...) --------------- released tclutil-1.0 ------------------------------------ * Created new package Tclutil by gathering "generic" Tcl and C++ code from various applications into a single generic Tcl package. The Tclutil package contains a collection of handy Itcl and C++ utility classes and also provides a shell script (TclutilConfig.sh), created by configure, that makes it easier to write configure scripts for other packages. This package assumes the development environment includes C++, Itcl, TclX, BLT and optionally other packages that can be linked in statically or dynamically as needed. ----------- Nov 21, 1997: begin change log for Tclutil -----------------