2 Changes from 2.4y to 2.4z
7 graph/stripchart/barchart
8 Under Windows, both the "print1" and "print2" operations will
9 pop-up a standard printer dialog when you don't pass a printer
11 graph/stripchart/barchart
12 New -state option for both elements and markers. If "disabled",
13 marker or element isn't eligible for binding events. This is
14 useful when you have lots (>100,000) of data points.
15 graph/stripchart/barchart
16 New axis option -titlealternate lets you place the axis title to
17 the top or right of the axis. This used to automatically happen when
18 you had more than one axis in a margin. This option lets you control
21 Both "find" and "apply" operations may be given more than one
22 pattern switch (-exact, -glob, or -regexp). This performs a
23 logical "or"--if any one of the pattern matches, the node is
26 Both "find" and "apply" operations now have addition switches
27 -keyexact, -keyglob, and -keyregexp (the -key switch works like
28 -keyexact). You may supply more than one switch. This performs
29 a logical "or"--if any one of the pattern matches, the node is a
31 graph/stripchart/barchart
32 New axis options -scrollmin and -scrollmax allow you to specify
33 the scroll region. Thanks to both Meaghan Parizeau
34 <Meaghan_Parizeau@srtelecom.com> and Julian H J
35 Loaring <jhjl@bigj.demon.co.uk> for the solution.
36 graph/stripchart/barchart
37 Polygon marker will trigger bindings even if the marker is not
38 filled (-fill "") or has no outline (-linewidth 0). Interior
39 is always considered part of the polygon.
41 Tree adaptively restructures data values from a linked list into a
42 hash table when the number of values exceeds 20.
44 Can build BLT with cygwin (gcc under Windows) distribution. Type
45 ./configure and make to build. Use -disable-cygwin switch to build
46 "mingw" version. Many thanks to Mumit Khan <khan@pluto.xraylith.wisc.edu>
47 for all the hard work of porting the configure.in and Makefiles.
53 Canvas item errors out with "can't get handle to EPS file" message.
54 Thanks to Shamil Daghestani <shamild@hotmail.com> for the bug report.
55 graph/stripchart/barchart
56 Image marker doesn't get scaled correctly when scaling factor is
57 large. Thanks to Paul Kienzle <pkienzle@jazz.ncnr.nist.gov>
58 for the bug report and example script. It really helped.
60 "min" and "max" initially don't report the correct value. Many
61 thanks to Alexander Eisenhuth <stacom@stacom-software.de> for the
64 "show -full $key" operation doesn't work.
65 graph/stripchart/barchart
66 Doesn't display trailing data points when there are more than
67 65331 points. Thanks to Val Shkolnikov <nvsoft@pacbell.net>
70 Vectors leak memory when accessing them through the Tcl array
71 variable. Thanks to Alexander Eisenhuth <stacom@stacom-software.de>
72 for the bug report and especially the test script to demonstrate
75 In "apply" operation, -regexp, -exact, or -glob switches don't
76 work. Always matches every node.
77 graph/stripchart/barchart
78 Axis "-hide" option no longer accepts "all" value. "all" was
79 supposed to hide the axis *and* all the elements mapped to it.
80 I don't think this option ever worked correctly. It was also
81 unclear whether to hide the legend entry, markers, etc.
82 graph/stripchart/barchart
83 Changing a marker's -hide option doesn't take effect until the
84 graph is redrawn. Thanks to Alex Verstak <averstak@vt.edu> for
86 graph/stripchart/barchart
87 Spurious characters in PostScript output generated under Windows.
88 Thanks to Cary D. Renzema <Cary.Renzema@analog.com> for the bug
89 report and sample files.
90 graph/stripchart/barchart
91 "snap" operation core dumps or returns X protocol error depending
92 on arguments. Thanks to Carsten Mortensen <cbm@microlex.dk> for
93 both the bug report and the fix.
94 graph/stripchart/barchart
95 Polygon marker not drawn unless no outline is specified (-linewith 0).
96 Thanks to Nestor Patino <npatino@infovia.com.ar> for the bug report.
98 Tags are removed when tree or treeview widget is destroyed. Many
99 thanks to Todd Copeland <todd.copeland@legerity.com> for the report.
101 "index" operation segfaults when tag is empty. Again thanks to Todd
102 Copeland <todd.copeland@legerity.com> for the report.
104 Added checks for package directory and its parent when searching
105 for BLT shared library. Thanks to Anton Hartl <toni@devsoft.com>
108 Changes from 2.4x to 2.4y
114 Added -notags switch to "restore" operation.
116 Added additional fields to the tree "dump" format. When trees are
117 restored, will try to reuse old node ids (not always possible).
119 Added -label switch to "copy" operation. This lets you relabel the
125 graph/stripchart/barchart
126 PostScript output sometimes includes a spurious box around an axis.
127 Thanks to Harvey.Davies@csiro.au for the bug report and example.
129 On errors tabnotebook grows ad infinitum. Thanks to Terri Fischer
130 <terri@ner.com> for the bug report and example.
132 Tcl_Init fails with "can't find usable init.tcl" when running
133 bltsh or bltwish compile with ActiveTcl. Changed Tcl_AppInit to
134 set global "tclDefaultLibrary" variable.
136 "legend get" operation doesn't account for hidden entries
137 (i.e. -label is configured to ""). Thanks to Karl Voskuil
138 <voskuil@ll.mit.edu> for the bug report and the fix.
140 NULL pointer referenced (bindingTable) when destroying axis.
142 File redirection broken under Windows.
144 Area under curve not stippled correctly when bitmap is greater than
145 8x8 (W95/W98) or device context is a metafile (all?). Created
146 XFillPolygon replacement for Windows.
148 Node modifiers are incorrectly ignored when first component is a tag.
150 -shadow option no longer accepts empty string (no shadow). Many
151 thanks to Todd Copeland <todd.copeland@legerity.com> for the report.
153 Vector "create" operation slows down using #auto as more vectors
154 are created. Thanks to Todd Copeland <todd.copeland@legerity.com>
157 Widget doesn't scroll horizontally correctly when -hideleaves is
158 true. Ignores last level when computing world width.
160 Deleting a node doesn't remove tag references to it. Thanks to
161 Steven Hafer <steven.hafer@legerity.com> for the bug report.
163 Giving the -path option to the "index" operation always fails. Thanks
164 to Paul Robins <paul.robins@st.com> for the bug report.
165 <treeview.mann/hiertable.mann>
166 Documentation for the "get" operation isn't clear that it always returns
167 a list of lists when the -separator option is "" (the default), even
168 when there is only one node specified.
170 Changes from 2.4w to 2.4x
176 Back ported 8.3 "dde" command for use with 8.0.
182 Can't create column that starts with a minus. Thanks to Todd Copeland
183 <todd.copeland@legerity.com> for the bug report.
185 pkgIndex.tcl file not getting rebuilt. Thanks to Terri Fischer
186 <terri@ner.com> for the bug report and fix.
187 <dragdrop1.tcl,dragdrop2.tcl>
188 Send emulation script isn't needed for Tcl8.0 under Windows. Thanks to
189 Linh H Phan <phan@grover.jpl.nasa.gov> for the bug report.
190 graph/stripchart/barchart
191 Using pen styles results in a bus error. Thanks to Julian H J
192 Loaring <jhjl@bigj.demon.co.uk> for the bug report.
193 hiertable/treeview/tree
194 List of data values is reversed from 2.4v. Thanks to Jorge Suit
195 Prez Ronda <jsperez@bayesinf.com> for the bug report.
197 Missing header file for varargs. Thanks to Terri Fischer <terri@ner.com>
198 for the bug report and fix.
200 TclpAlloc and TclpFree not found in Tcl 8.0. Again, thanks to Terri
201 Fischer <terri@ner.com> for the bug report and fix.
202 <BLT.mann,barchart.mann,eps.mann,graph.mann,tabset.man>
203 Updated manual pages graciously provided by Terri Fischer <terri@ner.com>.
205 Changes from 2.4v to 2.4w
211 New treeview widget is updated version of hiertable. Uses Tcl_Objs.
212 The "hiertable" and "treeview" are the 100% syntax compatible. The
213 old hiertable is temporariliy available as "hiertable-old" should
214 you find errors. Also use the "treeview" instead of the "hierbox"
215 widget. The "hierbox" isn't as capable and doesn't use tree data
218 Added tagging operations similar to the "tree" command. Attaching
219 a tree to the treeview/hiertable (the -tree option) now gives you
220 access to the tree's tags too. Don't confuse this with "bindtags".
221 For example, you can tag nodes with the "tree" command and operate
222 on them in the treeview/hiertable widget using that tag. If you
223 don't want to share tags, the -newtags option will prevent this.
224 There's an update "treeview" manual entry to describe this.
226 The "nearest" operation can report what part of the entry the pointer
227 is over. If a variable name argument is given, the variable will
228 contain either "button", "label", "icon", or "".
230 Faster image zooming and rotation (fixed-point arithmetic).
236 Test of real number in a range is broken. Thanks to Paul Robins
239 "nearest" operation doesn't allow an optional "variable" argument.
241 The -selectioncommand command is invoked when closing an entry
242 with no selected descendants. Thanks to Jorge Suit Prez Ronda
243 <jsperez@bayesinf.com> for the bug report.
245 In single "mode", the selection anchor is not updated when the
246 selection is moved via the keyboard. Thanks to Jorge Suit Prez Ronda
247 <jsperez@bayesinf.com> for the bug report.
249 Editor overwrites memory (seen best under Windows).
251 The "open" and "close" operations don't check for no arguments.
253 Vertical dotted lines start on wrong y-coordinate when clipped.
255 Active button isn't clipped by column titles.
257 Column titles are still displayed and picked despite -showtitles
260 Editor doesn't automatically select acquired text.
262 Moving the cursor in the editor doesn't clear the selection.
264 Typing a "space" doesn't replace the selection with a space.
266 Traces on the same node loop infinitely. TRACE_ACTIVE flag not
269 The "restore" and "restorefile" operations don't handle newlines
270 in data key/values, node labels, or tags.
271 graph/barchart/stripchart
272 Crosshairs left on screen when the mouse is pulled quicky from the
274 graph/barchart/stripchart
275 Spurious crosshairs also left on the screen if axes are reconfigured
277 graph/barchart/stripchart
278 Image marker not updated if image is changed.
279 graph/barchart/stripchart
280 PostScript not generated for -showvalues option.
281 graph/barchart/stripchart
282 PostScript not generated for errorbars.
284 No check for wrong number of arguments if switch is present.
286 Blt_MallocProcPtr and Blt_FreeProcPtr not declared extern in
289 Bogus test for mask in Blt_TilePolygon routine.
291 Counter for transparent pixels wrong in Win32 version of Blt_PolygonMask.
293 blt_version not set when dynamically loaded into wish83.exe.
295 Note: Stub support is still missing although patches have been
296 graciously provided for the 2.4q release. This will be added as
297 soon as I can get some free time.
299 Changes from 2.4u to 2.4v
304 New -linebuffered switch.
306 bgexec myVar -linebuffered yes -onoutput ShowLine myProg &
308 This option lets you process updated data (-onerror, -onoutput,
309 -error, or -output) on a line by line basis. Normally notifications
310 occur once for entire data block. This switch causes separate
311 notifications to made for each complete line.
313 New -decodeoutput and -decodeerror switches.
315 bgexec myVar -decodeoutput unicode -output myOut myProg &
317 Translates data from the specified encoding to UTF before passing
318 it to the Tcl interpreter. Normally no translation is made (under
319 Windows CR-LF conversions are made) and the raw, typically ASCII,
320 characters are passed back to the Tcl interpreter.
321 Binary data can be collected with the "binary" encoding. For
322 versions using Tcl 8.1 or greater, data is returned as Tcl byte
323 array object, so you can use the "binary" command to convert it
326 set out [bgexec myVar -decodeoutput binary myProg]
327 binary scan $myOut f values
329 New "dumpfile" and "restorefile" operations to "tree" command.
331 Extended -> syntax in tree command to use node names.
333 set data [$tree get root->"fred"->"pebbles"]
335 Improved memory handling of large trees. Pool allocators added to
336 reduce overall memory consumption.
337 graph/stripchart/barchart
338 New -buffergraph switch.
339 .graph configure -buffergraph no
341 New options to fill area under curve of an element.
343 .graph element configure line1 -areapattern solid
344 .graph element configure line2 -areapattern BLT
345 graph/stripchart/barchart
348 .graph element configure line1 -abstol 0.5
350 Designates error tolerance for line simplificiation. Points that
351 vary less than the given tolerance are merged into a single line
354 Can globally replace memory allocation routines by setting
355 pointers Blt_MallocProcPtr and Blt_FreeProcPtr.
357 New "rotate" operation lets you rotate photo images.
362 Fixed a race condition that caused assertion under Windows to fail.
363 When both stdout and stderr are collected, if the stdout handler
364 finishes first, the memory used by read thread handler could be
365 freed before the stderr pipe was closed.
366 graph/stripchart/barchart
367 PostScript coordinates are no longer integers (screen resolution).
368 graph/stripchart/barchart
369 Polygon markers now clipped properly.
371 Vectors can't be mapped to local variables. This was broken
372 in the 2.4r release. Thanks to Johannes Zellner
373 <johannes@zellner.org> for the bug report.
375 Tcl command associated with a vector not destroyed when the vector
376 is deleted. Much thanks to Alexander Eisenhuth <stacom@topmail.de>
377 for the bug report and the example script.
379 "drag&drop" command fails when multiple formats are specified.
380 Seen in the dragdrop2.tcl demo.
382 Incorrectly reports the spline's x-vector to be non-monotonic.
383 Thanks to Chang Li <changl@neatware.com> for the bug report.
385 Fixed pkgIndex.tcl.in to figure out whether to load libBLT24.so
386 or libBLTlite24.so when BLT is loaded, not when the package is
387 registered. Thanks to Dr. Dieter Ruppert <ru@swb.siemens.de> for
388 the bug report and fix.
390 Changes from 2.4t to 2.4u
395 Fixed my stupid error (missing close brace) in ./configure file.
397 Makefile in src/shared doesn't define BLT_LIBRARY. Thanks
398 to terri@ner.com (Terri L. Fischer) for the bug report and fix.
399 graph/barchart/stripchart
400 graph doesn't find vector in global namespace when inside of another
401 namespace. Thanks to Julian H J Loaring <bigj@bigj.demon.co.uk> for
403 graph/barchart/stripchart
404 Scratch buffer to small for PostScript prolog. Thanks again to
405 Julian H J Loaring <bigj@bigj.demon.co.uk> for the bug report
408 "bind" would fail on elements without traces (-linewidth 0).
409 Thanks again to terri@ner.com (Terri L. Fischer) for the bug report.
411 o Many changes to "dnd" command.
413 + -package option is treated as a command prefix (like the
414 scrollbar), not a script. Percent sign substitutions are
415 no longer allowed. Information is passed via key-value
416 parameters like the -onleave, -ondrop procedures. Procedure
417 must return 1 if operation was Ok, and 0 if it failed.
419 + The command arguments for both the "setdata" and "getdata"
420 operations have changed from an arbitrary Tcl script with
421 percent sign substitutions, to a command prefix with
422 key-value arguments appended. The general form is
424 procName widget args...
426 where args is one of more key value pairs.
428 x Relative X-coordinate of drop or pickup.
429 y Relative Y-coordinate of drop or pickup.
430 timestamp Timestamp of transaction.
431 format Format desired.
432 value Value transfered (setdata only).
434 You can use array set to parse "args". For example:
436 proc GetColor { widget args } {
439 puts "x-coordinate is $info(x)"
440 puts "selected format is $info(format)"
442 return [$widget cget -bg]
445 + If an -onmotion procedure is specified for the target, it is
446 automatically invoked on drops before the -dropcmd is run.
447 If it returns 0, the drop is canceled.
449 + Added ./demos/dnd2.tcl to show more complicated example.
450 Just like dnd1.tcl, you need to run two of them at the same
451 time to see the drag-and-drop operations.
453 + Target property wasn't getting reset when changing -onmotion,
454 -onleave, etc. procedures.
456 + Timestamps now displayed as unsigned.
458 Many thanks to Tom Lane <tgl@sss.pgh.pa.us> for all his help and
461 Changes from 2.4s to 2.4t
463 o Tree command syntax changes. Notify and trace operation now work
464 as advertised and a copy operation added. Many thanks to Matt
465 Newman <matt@sensus.org> for meticulously reviewing the command.
467 o graph "snap" operation syntax change. Added support for generating
468 Aldus metafiles and enhanced metafiles under Windows.
471 set image [image create photo]
475 .graph snap -format emf myFile.emf ;# Enhanced metafile
476 .graph snap -format wmf myFile.wmf ;# Aldus placable metafile
477 .graph snap -format emf CLIPBOARD ;# Metafile written into clipboard.
479 Old width and height arguments are replaced with -width and -height
482 .graph snap $image 500 500 ;# Old
483 .graph snap -width 500 -height 500 $image ;# New
485 Thanks to Alain Zuur <a.zuur@marlab.ac.uk> for the enhancement.
487 o Tabset/Tabnotebook -selectforeground option for tabs using wrong
488 configuration option type. Both the bug report and fix are from
489 Mark E. Smith <mark@pearl.grand.gdats.com>. Thanks.
491 o graph "bind" to use closest point instead of line segment when
492 element contains only 1 point. Thanks to Uwe Klein
493 <uwe-klein@foni.net> for the bug report and script.
495 o Hiertable tree view column has been internally renamed to
497 "BLT Hiertable widgetName".
499 It was formerly the name of the widget. Fortunately, you can
500 refer to the column as "treeView" instead.
502 .ht column configure treeView -text "View Label"
504 o There's no ".tree" suffix anymore on the default tree created by
505 the hiertable widget. It's now just the widget name.
507 o Many hiertable column bug fixes. Thanks to Julian H J Loaring
508 <bigj@bigj.demon.co.uk> for all the tests and reports.
510 o Rotated text displayed incorrectly under Windows 95/98 using
511 non-TrueType fonts. A test for typetype fonts has been restored.
512 Thanks to James Pakko <jpakko@ford.com> for the bug report and
515 Under Windows, Non-TrueType fonts are drawn into a bitmap and
516 the bitmap is rotated. This provides the same quality as using
517 rotated fonts for on-screen display. Unfortunately it's much
518 poorer for higher resolution devices such as printers. The best
519 bet is to simply choose TrueType fonts if you can.
521 o Improved Hiertable folder images. Many thanks to Tom Lane
522 <tgl@sss.pgh.pa.us> for the new images.
524 o Bgexec segfaults under Windows (NT/95) if file handler is
525 deleted inside of callback. Thanks to Chris Oliver
526 <coliver@mminternet.com> for the bug report.
528 o graph segfaults if pen style range min/max are the same.
529 Thanks to Thomas Wu <twu@gene.com> for the bug report and script.
531 o tabnotebook and tabset widgets would generate X11 errors if
532 embedded window was resize to zero width/height. Thanks to
533 Ed Ohsone <eosn@rahul.net> for the report and the script to
534 demonstrate the error.
536 Changes from 2.4r to 2.4s
538 o Fixed bug in stripchart (introduced in 2.4r) allowing uninitialized
539 data to be displayed. Thanks to Dick Gooris <gooris@lucent.com> for
542 o AIX dynamic loading. Actually made it work on a 4.3 AIX box.
544 o Fixed -tree option in hiertable. Would segfault if tree was not
545 fully initialized first.
547 o Tree insert operation syntax changed from
549 tree0 insert $node key1 value1 key2 value2
551 tree0 insert $node -data { key1 value1 key2 value2 }
553 o Fixed tree label operation. Save uid instead of string.
555 o Bug in TreeEventProc, should be node != NULL instead of node >= 0
556 Thanks to Julian H J Loaring <bigj@bigj.demon.co.uk> for the
562 1. "eps" canvas item.
564 An encapsulated PostScript canvas item lets you embed an EPS file into
565 the canvas. The "eps" item displays either a EPS preview image found
566 in the file, or a Tk image that you provide.
568 2. "hierbox" and "hiertable" widget.
570 Hierarchical listbox widget. Displays a general ordered tree which
571 may be built on-the-fly or all at once.
573 3. "tabset" and "tabnotebook" widget.
575 Can be used either as a tab notebook or simple tabset. Tabs can
576 be arranged in a variety of ways: multi-tiered, scrolled, and
577 attached to any of the four sides. Tab labels can contain both
578 images and text (text can be arbitrarily rotated). Notebook pages
579 can be torn-off into separate windows and replaced later.
581 4. Changes to vectors.
585 o Vector expressions. The vector now has an "expr" operation
586 that lets you perform math (including math library
587 functions) on vectors. There are several new functions
588 (such as "max", "min", "mean" "median", "q1", "q3", "prod",
589 "sum", "adev", "sdev", "skew", ...)
591 vector expr { sin(x)^2 + cos(x)^2 }
592 y expr { log(x) * $value }
594 o New syntax to create and destroy vectors:
599 The old syntax for creating vectors still works.
603 o Vectors are *not* automatically deleted when their Tcl
604 variable is unset anymore. This means that you can
605 temporarily map vectors to variables and use them as you
606 would an ordinary Tcl array (kind of like "upvar").
608 proc AddValue { vecName value } {
614 There's an "-watchunset" flag to restore the old
615 behavior if you need it.
617 vector create x -watchunset yes
619 o Vectors still automatically create Tcl variables by
620 default. I'd like to change this, but it silently
621 breaks lots of code, so it will stay.
625 o Vector reallocation failed when shrinking the vector.
627 o Vector "destroy" callback made after vector was already freed.
629 o Fixed vector/scalar operations.
631 o Always store results in temporary, so not to overwrite accidently
632 current vector values.
634 5. Changes to Graph, Barchart, Stripchart widgets.
638 o Drop shadows for text (titles, markers, etc). Drop
639 shadows improve contrast when displaying text over a
640 background with similar color intensities.
642 o Postscript "-preview" option to generate a EPS
643 PostScript preview image that can be read and
644 displayed by the EPS canvas item.
646 o New "-topvariable", "-bottomvariable",
647 "-leftvariable", and "-rightvariable" options. They
648 specify variables to contain the current margin
649 sizes. These variables are updated whenever the
652 o New "-aspect" option. Let's you maintain a particular aspect
653 ratio for the the graph.
655 o Image markers can now be stretched and zoomed like
658 o Bind operation for legend entries, markers, and elements.
660 Much thanks to Julian Loaring <bigj@bigj.demon.co.uk>
663 o New "-xor" option for line markers, lets you draw the line
664 by rubberbanded by XOR-ing without requiring the graph to
665 be redrawn. This can be used, for example, to select regions
668 Thanks to Johannes Zellner (joze@krisal.physik.uni-karlsruhe.de)
671 o Can attach a scrollbar to an axis.
673 .sbar configure -command { .graph axis view y }
674 .graph axis configure y -scrollcommand { .sbar set }
678 o Closest line (point) broken when using pens styles.
680 o Marker elastic coordinates were wrong.
682 o PostScript bounding box included the border of the page.
684 o Bad PostScript generated for barchart symbols with stipples.
686 o Wrong dimensions computed with postscript " -maxpect" option.
688 o Text markers fixed.
690 Thanks to De Clarke for the bug report and fix.
693 o Renamed axis configuration from "-range" to "-autorange" to
694 match the documentation.
696 Thanks to Brian Smith for the correction.
698 o Fixed polygon marker pick routine.
700 o Fixed active tab labels overlapping the selected tab.
702 o PostScript graph footer turned off by default. Use -footer option
705 .graph postscript configure -footer yes