1[incr Widgets] CHANGES
2----------------------
3==========================================================================
4CURRENT VERSION:  4.0.2
5PREVIOUS VERSION: 4.0.1
6
7
8
9
10
11
12==========================================================================
13CURRENT VERSION:  4.0.1
14PREVIOUS VERSION: 4.0.0
15DATE: 9/16/02
16CONTACT: Chad Smith (itclguy@attbi.com)
17
18  This is primarily a bug-fix release of the [incr Widgets].  Please see
19the ChangeLog for a detailed explanation of the changes made to the various
20widgets and the SourceForge tickets to which each change is associated.
21
22  Check out the incoming/demos directory.  I've added a couple new widgets
23that were submitted to SourceForge.  Let me know if you think they are
24useful or not.  If so, they can be added to the distribution in a future
25release.
26
27  Many thanks to Marty Backe for his tireless efforts closing out numerous
28SF tickets for this release!
29
30==========================================================================
31
32
33
34==========================================================================
35 -------------------------- iwidgets-4.0.0 ------------------------------
36 -------------------- CHANGES FROM iwidgets-3.1.0 -----------------------
37==========================================================================
38DATE: 8/07/01
39CONTACT: Chad Smith (itclguy@yahoo.com)
40
41--------
42CHANGES:
43--------
44  This release of the [incr Widgets] marks the first time they are
45released independently of the [incr Tcl] distribution.  The Iwidgets
46package is now separate from Itcl and can be optionally downloaded
47and built as a true extension to Itcl (well actually Itk).
48
49  Along with the Makefile/configuration-type changes necessary for
50removing the Iwidgets from Itcl, there are many other changes you
51should note in this release.  I'll try to list each of these:
52
53o - The most important change is that doing a 'package require Iwidgets'
54    no longer pulls the itcl namespace commands into the global namespace.
55    Previously, this was done because none of the itcl-specific commands
56    such as class, configbody, etc. were properly resolved in the [incr
57    Widgets] classes.  Now, all references to itcl commands use proper
58    namespace resolution.  For example, "class iwidgets::Checkbox" is now
59    replaced with "itcl::class iwidgets::Checkbox".
60
61    Here is a list of itcl commands that are now properly scoped:
62	class
63	body
64	configbody
65	scope
66	code
67
68    There are likely many folks in the community that have come to rely
69    on the exporting of itcl commands into the global namespace, so if you're
70    one of these folks you have two choices if you want to use this version
71    of the [incr Widgets]: (1) You can add a "namespace import -force itcl::*"
72    at the beginning of your application (this is what 'package require
73    Iwidgets' used to do); or (2) you can add "itcl::" in front of each of the
74    itcl-specific commands in your code.
75
76o - A new mega-widget, extbutton, was added to the distribution.  Note that
77    this new widget will only work with Tk 8.4 or later.  A man page and
78    test case is available in the distribution.
79
80o - "readonly" was added as a new value for the combobox's -state option.
81
82o - A new option, -gmt, was added to the datefield.  It accepts boolean values.
83
84o - A new option, -state, was added to the radiobox.
85
86o - A new method, bbox, was added to tabset to return the bounding box that
87    will completely enclose all tabs.
88
89o - A new option, -automount, was added to extfileselectionbox and
90    fileselectionbox.
91
92o - Error checking was added to hierarchy's -alwaysquery option to enforce
93    boolean values, and some memory leaks were plugged in the 'clear' method.
94
95==========================================================================
96
97
98
99==========================================================================
100 -------------------------- iwidgets-3.0.0 ------------------------------
101 -------------------- CHANGES FROM iwidgets-2.2.0 -----------------------
102==========================================================================
103
104  [incr Widgets] version 3.0.0 is compatable with itcl3.0
105
106  [incr Widgets] has undergone a major overhaul between the last version 
107and 3.0.0.  Since so many changes have taken place it made more since to 
108list them by widget class name rather than the old style of new features
109and bug fixes.  The majority of the changes are under the covers and will
110have minimal impact of existing scripts, but there are a few that may 
111bite you.  To locate possible incompatabilities, just search this file
112for the key words "POSSIBLE INCOMPATIBILITY".  
113
114  In addition, quite a few new widgets have been added to the set.  They 
115include the following:
116
117	Calendar
118	Checkbox
119	Dateentry
120	Datefield
121        Disjointlistbox
122	Extfileselectionbox
123	Extfileselectiondialog
124	Finddialog
125	Hierarchy
126	Labeledframe
127	Mainwindow
128	Messagebox		
129	Scrolledwidget
130	Timeentry
131	Timefield
132	Watch
133
134  Thanx to the following contributors who have been kind enough to help 
135me support this effort through enhancements, bug fixes, and new widgets.
136
137	John Tucker		jatucker@austin.dsccc.com
138	Mitch Gorman		emrys@net-gate.com
139	John Reekie 		johnr@EECS.Berkeley.EDU
140	Alfredo Jahn		ajahn@spd.dsccc.com
141	Michael McLennan	mmclennan@lucent.com
142	
143
144Labeledwidget
145______________________________________________________________________________
146
147>> Reimplemented geometry management using the grid instead of the packer.
148
149>> Changed component option basis to be that of the "usuals".
150
151>> Removed a redundant frame component named "shell" just below the hull.
152
153>> Corrected labelvariable bug.  Setting the labelvariable had no effect.
154   The code has been corrected such that a trace is installed on the variable
155   which forces an update of the label text upon writes to the variable.
156
157>> Removed the labmargin frame component used for implementing a margin.
158   This is now accomplished via the grid by maintaining an empty row/column
159   for the margin and adjusting its minsize.
160
161>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
162   If you need access to it, use the childsite command.
163
164>> Added new label position orientation settings.  The current label 
165   positions are nw, n, ne, sw, s, se, en, e, es, wn, w, and ws.
166
167>> Updated the test script and man page.
168
169
170Scrolledlistbox
171______________________________________________________________________________
172
173>> Derived from the Scrolledwidget class which provides the vertical
174   and horizontal scrollbars along with the options to control their
175   display.
176
177>> Reimplemented geometry management using the grid instead of the packer.
178
179>> Changed component option basis to be that of the "usuals".
180
181>> Added a -state option that allows you to disable the listbox.  Selection
182   is blocked.  The foreground of the scrolledlistbox label is changed 
183   to disbabledforeground.
184
185>> Fixed the infinite looping problem which would occur with -hscrollmode 
186   set to dynamic and a really long line added just out of the view port.  
187   As you'd scroll down the horizontal scrollbar bar would start flashing 
188   on and off.  
189
190>> Removed the margin frame components used for implementing a margin
191   between the listbox and scrollbars.  This is now accomplished via 
192   the grid by maintaining an empty row/column for the margin and 
193   adjusting its minsize.
194
195>> POSSIBLE INCOMPATIBILITY - Removed -items option.  This was originally
196   put in as a convienence, but it turns out to be quite costly in terms
197   of performance.  It had to go.  The insert/delete/get commands can be
198   used instead which is much more in line with Tk.
199
200>> Updated the test script, demo, and man page.
201
202
203Entryfield
204______________________________________________________________________________
205
206>> Reimplemented geometry management using the grid instead of the packer.
207
208>> Modified the real type validation to except exponents.  Patch provided
209   by evans@engineous.com (Rick Evans).
210
211>> The -state option changes the label to disabledforeground when the
212   entryfield is disabled.
213
214>> Changed component option basis to be that of the "usuals".
215
216>> Added a -pasting configuration option to allow user to enable/disable
217   pasting into the entry component of the entryfield. csmith@adc.com
218   (Chad Smith)
219
220>> Removed hardcoded state comparisons in the _keyPress method and replaced
221   with code to mask out <Ctrl> and <Alt> keypress events. csmith@adc.com
222   (Chad Smith)
223
224
225Pushbutton
226______________________________________________________________________________
227
228>> Changed component option basis to be that of the "usuals".
229
230>> POSSIBLE INCOMPATABILITY - The pushButton component has been changed
231   to pushbutton.
232
233>> POSSIBLE INCOMPATABILITY - The following options have been removed 
234   and are not directly available in the pushbutton anymore:
235	-anchor -justify -textvariable
236
237   The underlying button component still maintains them , but not the 
238   pushbutton itself.  You can still set them via the component
239   command, i.e. ".pb component pushButton configure -justify left"
240
241
242Buttonbox
243______________________________________________________________________________
244
245>> Changed component option basis to be that of the "usuals".
246
247
248Shell
249______________________________________________________________________________
250
251>> Changed component option basis to be that of the "usuals".
252
253>> Added a -width and -height option.  A value of zero causes the width 
254   and/or height to be adjusted to the required value based on the size 
255   requests of the components placed in the childsite.  Otherwise, the 
256   width and/or height is fixed.  The default is zero.
257
258>> Added -width and -height tests to the test script and updated the
259   man page.
260
261>> The activate method no longer returns an error if it is called when
262   the shell is already active.  Instead, the shell is just raised.  
263
264
265Dialogshell
266______________________________________________________________________________
267
268>> Reimplemented geometry management using the grid instead of the packer.
269
270>> Changed component option basis to be that of the "usuals".
271
272>> Updated the test script and man page, adding the -width and -height
273   options that are inherited from the shell.
274
275
276Dialog
277______________________________________________________________________________
278
279>> Updated the test script and man page, adding the -width and -height
280   options that are inherited from the shell.
281
282
283Selectionbox
284______________________________________________________________________________
285
286>> Reimplemented geometry management using the grid instead of the packer.
287
288>> Changed component option basis to be that of the "usuals".
289
290>> Modified the insert and delete methods to use the items insert and
291   delete method rather than configuring the -items option which has
292   been removed from the underlying scrolledlistbox.
293   
294>> Removed the margin frame component used for implementing a margin
295   between the items and selection.  This is now accomplished via 
296   the grid by maintaining an empty row for the margin and adjusting 
297   its minsize.
298
299>> Removed the unecessary frame that was used to contrain the width
300   and height of the widget.  This is now performed directly on the 
301   widget hull.
302
303>> POSSIBLE INCOMPATABILITY - The following options have been removed 
304   and are not directly available in the selectionbox anymore:
305	-hscrollmode -itemslabelpos -labelmargin -margin -relief 
306	-sbwidth -scrollmargin -selectionlabelpos -vscrollmode 
307
308   The underlying components still maintain them, but not the 
309   selectionbox itself.  You can still set them via the component
310   command, i.e. ".sb component selection configure -labelpos nw" or
311   ".sb component items configure -hscrollmode static"
312
313>> Added a -width and -height option.  A value of zero causes the width 
314   and/or height to be adjusted to the required value based on the size 
315   requests of the components placed in the childsite.  Otherwise, the 
316   width and/or height is fixed.  The default is zero.
317
318>> Updated the test script, demo, and man page.
319
320
321Selectiondialog
322______________________________________________________________________________
323
324>> Pack propagation is now handled by the shell class.
325
326>> Modified the insert and delete methods to use the insert and
327   delete method rather than configuring the -items option which has
328   been removed from the underlying scrolledlistbox.
329
330>> Changed component option basis to be that of the "usuals".
331
332>> POSSIBLE INCOMPATABILITY - The "sb" component has been renamed to be
333   "selectionbox".  This is much more descriptive.
334
335>> POSSIBLE INCOMPATABILITY - The following options have been removed 
336   and are not directly available in the selectiondialog anymore:
337	-hscrollmode -itemslabelpos -labelmargin -margin -relief 
338	-sbwidth -scrollmargin -selectionlabelpos -vscrollmode 
339
340   The underlying components still maintain them, but not the 
341   selectiondialog itself.  You can still set them via the component
342   command, i.e. ".sd component selectionbox configure -margin 10" or
343   ".sd component selectionbox component items configure -hscrollmode static"
344
345>> The -width and -height options are now controlled by the shell class.  
346   A value of zero causes the width and/or height to be adjusted to the 
347   required value based on the size requests of the components.  Otherwise, 
348   the width and/or height is fixed.  The default is zero.
349
350
351Scrolledtext
352______________________________________________________________________________
353
354>> Derived from the Scrolledwidget class which provides the vertical
355   and horizontal scrollbars along with the options to control their
356   display.
357
358>> Reimplemented geometry management using the grid instead of the packer,
359   eliminating quite a few unneeded frames along the way.
360
361>> Changed component option basis to be that of the "usuals".
362
363>> Removed the margin frame components used for implementing a margin
364   between the text and scrollbars.  This is now accomplished via 
365   the grid by maintaining an empty row/column for the margin and 
366   adjusting its minsize.
367
368>> The -state option changes the label to disabledforeground when the
369   scrolledtext is disabled.
370
371>> Fixed the infinite looping problem which would occur with -wrap set
372   to none, -hscrollmode set to dynamic and a really long line added
373   just out of the view port.  As you'd scroll down the horizontal 
374   scrollbar bar would start flashing on and off.  
375
376>> Added an index argument to the import method so a file can be
377   imported into the text area at positions other than just the end.
378
379>> Updated the test script and man page.
380
381
382Feedback
383______________________________________________________________________________
384
385>> Corrected namspace problem by removing global scope qualifier from
386   class definition as well as method and option bodies.  Bug report
387   and patch provided by evans@engineous.com (Rick Evans).
388
389
390Hyperhelp
391______________________________________________________________________________
392
393>> Corrected namspace problem by removing global scope qualifier from
394   class definition as well as method and option bodies.  Bug report
395   provided by evans@engineous.com (Rick Evans).
396
397
398Scrolledhtml
399______________________________________________________________________________
400
401>> Corrected namspace problem by removing global scope qualifier from
402   class definition as well as method and option bodies.  Bug report
403   provided by evans@engineous.com (Rick Evans).
404
405
406Canvasprintbox
407______________________________________________________________________________
408
409>> Added tcl_platform to list of global variables declared in print
410   method.  Bug report provided by evans@engineous.com (Rick Evans).
411
412
413Scrolledcanvas
414______________________________________________________________________________
415
416>> Derived from the Scrolledwidget class which provides the vertical
417   and horizontal scrollbars along with the options to control their
418   display.
419
420>> POSSIBLE INCOMPATIBILITY - The ScrCanvas component has been renamed
421   canvas.
422
423>> The -state option changes the label to disabledforeground when the
424   scrolledcanvas is disabled.
425
426>> Reimplemented geometry management using the grid instead of the packer.
427
428>> Changed component option basis to be that of the "usuals".
429
430>> Removed the margin frame components used for implementing a margin
431   between the canvas and scrollbars.  This is now accomplished via 
432   the grid by maintaining an empty row/column for the margin and 
433   adjusting its minsize.
434
435>> Updated the test script, demo, and man page.
436
437
438Scrolledframe
439______________________________________________________________________________
440
441>> Derived from the Scrolledwidget class which provides the vertical
442   and horizontal scrollbars along with the options to control their
443   display.
444
445>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
446   If you need access to it, use the childsite command.
447
448>> POSSIBLE INCOMPATIBILITY - The scrCanvas component has been renamed
449   canvas and the scrFrame component to sfchildsite.
450
451>> Reimplemented geometry management using the grid instead of the packer.
452
453>> Changed component option basis to be that of the "usuals".
454
455>> Fixed the infinite looping problem which would occur with -hscrollmode 
456   set to dynamic and a really long component added just out of the view 
457   port.  As you'd scroll down the horizontal scrollbar bar would start 
458   flashing on and off.  
459
460>> Removed the margin frame components used for implementing a margin
461   between the canvas and scrollbars.  This is now accomplished via 
462   the grid by maintaining an empty row/column for the margin and 
463   adjusting its minsize.
464
465>> Updated the test script, demo, and man page.
466
467
468Promptdialog
469______________________________________________________________________________
470
471>> Changed component option basis to be that of the "usuals".
472
473>> POSSIBLE INCOMPATABILITY - Renamed the "ef" component to "prompt".
474
475>> POSSIBLE INCOMPATABILITY - The following options have been removed 
476   and are not directly available in the promptdialog anymore:
477	-fixed -justify -labelbitmap -labelimage -labelmargin 
478	-state -textvariable -width
479
480   The underlying components still maintain them, but not the 
481   promptdialog itself.  You can still set them via the component
482   command, i.e. ".pd component prompt configure -labelpos w" 
483
484>> Updated the test script, demo, and man page.
485
486
487Messagedialog
488______________________________________________________________________________
489
490>> Changed component option basis to be that of the "usuals".
491
492>> POSSIBLE INCOMPATABILITY - Renamed the "msg" component to "message".
493
494>> POSSIBLE INCOMPATABILITY - The following options have been removed 
495   and are not directly available in the messagedialog anymore:
496	-anchor -justify -wraplength
497
498   The underlying components still maintain them, but not the 
499   messagedialog itself.  You can still set them via the component
500   command, i.e. ".md component message configure -justify left" 
501
502>> Reimplemented geometry management using the grid instead of the packer.
503
504>> Updated the test script, demo, and man page.
505
506
507Hierarchy
508______________________________________________________________________________
509
510>> New iwidgets hierarchical data viewer mega-widget which manages a list 
511   of nodes that can be expanded or collapsed.  Individual nodes can be 
512   highlighted.  Clicking with the right mouse button on any item brings 
513   up a special item menu.  Clicking on the background area brings up
514   a different popup menu.
515
516>> Many thanks to Michael McLennan who provided the nucleus of this code.
517
518>> Man page, test script, and demo have been produced.
519
520>> The catalog demo has been updated to include the hierarchy demo.
521
522
523Checkbox
524______________________________________________________________________________
525
526>> New iwidget checkbox mega-widget which manages a group of check
527   buttons quite similar to that of the existing radiobox.
528
529>> Thanks to John Tucker for the contributed code. 
530
531>> Man page, test script, and demo have been produced.
532
533>> The catalog demo has been updated to include the checkbox demo.
534
535
536Radiobox
537______________________________________________________________________________
538
539>> Changed component option basis to be that of the "usuals".
540
541>> Changed the base class to be labeledframe.
542
543>> Updated the test script, demo, and man page.
544
545
546Spinner
547______________________________________________________________________________
548
549>> Reimplemented geometry management using the grid instead of the packer.
550
551>> Removed a redundant frame component named "arrowFrame".
552
553>> Removed the use of the option database to set the option values.
554
555
556Spinint
557______________________________________________________________________________
558
559>> Removed the use of the option database to set the option values.
560
561
562Datefield
563______________________________________________________________________________
564
565>> New iwidget.  The datefield is a smart date entry field with adjustable 
566   built-in intelligence levels.  It can be made smart enough not to accept
567   any bad dates or made dumb enough to accept any old thing typed.  Since
568   it is derived from the labeledwidget, it also includes an optional label.
569
570>> Man page, test script, and demo have been produced.
571
572>> The catalog demo has been updated to include the datefield demo.
573
574
575Calendar
576______________________________________________________________________________
577
578>> New iwidget.  The calendar widget provide for the selection and/or
579   display of dates.  It displays a single month at a time.  Buttons exist 
580   on the top to change the month in effect turning th pages of a calendar.
581   As a page is turned, the dates for the month are modified.  Selection 
582   of a date visually marks that date.  The selected value can be monitored 
583   via the -command option or just retrieved using the get method.  Methods 
584   also exist to select a date and show a particular month.  
585
586   The option set allows the calendars appearance to take on many forms.
587   For example, the background of the weekdays and weekends can be 
588   independently changed, the starting day of the week can be set to
589   any of the days, the titles and fonts of everything is configurable,
590   and an outline can be displayed around the each day. 
591
592>> Many thanks to Michael McLennan who provided me a early copy of his
593   book which gave me the example on which this code is based.
594
595>> Man page, test script, and demo have been produced.
596
597>> The catalog demo has been updated to include the calendar demo.
598
599
600Dateentry
601______________________________________________________________________________
602
603>> New iwidget.  Dateentry is a quicken style date entry field with a 
604   popup calendar produced by combining the datefield and calendar widgets 
605   together.  This allows a user to enter the date via the keyboard or by 
606   using the mouse by selecting the calendar icon which brings up a popup 
607   calendar.  Since it is based on both the datefield and calendar, both
608   option sets exists under the same roof in the dateentry.
609
610>> Man page, test script, and demo have been produced.
611
612>> The catalog demo has been updated to include the dateentry demo.
613
614
615Messagebox
616______________________________________________________________________________
617
618>> New iwidget.  Implements an information messages area widget with 
619   scrollbars.  Message types can be user defined and configured.  Their 
620   options include foreground, background, font, bell, and their display
621   mode of on or off.  This allows message types to defined as needed,
622   removed when no longer so, and modified when necessary.  
623
624   The number of lines that can be displayed may be limited.  When this 
625   limit is reached, the oldest line is removed.  There is also support 
626   for saving the contents to a file, using the standard file selection 
627   dialog.
628
629>> Many thanks to Alfredo Jahn who came up with idea and provided me a
630   very stable working version which I extended to support user defined
631   message types.
632
633>> Man page, test script, and demo have been produced.
634
635>> The catalog demo has been updated to include the messagebox demo.
636
637
638Spintime
639______________________________________________________________________________
640
641>> Reimplemented geometry management using the grid instead of the packer.
642
643>> Removed the margin frame component used for implementing a margin
644   between the hour, minute and second components.  This is now accomplished 
645   via the grid by maintaining an empty row for the margin and adjusting 
646   its minsize.
647
648>> POSSIBLE INCOMPATIBILITY - The delete, clear, and insert methods have
649   been removed.  Use the show method to set the time.
650
651>> POSSIBLE INCOMPATIBILITY - The get method has been changed such that
652   it returns the time as either a colon separated string or a clock clicks
653   value.
654
655>> Added a show method to be used to set the time.  The method takes as
656   an argument either a valid time string, a clock clicks value, or the
657   keyword now.
658
659>> The current time will now appear as the default.
660
661>> Updated the test script, demo, and man page.
662
663
664Spindate
665______________________________________________________________________________
666
667>> Reimplemented geometry management using the grid instead of the packer.
668
669>> Removed the margin frame component used for implementing a margin
670   between the month, day and year components.  This is now accomplished 
671   via the grid by maintaining an empty row for the margin and adjusting 
672   its minsize.
673
674>> Spindate now uses the clock command during the spinning of the date
675   components.  Only valid dates are spun now.
676
677>> POSSIBLE INCOMPATIBILITY - Changed the -monthformat option to be 
678   string, brief, and full doing away with the optional user specified list.
679
680>> POSSIBLE INCOMPATIBILITY - The delete, clear, and insert methods have
681   been removed.  Use the show method to set the date.
682
683>> POSSIBLE INCOMPATIBILITY - The get method has been changed such that
684   it returns the date as either a string or a clock clicks value.
685
686>> Added a show method to be used to set the time.  The method takes as
687   an argument either a valid time string, a clock clicks value, or the
688   keyword now.
689
690>> The current date will now appear as the default.
691
692>> Selection and keyboard entry of values has been disabled.  The value
693   may only be changed via the spinners which insures correct operation.
694
695>> Updated the test script, demo, and man page..
696
697
698Feedback
699______________________________________________________________________________
700
701>> Reimplemented geometry management using the grid instead of the packer.
702
703>> Made all the itk_components public.
704
705>> Added a trough which appears beneath the feedback widget.  It has a
706   -troughcolor option to set its color.
707
708
709Scrolledhtml
710______________________________________________________________________________
711
712>> Added -alink (same as -linkhighlight, but matches html naming) and -update 
713   options.
714
715>> Added new tags to come up to html3.2:
716     basefont
717     div
718     font
719     table
720     td
721     th
722     tr
723
724>> Added numbering formats for <li> tag.
725
726>> Fixed to delete images after page is cleared.
727
728>> Fixed to bring anchor points to middle when moving down to a nearby 
729   anchor point.
730
731>> Fixes to regular expression matches.
732
733>> Performance enhancements with stack algorithm and regular expression 
734   searches.
735
736
737Hyperhelp
738______________________________________________________________________________
739
740>> Added -closecmd and -maxhistory options.
741
742>> Made itk_components public/private (which could conceivably break 
743   someone, if they were using a component directly that is now private) 
744
745>> Fixed bindings.
746
747
748Toolbar
749______________________________________________________________________________
750
751>> Added a destructor to cancel the possibly pending after command request
752   to display the popup help.
753
754>> Corrected the vertical packing such that items are expanded horizontally.
755
756
757Finddialog
758______________________________________________________________________________
759
760>> New iwidget.  Finddialog works in conjunction with a text or 
761   scrolledtext widget to provide a means of performing search operations.  
762   The user is prompted for a text pattern to be found in the text or 
763   scrolledtext widget.  The search can be for all occurances, by regular 
764   expression, considerate of the case, or backwards.
765
766>> Man page, test script, and demo have been produced.
767
768>> The catalog demo has been updated to include the finddialog demo.
769
770
771Panedwindow
772______________________________________________________________________________
773
774>> Corrected show/hide bug which caused the placement of the sash and
775   separator to be incorrect.  If you added a couple of panes and then
776   hid them all of them followed by showing them, the sash distribution
777   was wrong.
778
779>> Corrected a divide by zero problem which occurred when you hid all
780   of the panes.
781
782
783Combobox
784______________________________________________________________________________
785
786>> Mitch Gorman (emrys@net-gate.com) has taken over maintenance of the 
787   combobox from John Sigler.
788
789>> Entry completion has been added.  Should your typing in the entry
790   field match an item in the list, it is completed for you automatically.
791   This feature is switchable via the -completion option.  The default
792   is on.
793
794>> It now utilizes a true button for the arrowBtn component.
795
796>> The -state option has been fixed such that it can be truly disabled.
797
798>> Reimplemented geometry management using the grid instead of the packer.
799
800>> A -grab option has been added to do both local and global grabs 
801   of the drop-down listbox.
802
803>> POSSIBLE INCOMPATIBILITY - Removed -items option.  This was originally
804   put in as a convienence, but it turns out to be quite costly in terms
805   of performance.  It had to go.  The insert/delete/get commands can be
806   used instead which is much more in line with Tk.
807
808>> POSSIBLE INCOMPATIBILITY - The following options have been removed:
809   -autoclear and -fliparrow.
810
811>> The combobox now utilizes built-in bitmaps for button glyphs.
812
813>> Removed the margin frame component used for implementing a margin
814   between the entry and arrow button.  This is now accomplished via 
815   the grid by maintaining an empty column for the margin and adjusting 
816   its minsize.
817
818>> List elements are preserved when switching between drop-down and simple
819   styles via the -dropdown option.
820
821>> The functionality of the -state and -editable options have been made
822   completely independent of each other.  It can be editable/normal, 
823   non-editable/normal, or disabled, and toggling one option will not 
824   impact the other option when the first is toggled back
825
826>> Corrected the validation processing in the -unique option.
827
828>> Fixed various error messages returned due to bad arguments, options, etc.
829
830
831Fileselectionbox
832______________________________________________________________________________
833
834>> Reimplemented geometry management using the grid instead of the packer.
835
836>> Changed component option basis to be that of the "usuals".
837
838>> Removed frame components used for margins.  This is now accomplished 
839   via the grid by maintaining an empty row/column for the margin and 
840   setting its minsize.
841
842>> Changed the default value of -nomatchstring to "".
843
844>> The directory and files lists are now shown without the leading
845   directory name.  Although this differs from the Motif standard, it 
846   keeps the fileselectionbox more in line with the tk_getSaveFile dialog.
847
848>> POSSIBLE INCOMPATIBILITY - The -style option which allowed you to
849   display the fileselectionbox in a "notif" style using comboboxes 
850   for the filter and selection and kept the lists in a panedwindow 
851   has been removed.  A related option, -dirsfraction is also gone.
852
853   This feature caused the fileselectionbox to be much slower during
854   construction than anticipated.  If you liked the "notif" style, it 
855   exists in a new mega-widget call extfileselectionbox and 
856   extfileselectiondialog.
857
858>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
859   If you need access to it, use the childsite command.
860
861>> POSSIBLE INCOMPATABILITY - The following options have been removed 
862   and are not directly available in the fileselectionbox anymore:
863
864	-relief -repeatdelay -repeatinterval -labelmargin
865	-hscrollmode -sbwidth -scrollmargin -vscrollmode
866	-dirslabelpos -fileslabelpos -filterlabelpos
867	-selectionimage- selectionlabelpos -filterfocuscommand
868	-selectionfocuscommand -dbldirscommand -dblfilescommand
869
870   The underlying components still maintain them , but not the 
871   fileselectionbox itself.  You can still set them via the component
872   command, i.e. ".fsb component dirs configure -hscrollmode none"
873
874>> POSSIBLE INCOMPATIBILITY - The -horizmargin and -vertmargin options
875   have been removed.  I doubt if anybody other than the most picky
876   of people will be effected.
877
878>> Added new childsite position orientation settings.  The new 
879   positions are n, s, e, w, top, bottom, and center.
880
881>> Updated the test script and man page.
882
883
884Extfileselectionbox
885______________________________________________________________________________
886
887>> New Iwidget.  The extfileselectionbox is basically the "notif" portion 
888   of the previous version of the fileselectionbox.  It was separated from
889   the fileselectionbox for performance reasons.
890
891>> Created test script, demo and man page.
892
893>> The catalog demo has been updated to include the extfileselectionbox demo.
894
895
896Tabset
897______________________________________________________________________________
898>> Corrected tab display problem which was occurring on HP machines.
899
900   Some additional updates were installed in tab selection and deselection.
901   They will only be invoke should the os be HP-UX.  Also, the ability
902   to scroll the tabs via MB2 has been disabled for HPs.  Thanks to 
903   tilt@designacc.com (Thomas Tempero) for first reporting the problem
904   mikesz@pcs.mot.com (Michael Szilagyi) for sending me the fix which
905   was implemented.
906
907
908Timefield
909______________________________________________________________________________
910
911>> New iwidget.  The timefield is a smart time entry field.  It verifies
912   user time input prior to its display.  Since it is derived from the 
913   labeledwidget, it also includes an optional label.
914
915>> Man page, test script, and demo have been produced.
916
917>> The catalog demo has been updated to include the timefield demo.
918
919
920Watch
921______________________________________________________________________________
922
923>> New iwidget.  The watch widget displays a simple clock face.  Methods
924   exist to set/get the time.  The hands can be adjusted via mouse selection
925   with the new setting being retrievable via the get method.  It is
926   very configurable.  The colors of the hands, face, and marks can all
927   be changed to suit your needs.
928
929>> Many thanks to John Tucker who developed this nice widget.
930
931>> Man page, test script, and demo have been produced.
932
933>> The catalog demo has been updated to include the watch demo.
934
935
936Timeentry
937______________________________________________________________________________
938
939>> New iwidget.  Timeentry, like the dateentry, is along the quicken 
940   lines as well.  It displays a timefield with a watch icon  button
941   beside it.  Selection of button presents a popup watch which enables
942   you to select the time by dragging the hands about the face.  The 
943   popup has a close button that removes the popup and sets the timefield
944   to the value previously displayed in the watch.  You can also just
945   enter the time directly as you would in the standard timefield.
946
947>> Man page, test script, and demo have been produced.
948
949>> The catalog demo has been updated to include the timeentry demo.
950
951
952==========================================================================
953 -------------------------- iwidgets-2.1.1 ------------------------------
954 -------------------- CHANGES FROM iwidgets-2.1.0 -----------------------
955==========================================================================
956
957  [incr Widgets] version 2.1.1 is compatable with itcl2.1
958
959NEW FEATURES
960------------------------------------------------------------------------------
961>> Added pagecget method to notebook class.
962
963   Patch supplied by Tom Tromey (tromey@cygnus.com).
964
965>> Added buttoncget method to buttonbox class.
966
967   Patch supplied by Tom Tromey (tromey@cygnus.com).
968
969>> Added buttoncget method to dialogshell class.
970
971   Patch supplied by Tom Tromey (tromey@cygnus.com).
972
973>> Added -closecmd option to the hyperhelp mega-widget.
974
975   Previously, closing the hyperhelp widget deleted the object which was
976   deemed to be user hostile.  Now, there exists a -closecmd option
977   which defaults to just deactivating the widget.  Should you wish to
978   destroy the widget, either do so explictly or modify the -closecmd
979   to do it.
980
981
982BUG FIXES
983------------------------------------------------------------------------------
984>> Corrected selectborderwidth option class name in the toolbar
985
986   The class name was set to SelectBorderWidth rather than BorderWidth.  
987   This created problems when attempting to use the toolbar with
988   other widgets like the scrolledcanvas.  Bug report by csmith@adc.com 
989   (Chad Smith).
990
991>> Allow negative indexes in scrolledlistbox
992
993   Negative indicies are reasonable and valid.  Bug report by 
994   wfarel@cas.org (Bill Farel).
995
996>> Corrected problem with caps-lock and num-lock in entryfields
997
998   Validation was not being being done if the num-lock or caps-lock
999   keys are down.  Bug report by ronnie@r2d2.wink.com (Ronnie Carpio).
1000
1001>> Corrected problem with special character entry in entryfields
1002
1003   Upon entry of a special character in the entry field like \ or [
1004   an error would be reported: "Error: missing "".  The substitutions
1005   being performed in iwidgets::Entryfield::_keyPress have been corrected.
1006   Bug report and patch provided by ronnie@r2d2.wink.com (Ronnie Carpio).
1007
1008>> Made the relayout method in pushbutton protected.
1009
1010   The relayout method in the pushbutton needed to be changed from private
1011   to protected so parent classes can have access.  Bug discovered by 
1012   Mario Weilguni <e8732250@student.tuwien.ac.at>
1013
1014>> Corrected html tag parsing in scrolledhtml mega-widget
1015
1016   Fixed regular expressions parsing html tags to ignore text in quotes 
1017   and only examine first attribute in list.
1018
1019>> Corrected optionmenu insert bug
1020
1021   The option menu would not allow you to insert an entry beyond the 
1022   current length of the popup menu.  It should just default to using
1023   the end in this case.
1024
1025>> Corrected scrolledtext import method newline insertion problem
1026
1027   There was a bug in the scrolledtext widget.  It always inserted a
1028   newline before the text of the file when doing an "import".  And it
1029   didn't correctly preserve a trailing newline on the file.  Reported
1030   by Tom Tromey (tromey@cygnus.com)
1031
1032>> Corrected minor problems in notebook class.
1033
1034   The index method gave an error if (eg) "select" wass passed but
1035   there is no selection.  Instead it should return -1 as documented.
1036   Changed it to always return -1 in case of error.  This makes more
1037   sense.
1038 
1039   If there are no items in the notebook, the -scrollcommand should 
1040   still be run (if it is set).  Otherwise, you end up with a
1041   scrollbar that looks odd, and when you try to scroll you get
1042   errors.  Changed it so that it will tell the scrollbar that
1043   the entire notebook is being displayed.  Reported by Tom Tromey 
1044   (tromey@cygnus.com)
1045
1046>> Corrected menubar menucget command to return errors for bad options.
1047
1048   The command "<menubar> menucget .element" returned something other
1049   than an error message.  This has been corrected.  Reported by Tom 
1050   Tromey (tromey@cygnus.com)
1051
1052>> Corrected menubar man page.
1053
1054   The usage for the menubar menucget command was wrong and has been 
1055   fixed.  Reported by Tom Tromey (tromey@cygnus.com)
1056
1057
1058INCOMPATIBLE CHANGES
1059------------------------------------------------------------------------------
1060
1061
1062==========================================================================
1063 -------------------------- iwidgets-2.1.0 ------------------------------
1064 -------------------- CHANGES FROM iwidgets-2.0.1 -----------------------
1065==========================================================================
1066
1067  [incr Widgets] version 2.1.0 is compatable with itcl2.1
1068
1069NEW FEATURES
1070------------------------------------------------------------------------------
1071>> Eliminated unneeded update idletask calls.
1072
1073   Went through many of the [incr Widgets] and got rid of those update
1074   idletask calls that were not really needed.  This should speed a few
1075   of them up a bit.
1076
1077>> The hyperhelp mega-widget has been enhanced such that topic items
1078   don't need to be in the help directory.  
1079
1080   It's just an added option in specifying topics.  To use it, you would 
1081   replace '-topics {topic1 topic2 topic3}' with 
1082   '-topics {topic1 {topicname2 filename2} {topic3 filename3}}'.  In other 
1083   words, you only have to change where you want to specify a pathname. If 
1084   you don't specify a filename, everything works the same.
1085
1086>> Added a -autoclear option to the combobox.
1087
1088   The combobox was doing an automatic erasure of the entry field contents
1089   upon hitting return.  With this option, you can turn that off but it
1090   still puts the string in the list.
1091
1092>> Added a -master option to the shell class.
1093
1094   The shell made all instances transient with "." as the master.  With
1095   this option, you can change the master to other toplevels.  The default
1096   is no master for shells, and "." for all dialogs which are derived from
1097   shell.
1098
1099>> Added a -style option to the fileselectionbox and fileselection dialog.
1100
1101   Tony Parent did a great job of augmenting the fileselectionbox with
1102   a style option that allows you to change the layout from the standard
1103   motif look-and-feel to a better than motif layout.  This new layout
1104   is called notif and features comboboxes for the filter and selection
1105   entry fields and a paned window contains the two listboxes allowing
1106   you to change the allocation of space for the lists.
1107
1108>> Removed the center childsite position for the fileselectionbox.
1109
1110   This is a side effect of the notif change made by Tony Parent.  It
1111   just isn't easy to have a center position when your in a pane window.
1112   It is a small sacrifice for the having an alternate layout of the
1113   fileselectionbox.
1114
1115
1116BUG FIXES
1117------------------------------------------------------------------------------
1118>> The makefile was amended to install the unknown.gif file correctly.
1119
1120   The hyperhelp and scrolledhtml widgets need an unknown gif file that
1121   is used when unable to load an image.  The makefile was not properly
1122   installing it.
1123
1124>> The scrolledhtml.n man page was fixed to allow man2html to work.
1125
1126   The scrolledhtml.n file had a bug which would hang man2html during a
1127   "make install-html".  The bug affected only the htmling of the file
1128   not the man page itself.
1129
1130
1131INCOMPATIBLE CHANGES
1132------------------------------------------------------------------------------
1133
1134
1135==========================================================================
1136 -------------------------- iwidgets-2.0.1 ------------------------------
1137 -------------------- CHANGES FROM iwidgets-2.0.0 -----------------------
1138==========================================================================
1139
1140  [incr Widgets] version 2.0.1 is compatable with itcl2.0
1141
1142NEW FEATURES
1143------------------------------------------------------------------------------
1144>> Added extra frame around canvas widget in Scrolledcanvas class
1145
1146   The borderwidth, relief, and hightlight options have been removed from
1147   the canvas widget and placed on the new encompassing frame widget.  This
1148   fixes the problem with canvas widgets including the border and highlight
1149   ring in the clipping region.  
1150
1151>> Added extra frame around text widget in Scrolledtext class
1152
1153   The borderwidth, relief, and hightlight options have been removed from
1154   the text widget and placed on the new encompassing frame widget.  This
1155   fixes the problem with text widgets including the border and highlight
1156   ring in the clipping region.  
1157
1158>> The canvasprintbox stamp supports resizing and default print buttons
1159
1160   Tako Schotanus updated the canvasprintbox such that the stamp now gets
1161   updated whenever the window is resized.  Also, he modified the dialog
1162   default buttons to be Print, Apply and Cancel.  Apply does a refresh and
1163   Print does what you'd expect.
1164
1165>> Added feedback mega-widget to [incr Widgets]
1166
1167   The feedback widget is a gage for displaying process status.  Display 
1168   is given as a percentage and as a thermometer type bar. Options exist 
1169   for adding a label and controlling its position.
1170
1171   Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his 
1172   feedback.tcl code from tk inspect. The original code is copyright 1995
1173   Lawrence Berkeley Laboratory.
1174
1175>> Added scrolledhtml mega-widget to [incr Widgets]
1176
1177   The scrolledhtml widget implements a scrollable html text widget through
1178   inheritance from scrolledtext.  Import reads from an html file, while 
1179   export still writes plain text.  Also provides a render command, to 
1180   display html text passed in as an argument.
1181
1182   Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his 
1183   tkhtml.tcl code from tk inspect. The original code is copyright 1995
1184   Lawrence Berkeley Laboratory.
1185
1186>> Added hyperhelp mega-widget to [incr Widgets]
1187
1188   The hyperhelp widget implements a help facility using html formatted 
1189   hypertext files.
1190
1191   Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his 
1192   help.tcl code from tk inspect.
1193
1194>> Added menubar mega-widget to [incr Widgets]
1195
1196   Actually it was kind-of already an iwidget.  It was living in the incoming
1197   directory for a time.  No one had a complaints about it so now it is
1198   a full citizen. 
1199
1200
1201BUG FIXES
1202------------------------------------------------------------------------------
1203>> Corrected spurious quote in toolbar.itk
1204
1205   Thanks to Tom Tromey for finding this elusive little buglet and sending
1206   the patch.  Wish all problems were reported in this manner.
1207
1208>> Corrected problem with dialogs being unable to acquire a grab.
1209
1210   The dialogshell activate method would generate an error if unable to
1211   acquire a grab for application and global modal dialogs.  The fix 
1212   installed adds a catch and a reattempt loop with a delay.  In other
1213   words, the dialog shell will continuously attempt to acquire the grab
1214   with a delay between attempts.
1215
1216>> Corrected problem with pushbutton not displaying the tab traversal ring.
1217
1218   The pushbutton would not display the tab traversal ring when the default
1219   ring was enabled.  This has been corrected.
1220
1221>> Corrected scrolledlistbox getcurselection method with multiple selectmode.
1222
1223   If the current scrolledlistbox selectmode is multiple, then the 
1224   getcurselection method should always return the selected items as
1225   a list, regardless of the number of items selected.  It used to
1226   return a list only if more than one item is selected.
1227
1228>> Buttonbox wasn't adjusting geometrically following hides if not mapped.
1229
1230   Bernard Johnson from TI was good enough to find this one.  It could
1231   be seen by creating a dialog, activating, deactivating, then hiding
1232   a button.  Next, activate it again and you'd notice that the dialog's
1233   buttonbox had not been resized.  The problem was that the resizing
1234   of the buttonbox was bound to the map event, which once mapped, was
1235   removed when it shouldn't have been.  
1236
1237>> Buttonbox wasn't adjusting properly following button additions which
1238   were preceeded by deletions.
1239
1240   Greg McFarlane found this one.  The buttonbox needed to do perform
1241   and update idletasks following the sizing of the box during a deletion.
1242   Otherwise, the values returned by winfo were incorrect during a
1243   subsequent button addition.
1244
1245>> Removed underlining of listbox items in the combobox.
1246
1247   Milind Khandekar requested that this feature be removed.  It was 
1248   annoying.
1249
1250
1251INCOMPATIBLE CHANGES
1252------------------------------------------------------------------------------
1253
1254
1255==========================================================================
1256 -------------------------- iwidgets-2.0.0 ------------------------------
1257 -------------------- CHANGES FROM iwidgets-2.0b4 -----------------------
1258==========================================================================
1259
1260  [incr Widgets] version 2.0.0 is compatable with itcl2.0
1261
1262NEW FEATURES
1263------------------------------------------------------------------------------
1264>> The copyright has been assigned to DSC Communications Corporation.
1265
1266   The copyright has been transferred from private individuals to DSC.
1267   It is still an open copyright, just changes in the legalize wording.
1268
1269>> Added several new mega-widgets.
1270
1271   The new mega-widgets include the toolbar, tabnotebook, tabset, and 
1272   notebook.  Check the man pages for details.
1273
1274>> Added demo catalog.
1275
1276   The demos directory now contains a catalog program.  It displays the 
1277   code for each demo upon single select.  Double-click starts the demo.
1278
1279>> Added incoming directory for experimental mega-widgets.
1280
1281   An incoming directory exists in the distribution which contains beta
1282   state mega-widgets.  They are not installed, but do include the needed
1283   doc, demos, and tests.  These mega-widgets may or may not make the cut.
1284   Please send feedback on their viability.  If enough positive response
1285   is felt, then they will be moved up.  Otherwise, I'll move them to an
1286   outgoing directory and later delete them altogether.
1287
1288>> With the introduction of the new itcl-2.0b3 code command, the following
1289   changes were required.
1290
1291   All "bind" and "after" commands now use "code".
1292
1293   All "-command" options and scrollbar commands now use "code".
1294
1295   Removed "uplevel /scope" combinations from command type options.
1296
1297   Replaced "eval" with "uplevel #0" for evaluation of command options.
1298
1299>> Added curselection method to selectionbox and selectiondialog class.
1300
1301   The curselection command from the contained listbox of the selectionbox
1302   has been thinwrapped.  
1303
1304>> Removed BLT dependency for implementing application modal dialogs.
1305
1306   The dialogshell class no longer uses blt_busy for application modal
1307   dialogs.  Instead, local grabs are performed.  The benefits are speed
1308   and extension independence.  Minus is the loss of the watch cursor
1309   which blt_busy used.  I figure, programmers wanting the cursor action
1310   can implement it themselves on an as needed basis.
1311
1312>> Added a grab stack in the dialogshell.
1313
1314   The dialogshell uses a grabstack to keep track of the current blocking
1315   levels.  Thus a application modal dialog can activate another one and
1316   upon closing the last one, the next one in the stack gets the block.
1317   This feature did not exist before.
1318
1319>> Replace "after 1" commands with "after idle"
1320
1321   This produces the same result, but makes for a cleaner syntax.
1322
1323>> Added center command to the dialogshell.
1324
1325   The dialogshell provides a center command which takes an optional argument
1326   of the path for another widget.  Upon activation, the dialogshell will 
1327   be centered with respect to it.  The command may also be invoked with 
1328   no arguments to center the dialogshell on the screen as a whole.  Since 
1329   all other dialog classes are derived from dialogshell, all dialogs now 
1330   have the center command available.
1331
1332>> Made the Help button hidden by default for dialogs
1333
1334   Most people turn it off right away anyway.  It is still there.  Just need
1335   to do a "show Help" if you need it back.
1336
1337>> Comboxbox now derived from entryfield.
1338
1339   The combobox structure has been modified to be derived from the entryfield
1340   class.  Now combobox labels can be aligned using the labeledwidget 
1341   alignlabels method along with optionmenus, entryfields and such.
1342
1343>> Added -justify and -wraplength to Messagedialog.
1344
1345   The justify and wraplength options are now kept for the label in the
1346   messagedialog widget.
1347
1348>> Added a man page generator for itcl.
1349
1350   In the doc directory is a new utility called mkitclman.  It does a good
1351   job at an initial pass of man page generation for new iwidget classes.
1352   You still need to get in there and beef up the man page which is produced,
1353   but it is better than starting from scratch.
1354
1355>> Added the canvasprintbox and canvasprintdialog mega-widgets.
1356
1357   Two new mega-widgets, canvasprintbox and canvasprintdialog, have been
1358   contributed to [incr Widgets].  Thanks to Tako Schotanus, 
1359   Tako.Schotanus@bouw.tno.nl.
1360   
1361>> Added the textbackground option to the scrolledcanvas widget
1362
1363   The textbackground option has been added to the scrolledcanvas widget
1364   similarly to the scrolledlistbox and entryfield widgets.
1365
1366
1367BUG FIXES
1368------------------------------------------------------------------------------
1369>> Enabled repeat action in spinners.
1370
1371   This was available in iwidgets two versions ago.  I made in incorrect 
1372   merge and lost the change.  It has now been added back into the spinner.
1373
1374>> Eliminated use of #auto in panedwindow.
1375
1376   Using #auto made the test script fail should you run it two times in a
1377   row.  Instead, the class keeps its own unique counter which is always
1378   reset upon construction.  This was more of an annoyance than a bug.
1379
1380>> Corrected selection problem in selectiondialog.
1381
1382   The selectiondialog wasn't configuring the itemscommand properly, so
1383   selection of an item was not reflected in the selection entryfield.
1384
1385>> Corrected index usage problem in buttonbox insert method.
1386
1387   The buttonbox insert method didn't correctly convert the index argument
1388   prior to inserting the new pushbutton.  This has been fixed.
1389
1390>> Corrected flicker problem in scrolled* widgets.
1391
1392   Modified the scrolled* widgets to only change the current scrollbar
1393   display if different than the current setting.  This fixes the flicker 
1394   problem which was apparent during horizontal scrolling.  
1395
1396>> Entryfield command option performs a break.
1397
1398   Following evaluation of the command option for entryfield widgets, a
1399   break is performed.  This caused a problem when entryfields were in
1400   a dialog.  Hitting return in the entryfield, invoked the dialogs 
1401   default button.  This has been fixed.
1402
1403
1404INCOMPATIBLE CHANGES
1405------------------------------------------------------------------------------
1406>> Removed -highlightbackground option from mega-widgets
1407
1408   All the -highlightbackground options have been renamed to be -background.
1409   This was always an annoyance anyway.  Now, setting the -background changes
1410   all the highlightbackgrounds as well.  Should anybody still for some odd
1411   reason need -highlightbackground, just access the component with the
1412   "component name configure" command.
1413
1414
1415==========================================================================
1416 -------------------------- iwidgets-2.0b0 ------------------------------
1417 -------------------- CHANGES FROM iwidgets-2.0b1 -----------------------
1418==========================================================================
1419
1420  [incr Widgets] versions b1, b2, b3, and b4 are compatable with itcl-2.0b2
1421
1422NEW FEATURES
1423------------------------------------------------------------------------------
1424
1425>> A secondary lower case mega-widget command now exits.
1426
1427   Mega-widgets can now be created using the new lower case, more tk'ish
1428   method or still using the class name.
1429
1430   Entryfield .ef   and   entryfield .ef  
1431
1432   both perform the same operation.
1433
1434>> The demos should now all work.  
1435
1436   The correct wish is now called.  itkwish instead of the old itcl_wish.
1437
1438>> The man pages have all been updated to the best of my ability.
1439
1440>> A new more minimal format for the code style has been implemented.  
1441
1442   The class declaration only contains declarations.  All implementation is
1443   spearate.  This creates a much more readable class.
1444
1445>> All class file names as well as the tests, doc, and demos are all lower
1446   case.
1447
1448>> Several new validate types such as hexidecimal and real have been added
1449   to the Entryfield.
1450   
1451>> The Panedwindow class additional commands:
1452
1453   A paneconfigure command exists for configuring indiviual tagged panes.
1454
1455	panedwindow .pw
1456	.pw add first
1457	.pw add last
1458	.pw paneconfigure first -margin 10
1459
1460   An insert command exists.  It takes an index and tag as arguments followed
1461   by optional arguments to be applied to the pane.
1462
1463	.pw insert end second -minimum 20
1464
1465>> The Buttonbox class now has additional commands:
1466
1467   A buttonconfigure command exists for configuring indiviual tagged buttons.
1468
1469	buttonbox .bb
1470	.bb add OK -text OK
1471	.bb add Cancel -text Cancel
1472	.bb buttonconfigure OK -command [list puts OK]
1473
1474   An insert command has been added.  It takes an index as the first arg,
1475   followed by the tag and button arguments.
1476
1477	.bb insert Cancel Apply -text Apply
1478
1479   The invoke command no long excepts a list of buttons to invoke.  That 
1480   didn't make much sense.  It takes an optional index for a single button
1481   to invoke.  Without any arguments, the default button is invoked.
1482
1483BUG FIXES
1484------------------------------------------------------------------------------
1485
1486>> Corrected scrolled* packing
1487
1488   The packing order of all the scrolled* mega-widgets has been modified
1489   such that the scrollbars are the last to be clipped.
1490
1491>> Corrected buttonbox single button centering
1492
1493   The buttonbox has been modified such that a box with only one button
1494   will be correctly centered.
1495
1496>> scrolledlist selection corrected
1497
1498   The -selectioncommand is now invoked following any selection of an item,
1499   regardless if it was already selected.  The programmer must now determine
1500   if the selected item has changed if necessary.  The previous approach of
1501   only invoking the -selectioncommand if the selection has changed caused
1502   too many problems, making it behave erraticly.
1503
1504>> Corrected problems preventing classes being derived from scrolled* classes
1505
1506   Several variables were incorrectly declared to be private rather than
1507   protected.  Also, the _scroll* method was incorrectly declared private
1508   instead of protected.  These problems prevented inheritance from the 
1509   scrolled* classes.
1510
1511
1512INCOMPATIBLE CHANGES
1513------------------------------------------------------------------------------
1514
1515>> The class names are now upper case on the first character only.
1516
1517   Class names have been changed to be upper case on the first character
1518   only to be more X'ish.  Old class names like EntryField are now Entryfield.
1519
1520>> All public methods are now all lowercase.
1521
1522   This effects the typical common method such as childsite.  Others effected
1523   include :
1524
1525	::iwidgets::Labeledwidget::alignlabels
1526
1527>> Labeledwidget class changes:
1528
1529   The -labelon option has been removed.  The mega-widget now unpacks both
1530   the label and margin if neither the -labeltext, -labelbitmap, or 
1531   -labeimage have a value.
1532
1533   The -font option has been removed.  The -labelfont option should be used
1534   instead.
1535
1536>> Entryfield class changes:
1537
1538   The -labelon option is not inherited by the Entryfield anymore.  See the
1539   Labeledwidget changes above.
1540
1541   The Entryfield fixed option has a different meaning.  It now specified 
1542   the maximum number of characters allowed.  A value of zero is unlimited.
1543   This frees up the width option to be able to specify a greater number 
1544   of characters than the fixed amount for visual effect.
1545
1546   The -type and -validate options have been combined to just -validate 
1547   which now takes either a type keyword or a command.  The command receives
1548   additional trailing arguments consisting of the input character and the
1549   the widget.  I hope to change this soon to use substitutions like %c
1550   for the character at a later date.
1551
1552   The -background option has been removed.  The -textbackground option 
1553   should be used instead.
1554
1555   The -validate option now has several substitution strings which may be
1556   passed to the validation script.
1557
1558>> ScrollBar class changes:
1559
1560   It has been deleted.  It wasn't a big win.  The only benefit was that the
1561   -background option automatically calculated the troughcolor at 80% of
1562   its value.  It's just as easy to use the option database and change the
1563   Tk scrollbar troughcolor to whatever value is desired.  The various
1564   scrolled* classes now all use the straight Tk scrollbar.
1565
1566>> Panedwindow class changes:
1567
1568   Panes are now tagged.  This means the add, and insert methods take an
1569   additional argument which is the tag for that pane.  
1570
1571   The panedwindow index method now takes the tag as well as the number and
1572   keyword "end".  Other methods such as delete, hide, and show now can use
1573   the pane tag as an index.
1574
1575	panedwindow .pw
1576	.pw add bottom
1577	.pw insert 0 top
1578	.pw insert 1 middle
1579	.pw delete middle
1580
1581   The refresh method has been renamed to reset.
1582
1583   The semi-private -state option has been removed.  The only method of 
1584   controlling the display of panes is via the hide and show methods.
1585
1586>> Dialogshell class changes:
1587
1588   The modality option value of "system" has been renamed to be "global"
1589
1590>> Dialog class changes:
1591
1592   All the options for the buttons have been removed.  The buttonconfigure
1593   method should be used instead.  The class simply creates the standard
1594   OK, Apply, Cancel, and Help buttons tagged by their default labels.
1595   The buttonconfigure method can be used to make modifications to the
1596   buttons.  The hide and show methods should now be used instead of the
1597   the -disp* options.
1598
1599	dialog .d
1600	.d buttonconfigure OK -text Enter
1601	.d hide Help
1602	.d hide Apply
1603
1604   The -orient option is no longer kept.  It seemed rarely used if at all.
1605   The -buttonboxpos option handles the mojority of the cases as is.
1606
1607>> Scrolledcanvas class changes:
1608
1609   The binditem method is now been renamed back to bind.  This is what it
1610   should have been all along.  A problem in the alpha version of [incr Tcl]
1611   prevented use of this word.  
1612
1613