URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
[/] [or1k_old/] [tags/] [start/] [insight/] [itcl/] [iwidgets3.0.0/] [CHANGES] - Rev 1782
Compare with Previous | Blame | View Log
[incr Widgets] CHANGE LOG
==========================================================================
-------------------------- iwidgets-3.0.0 ------------------------------
-------------------- CHANGES FROM iwidgets-2.2.0 -----------------------
==========================================================================
[incr Widgets] version 3.0.0 is compatable with itcl3.0
[incr Widgets] has undergone a major overhaul between the last version
and 3.0.0. Since so many changes have taken place it made more since to
list them by widget class name rather than the old style of new features
and bug fixes. The majority of the changes are under the covers and will
have minimal impact of existing scripts, but there are a few that may
bite you. To locate possible incompatabilities, just search this file
for the key words "POSSIBLE INCOMPATIBILITY".
In addition, quite a few new widgets have been added to the set. They
include the following:
Calendar
Checkbox
Dateentry
Datefield
Disjointlistbox
Extfileselectionbox
Extfileselectiondialog
Finddialog
Hierarchy
Labeledframe
Mainwindow
Messagebox
Scrolledwidget
Timeentry
Timefield
Watch
Thanx to the following contributors who have been kind enough to help
me support this effort through enhancements, bug fixes, and new widgets.
John Tucker jatucker@austin.dsccc.com
Mitch Gorman emrys@net-gate.com
John Reekie johnr@EECS.Berkeley.EDU
Alfredo Jahn ajahn@spd.dsccc.com
Michael McLennan mmclennan@lucent.com
Labeledwidget
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Changed component option basis to be that of the "usuals".
>> Removed a redundant frame component named "shell" just below the hull.
>> Corrected labelvariable bug. Setting the labelvariable had no effect.
The code has been corrected such that a trace is installed on the variable
which forces an update of the label text upon writes to the variable.
>> Removed the labmargin frame component used for implementing a margin.
This is now accomplished via the grid by maintaining an empty row/column
for the margin and adjusting its minsize.
>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
If you need access to it, use the childsite command.
>> Added new label position orientation settings. The current label
positions are nw, n, ne, sw, s, se, en, e, es, wn, w, and ws.
>> Updated the test script and man page.
Scrolledlistbox
______________________________________________________________________________
>> Derived from the Scrolledwidget class which provides the vertical
and horizontal scrollbars along with the options to control their
display.
>> Reimplemented geometry management using the grid instead of the packer.
>> Changed component option basis to be that of the "usuals".
>> Added a -state option that allows you to disable the listbox. Selection
is blocked. The foreground of the scrolledlistbox label is changed
to disbabledforeground.
>> Fixed the infinite looping problem which would occur with -hscrollmode
set to dynamic and a really long line added just out of the view port.
As you'd scroll down the horizontal scrollbar bar would start flashing
on and off.
>> Removed the margin frame components used for implementing a margin
between the listbox and scrollbars. This is now accomplished via
the grid by maintaining an empty row/column for the margin and
adjusting its minsize.
>> POSSIBLE INCOMPATIBILITY - Removed -items option. This was originally
put in as a convienence, but it turns out to be quite costly in terms
of performance. It had to go. The insert/delete/get commands can be
used instead which is much more in line with Tk.
>> Updated the test script, demo, and man page.
Entryfield
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Modified the real type validation to except exponents. Patch provided
by evans@engineous.com (Rick Evans).
>> The -state option changes the label to disabledforeground when the
entryfield is disabled.
>> Changed component option basis to be that of the "usuals".
Pushbutton
______________________________________________________________________________
>> Changed component option basis to be that of the "usuals".
>> POSSIBLE INCOMPATABILITY - The pushButton component has been changed
to pushbutton.
>> POSSIBLE INCOMPATABILITY - The following options have been removed
and are not directly available in the pushbutton anymore:
-anchor -justify -textvariable
The underlying button component still maintains them , but not the
pushbutton itself. You can still set them via the component
command, i.e. ".pb component pushButton configure -justify left"
Buttonbox
______________________________________________________________________________
>> Changed component option basis to be that of the "usuals".
Shell
______________________________________________________________________________
>> Changed component option basis to be that of the "usuals".
>> Added a -width and -height option. A value of zero causes the width
and/or height to be adjusted to the required value based on the size
requests of the components placed in the childsite. Otherwise, the
width and/or height is fixed. The default is zero.
>> Added -width and -height tests to the test script and updated the
man page.
>> The activate method no longer returns an error if it is called when
the shell is already active. Instead, the shell is just raised.
Dialogshell
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Changed component option basis to be that of the "usuals".
>> Updated the test script and man page, adding the -width and -height
options that are inherited from the shell.
Dialog
______________________________________________________________________________
>> Updated the test script and man page, adding the -width and -height
options that are inherited from the shell.
Selectionbox
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Changed component option basis to be that of the "usuals".
>> Modified the insert and delete methods to use the items insert and
delete method rather than configuring the -items option which has
been removed from the underlying scrolledlistbox.
>> Removed the margin frame component used for implementing a margin
between the items and selection. This is now accomplished via
the grid by maintaining an empty row for the margin and adjusting
its minsize.
>> Removed the unecessary frame that was used to contrain the width
and height of the widget. This is now performed directly on the
widget hull.
>> POSSIBLE INCOMPATABILITY - The following options have been removed
and are not directly available in the selectionbox anymore:
-hscrollmode -itemslabelpos -labelmargin -margin -relief
-sbwidth -scrollmargin -selectionlabelpos -vscrollmode
The underlying components still maintain them, but not the
selectionbox itself. You can still set them via the component
command, i.e. ".sb component selection configure -labelpos nw" or
".sb component items configure -hscrollmode static"
>> Added a -width and -height option. A value of zero causes the width
and/or height to be adjusted to the required value based on the size
requests of the components placed in the childsite. Otherwise, the
width and/or height is fixed. The default is zero.
>> Updated the test script, demo, and man page.
Selectiondialog
______________________________________________________________________________
>> Pack propagation is now handled by the shell class.
>> Modified the insert and delete methods to use the insert and
delete method rather than configuring the -items option which has
been removed from the underlying scrolledlistbox.
>> Changed component option basis to be that of the "usuals".
>> POSSIBLE INCOMPATABILITY - The "sb" component has been renamed to be
"selectionbox". This is much more descriptive.
>> POSSIBLE INCOMPATABILITY - The following options have been removed
and are not directly available in the selectiondialog anymore:
-hscrollmode -itemslabelpos -labelmargin -margin -relief
-sbwidth -scrollmargin -selectionlabelpos -vscrollmode
The underlying components still maintain them, but not the
selectiondialog itself. You can still set them via the component
command, i.e. ".sd component selectionbox configure -margin 10" or
".sd component selectionbox component items configure -hscrollmode static"
>> The -width and -height options are now controlled by the shell class.
A value of zero causes the width and/or height to be adjusted to the
required value based on the size requests of the components. Otherwise,
the width and/or height is fixed. The default is zero.
Scrolledtext
______________________________________________________________________________
>> Derived from the Scrolledwidget class which provides the vertical
and horizontal scrollbars along with the options to control their
display.
>> Reimplemented geometry management using the grid instead of the packer,
eliminating quite a few unneeded frames along the way.
>> Changed component option basis to be that of the "usuals".
>> Removed the margin frame components used for implementing a margin
between the text and scrollbars. This is now accomplished via
the grid by maintaining an empty row/column for the margin and
adjusting its minsize.
>> The -state option changes the label to disabledforeground when the
scrolledtext is disabled.
>> Fixed the infinite looping problem which would occur with -wrap set
to none, -hscrollmode set to dynamic and a really long line added
just out of the view port. As you'd scroll down the horizontal
scrollbar bar would start flashing on and off.
>> Added an index argument to the import method so a file can be
imported into the text area at positions other than just the end.
>> Updated the test script and man page.
Feedback
______________________________________________________________________________
>> Corrected namspace problem by removing global scope qualifier from
class definition as well as method and option bodies. Bug report
and patch provided by evans@engineous.com (Rick Evans).
Hyperhelp
______________________________________________________________________________
>> Corrected namspace problem by removing global scope qualifier from
class definition as well as method and option bodies. Bug report
provided by evans@engineous.com (Rick Evans).
Scrolledhtml
______________________________________________________________________________
>> Corrected namspace problem by removing global scope qualifier from
class definition as well as method and option bodies. Bug report
provided by evans@engineous.com (Rick Evans).
Canvasprintbox
______________________________________________________________________________
>> Added tcl_platform to list of global variables declared in print
method. Bug report provided by evans@engineous.com (Rick Evans).
Scrolledcanvas
______________________________________________________________________________
>> Derived from the Scrolledwidget class which provides the vertical
and horizontal scrollbars along with the options to control their
display.
>> POSSIBLE INCOMPATIBILITY - The ScrCanvas component has been renamed
canvas.
>> The -state option changes the label to disabledforeground when the
scrolledcanvas is disabled.
>> Reimplemented geometry management using the grid instead of the packer.
>> Changed component option basis to be that of the "usuals".
>> Removed the margin frame components used for implementing a margin
between the canvas and scrollbars. This is now accomplished via
the grid by maintaining an empty row/column for the margin and
adjusting its minsize.
>> Updated the test script, demo, and man page.
Scrolledframe
______________________________________________________________________________
>> Derived from the Scrolledwidget class which provides the vertical
and horizontal scrollbars along with the options to control their
display.
>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
If you need access to it, use the childsite command.
>> POSSIBLE INCOMPATIBILITY - The scrCanvas component has been renamed
canvas and the scrFrame component to sfchildsite.
>> Reimplemented geometry management using the grid instead of the packer.
>> Changed component option basis to be that of the "usuals".
>> Fixed the infinite looping problem which would occur with -hscrollmode
set to dynamic and a really long component added just out of the view
port. As you'd scroll down the horizontal scrollbar bar would start
flashing on and off.
>> Removed the margin frame components used for implementing a margin
between the canvas and scrollbars. This is now accomplished via
the grid by maintaining an empty row/column for the margin and
adjusting its minsize.
>> Updated the test script, demo, and man page.
Promptdialog
______________________________________________________________________________
>> Changed component option basis to be that of the "usuals".
>> POSSIBLE INCOMPATABILITY - Renamed the "ef" component to "prompt".
>> POSSIBLE INCOMPATABILITY - The following options have been removed
and are not directly available in the promptdialog anymore:
-fixed -justify -labelbitmap -labelimage -labelmargin
-state -textvariable -width
The underlying components still maintain them, but not the
promptdialog itself. You can still set them via the component
command, i.e. ".pd component prompt configure -labelpos w"
>> Updated the test script, demo, and man page.
Messagedialog
______________________________________________________________________________
>> Changed component option basis to be that of the "usuals".
>> POSSIBLE INCOMPATABILITY - Renamed the "msg" component to "message".
>> POSSIBLE INCOMPATABILITY - The following options have been removed
and are not directly available in the messagedialog anymore:
-anchor -justify -wraplength
The underlying components still maintain them, but not the
messagedialog itself. You can still set them via the component
command, i.e. ".md component message configure -justify left"
>> Reimplemented geometry management using the grid instead of the packer.
>> Updated the test script, demo, and man page.
Hierarchy
______________________________________________________________________________
>> New iwidgets hierarchical data viewer mega-widget which manages a list
of nodes that can be expanded or collapsed. Individual nodes can be
highlighted. Clicking with the right mouse button on any item brings
up a special item menu. Clicking on the background area brings up
a different popup menu.
>> Many thanks to Michael McLennan who provided the nucleus of this code.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the hierarchy demo.
Checkbox
______________________________________________________________________________
>> New iwidget checkbox mega-widget which manages a group of check
buttons quite similar to that of the existing radiobox.
>> Thanks to John Tucker for the contributed code.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the checkbox demo.
Radiobox
______________________________________________________________________________
>> Changed component option basis to be that of the "usuals".
>> Changed the base class to be labeledframe.
>> Updated the test script, demo, and man page.
Spinner
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Removed a redundant frame component named "arrowFrame".
>> Removed the use of the option database to set the option values.
Spinint
______________________________________________________________________________
>> Removed the use of the option database to set the option values.
Datefield
______________________________________________________________________________
>> New iwidget. The datefield is a smart date entry field with adjustable
built-in intelligence levels. It can be made smart enough not to accept
any bad dates or made dumb enough to accept any old thing typed. Since
it is derived from the labeledwidget, it also includes an optional label.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the datefield demo.
Calendar
______________________________________________________________________________
>> New iwidget. The calendar widget provide for the selection and/or
display of dates. It displays a single month at a time. Buttons exist
on the top to change the month in effect turning th pages of a calendar.
As a page is turned, the dates for the month are modified. Selection
of a date visually marks that date. The selected value can be monitored
via the -command option or just retrieved using the get method. Methods
also exist to select a date and show a particular month.
The option set allows the calendars appearance to take on many forms.
For example, the background of the weekdays and weekends can be
independently changed, the starting day of the week can be set to
any of the days, the titles and fonts of everything is configurable,
and an outline can be displayed around the each day.
>> Many thanks to Michael McLennan who provided me a early copy of his
book which gave me the example on which this code is based.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the calendar demo.
Dateentry
______________________________________________________________________________
>> New iwidget. Dateentry is a quicken style date entry field with a
popup calendar produced by combining the datefield and calendar widgets
together. This allows a user to enter the date via the keyboard or by
using the mouse by selecting the calendar icon which brings up a popup
calendar. Since it is based on both the datefield and calendar, both
option sets exists under the same roof in the dateentry.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the dateentry demo.
Messagebox
______________________________________________________________________________
>> New iwidget. Implements an information messages area widget with
scrollbars. Message types can be user defined and configured. Their
options include foreground, background, font, bell, and their display
mode of on or off. This allows message types to defined as needed,
removed when no longer so, and modified when necessary.
The number of lines that can be displayed may be limited. When this
limit is reached, the oldest line is removed. There is also support
for saving the contents to a file, using the standard file selection
dialog.
>> Many thanks to Alfredo Jahn who came up with idea and provided me a
very stable working version which I extended to support user defined
message types.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the messagebox demo.
Spintime
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Removed the margin frame component used for implementing a margin
between the hour, minute and second components. This is now accomplished
via the grid by maintaining an empty row for the margin and adjusting
its minsize.
>> POSSIBLE INCOMPATIBILITY - The delete, clear, and insert methods have
been removed. Use the show method to set the time.
>> POSSIBLE INCOMPATIBILITY - The get method has been changed such that
it returns the time as either a colon separated string or a clock clicks
value.
>> Added a show method to be used to set the time. The method takes as
an argument either a valid time string, a clock clicks value, or the
keyword now.
>> The current time will now appear as the default.
>> Updated the test script, demo, and man page.
Spindate
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Removed the margin frame component used for implementing a margin
between the month, day and year components. This is now accomplished
via the grid by maintaining an empty row for the margin and adjusting
its minsize.
>> Spindate now uses the clock command during the spinning of the date
components. Only valid dates are spun now.
>> POSSIBLE INCOMPATIBILITY - Changed the -monthformat option to be
string, brief, and full doing away with the optional user specified list.
>> POSSIBLE INCOMPATIBILITY - The delete, clear, and insert methods have
been removed. Use the show method to set the date.
>> POSSIBLE INCOMPATIBILITY - The get method has been changed such that
it returns the date as either a string or a clock clicks value.
>> Added a show method to be used to set the time. The method takes as
an argument either a valid time string, a clock clicks value, or the
keyword now.
>> The current date will now appear as the default.
>> Selection and keyboard entry of values has been disabled. The value
may only be changed via the spinners which insures correct operation.
>> Updated the test script, demo, and man page..
Feedback
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Made all the itk_components public.
>> Added a trough which appears beneath the feedback widget. It has a
-troughcolor option to set its color.
Scrolledhtml
______________________________________________________________________________
>> Added -alink (same as -linkhighlight, but matches html naming) and -update
options.
>> Added new tags to come up to html3.2:
basefont
div
font
table
td
th
tr
>> Added numbering formats for <li> tag.
>> Fixed to delete images after page is cleared.
>> Fixed to bring anchor points to middle when moving down to a nearby
anchor point.
>> Fixes to regular expression matches.
>> Performance enhancements with stack algorithm and regular expression
searches.
Hyperhelp
______________________________________________________________________________
>> Added -closecmd and -maxhistory options.
>> Made itk_components public/private (which could conceivably break
someone, if they were using a component directly that is now private)
>> Fixed bindings.
Toolbar
______________________________________________________________________________
>> Added a destructor to cancel the possibly pending after command request
to display the popup help.
>> Corrected the vertical packing such that items are expanded horizontally.
Finddialog
______________________________________________________________________________
>> New iwidget. Finddialog works in conjunction with a text or
scrolledtext widget to provide a means of performing search operations.
The user is prompted for a text pattern to be found in the text or
scrolledtext widget. The search can be for all occurances, by regular
expression, considerate of the case, or backwards.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the finddialog demo.
Panedwindow
______________________________________________________________________________
>> Corrected show/hide bug which caused the placement of the sash and
separator to be incorrect. If you added a couple of panes and then
hid them all of them followed by showing them, the sash distribution
was wrong.
>> Corrected a divide by zero problem which occurred when you hid all
of the panes.
Combobox
______________________________________________________________________________
>> Mitch Gorman (emrys@net-gate.com) has taken over maintenance of the
combobox from John Sigler.
>> Entry completion has been added. Should your typing in the entry
field match an item in the list, it is completed for you automatically.
This feature is switchable via the -completion option. The default
is on.
>> It now utilizes a true button for the arrowBtn component.
>> The -state option has been fixed such that it can be truly disabled.
>> Reimplemented geometry management using the grid instead of the packer.
>> A -grab option has been added to do both local and global grabs
of the drop-down listbox.
>> POSSIBLE INCOMPATIBILITY - Removed -items option. This was originally
put in as a convienence, but it turns out to be quite costly in terms
of performance. It had to go. The insert/delete/get commands can be
used instead which is much more in line with Tk.
>> POSSIBLE INCOMPATIBILITY - The following options have been removed:
-autoclear and -fliparrow.
>> The combobox now utilizes built-in bitmaps for button glyphs.
>> Removed the margin frame component used for implementing a margin
between the entry and arrow button. This is now accomplished via
the grid by maintaining an empty column for the margin and adjusting
its minsize.
>> List elements are preserved when switching between drop-down and simple
styles via the -dropdown option.
>> The functionality of the -state and -editable options have been made
completely independent of each other. It can be editable/normal,
non-editable/normal, or disabled, and toggling one option will not
impact the other option when the first is toggled back
>> Corrected the validation processing in the -unique option.
>> Fixed various error messages returned due to bad arguments, options, etc.
Fileselectionbox
______________________________________________________________________________
>> Reimplemented geometry management using the grid instead of the packer.
>> Changed component option basis to be that of the "usuals".
>> Removed frame components used for margins. This is now accomplished
via the grid by maintaining an empty row/column for the margin and
setting its minsize.
>> Changed the default value of -nomatchstring to "".
>> The directory and files lists are now shown without the leading
directory name. Although this differs from the Motif standard, it
keeps the fileselectionbox more in line with the tk_getSaveFile dialog.
>> POSSIBLE INCOMPATIBILITY - The -style option which allowed you to
display the fileselectionbox in a "notif" style using comboboxes
for the filter and selection and kept the lists in a panedwindow
has been removed. A related option, -dirsfraction is also gone.
This feature caused the fileselectionbox to be much slower during
construction than anticipated. If you liked the "notif" style, it
exists in a new mega-widget call extfileselectionbox and
extfileselectiondialog.
>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
If you need access to it, use the childsite command.
>> POSSIBLE INCOMPATABILITY - The following options have been removed
and are not directly available in the fileselectionbox anymore:
-relief -repeatdelay -repeatinterval -labelmargin
-hscrollmode -sbwidth -scrollmargin -vscrollmode
-dirslabelpos -fileslabelpos -filterlabelpos
-selectionimage- selectionlabelpos -filterfocuscommand
-selectionfocuscommand -dbldirscommand -dblfilescommand
The underlying components still maintain them , but not the
fileselectionbox itself. You can still set them via the component
command, i.e. ".fsb component dirs configure -hscrollmode none"
>> POSSIBLE INCOMPATIBILITY - The -horizmargin and -vertmargin options
have been removed. I doubt if anybody other than the most picky
of people will be effected.
>> Added new childsite position orientation settings. The new
positions are n, s, e, w, top, bottom, and center.
>> Updated the test script and man page.
Extfileselectionbox
______________________________________________________________________________
>> New Iwidget. The extfileselectionbox is basically the "notif" portion
of the previous version of the fileselectionbox. It was separated from
the fileselectionbox for performance reasons.
>> Created test script, demo and man page.
>> The catalog demo has been updated to include the extfileselectionbox demo.
Tabset
______________________________________________________________________________
>> Corrected tab display problem which was occurring on HP machines.
Some additional updates were installed in tab selection and deselection.
They will only be invoke should the os be HP-UX. Also, the ability
to scroll the tabs via MB2 has been disabled for HPs. Thanks to
tilt@designacc.com (Thomas Tempero) for first reporting the problem
mikesz@pcs.mot.com (Michael Szilagyi) for sending me the fix which
was implemented.
Timefield
______________________________________________________________________________
>> New iwidget. The timefield is a smart time entry field. It verifies
user time input prior to its display. Since it is derived from the
labeledwidget, it also includes an optional label.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the timefield demo.
Watch
______________________________________________________________________________
>> New iwidget. The watch widget displays a simple clock face. Methods
exist to set/get the time. The hands can be adjusted via mouse selection
with the new setting being retrievable via the get method. It is
very configurable. The colors of the hands, face, and marks can all
be changed to suit your needs.
>> Many thanks to John Tucker who developed this nice widget.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the watch demo.
Timeentry
______________________________________________________________________________
>> New iwidget. Timeentry, like the dateentry, is along the quicken
lines as well. It displays a timefield with a watch icon button
beside it. Selection of button presents a popup watch which enables
you to select the time by dragging the hands about the face. The
popup has a close button that removes the popup and sets the timefield
to the value previously displayed in the watch. You can also just
enter the time directly as you would in the standard timefield.
>> Man page, test script, and demo have been produced.
>> The catalog demo has been updated to include the timeentry demo.
==========================================================================
-------------------------- iwidgets-2.1.1 ------------------------------
-------------------- CHANGES FROM iwidgets-2.1.0 -----------------------
==========================================================================
[incr Widgets] version 2.1.1 is compatable with itcl2.1
NEW FEATURES
------------------------------------------------------------------------------
>> Added pagecget method to notebook class.
Patch supplied by Tom Tromey (tromey@cygnus.com).
>> Added buttoncget method to buttonbox class.
Patch supplied by Tom Tromey (tromey@cygnus.com).
>> Added buttoncget method to dialogshell class.
Patch supplied by Tom Tromey (tromey@cygnus.com).
>> Added -closecmd option to the hyperhelp mega-widget.
Previously, closing the hyperhelp widget deleted the object which was
deemed to be user hostile. Now, there exists a -closecmd option
which defaults to just deactivating the widget. Should you wish to
destroy the widget, either do so explictly or modify the -closecmd
to do it.
BUG FIXES
------------------------------------------------------------------------------
>> Corrected selectborderwidth option class name in the toolbar
The class name was set to SelectBorderWidth rather than BorderWidth.
This created problems when attempting to use the toolbar with
other widgets like the scrolledcanvas. Bug report by csmith@adc.com
(Chad Smith).
>> Allow negative indexes in scrolledlistbox
Negative indicies are reasonable and valid. Bug report by
wfarel@cas.org (Bill Farel).
>> Corrected problem with caps-lock and num-lock in entryfields
Validation was not being being done if the num-lock or caps-lock
keys are down. Bug report by ronnie@r2d2.wink.com (Ronnie Carpio).
>> Corrected problem with special character entry in entryfields
Upon entry of a special character in the entry field like \ or [
an error would be reported: "Error: missing "". The substitutions
being performed in iwidgets::Entryfield::_keyPress have been corrected.
Bug report and patch provided by ronnie@r2d2.wink.com (Ronnie Carpio).
>> Made the relayout method in pushbutton protected.
The relayout method in the pushbutton needed to be changed from private
to protected so parent classes can have access. Bug discovered by
Mario Weilguni <e8732250@student.tuwien.ac.at>
>> Corrected html tag parsing in scrolledhtml mega-widget
Fixed regular expressions parsing html tags to ignore text in quotes
and only examine first attribute in list.
>> Corrected optionmenu insert bug
The option menu would not allow you to insert an entry beyond the
current length of the popup menu. It should just default to using
the end in this case.
>> Corrected scrolledtext import method newline insertion problem
There was a bug in the scrolledtext widget. It always inserted a
newline before the text of the file when doing an "import". And it
didn't correctly preserve a trailing newline on the file. Reported
by Tom Tromey (tromey@cygnus.com)
>> Corrected minor problems in notebook class.
The index method gave an error if (eg) "select" wass passed but
there is no selection. Instead it should return -1 as documented.
Changed it to always return -1 in case of error. This makes more
sense.
If there are no items in the notebook, the -scrollcommand should
still be run (if it is set). Otherwise, you end up with a
scrollbar that looks odd, and when you try to scroll you get
errors. Changed it so that it will tell the scrollbar that
the entire notebook is being displayed. Reported by Tom Tromey
(tromey@cygnus.com)
>> Corrected menubar menucget command to return errors for bad options.
The command "<menubar> menucget .element" returned something other
than an error message. This has been corrected. Reported by Tom
Tromey (tromey@cygnus.com)
>> Corrected menubar man page.
The usage for the menubar menucget command was wrong and has been
fixed. Reported by Tom Tromey (tromey@cygnus.com)
INCOMPATIBLE CHANGES
------------------------------------------------------------------------------
==========================================================================
-------------------------- iwidgets-2.1.0 ------------------------------
-------------------- CHANGES FROM iwidgets-2.0.1 -----------------------
==========================================================================
[incr Widgets] version 2.1.0 is compatable with itcl2.1
NEW FEATURES
------------------------------------------------------------------------------
>> Eliminated unneeded update idletask calls.
Went through many of the [incr Widgets] and got rid of those update
idletask calls that were not really needed. This should speed a few
of them up a bit.
>> The hyperhelp mega-widget has been enhanced such that topic items
don't need to be in the help directory.
It's just an added option in specifying topics. To use it, you would
replace '-topics {topic1 topic2 topic3}' with
'-topics {topic1 {topicname2 filename2} {topic3 filename3}}'. In other
words, you only have to change where you want to specify a pathname. If
you don't specify a filename, everything works the same.
>> Added a -autoclear option to the combobox.
The combobox was doing an automatic erasure of the entry field contents
upon hitting return. With this option, you can turn that off but it
still puts the string in the list.
>> Added a -master option to the shell class.
The shell made all instances transient with "." as the master. With
this option, you can change the master to other toplevels. The default
is no master for shells, and "." for all dialogs which are derived from
shell.
>> Added a -style option to the fileselectionbox and fileselection dialog.
Tony Parent did a great job of augmenting the fileselectionbox with
a style option that allows you to change the layout from the standard
motif look-and-feel to a better than motif layout. This new layout
is called notif and features comboboxes for the filter and selection
entry fields and a paned window contains the two listboxes allowing
you to change the allocation of space for the lists.
>> Removed the center childsite position for the fileselectionbox.
This is a side effect of the notif change made by Tony Parent. It
just isn't easy to have a center position when your in a pane window.
It is a small sacrifice for the having an alternate layout of the
fileselectionbox.
BUG FIXES
------------------------------------------------------------------------------
>> The makefile was amended to install the unknown.gif file correctly.
The hyperhelp and scrolledhtml widgets need an unknown gif file that
is used when unable to load an image. The makefile was not properly
installing it.
>> The scrolledhtml.n man page was fixed to allow man2html to work.
The scrolledhtml.n file had a bug which would hang man2html during a
"make install-html". The bug affected only the htmling of the file
not the man page itself.
INCOMPATIBLE CHANGES
------------------------------------------------------------------------------
==========================================================================
-------------------------- iwidgets-2.0.1 ------------------------------
-------------------- CHANGES FROM iwidgets-2.0.0 -----------------------
==========================================================================
[incr Widgets] version 2.0.1 is compatable with itcl2.0
NEW FEATURES
------------------------------------------------------------------------------
>> Added extra frame around canvas widget in Scrolledcanvas class
The borderwidth, relief, and hightlight options have been removed from
the canvas widget and placed on the new encompassing frame widget. This
fixes the problem with canvas widgets including the border and highlight
ring in the clipping region.
>> Added extra frame around text widget in Scrolledtext class
The borderwidth, relief, and hightlight options have been removed from
the text widget and placed on the new encompassing frame widget. This
fixes the problem with text widgets including the border and highlight
ring in the clipping region.
>> The canvasprintbox stamp supports resizing and default print buttons
Tako Schotanus updated the canvasprintbox such that the stamp now gets
updated whenever the window is resized. Also, he modified the dialog
default buttons to be Print, Apply and Cancel. Apply does a refresh and
Print does what you'd expect.
>> Added feedback mega-widget to [incr Widgets]
The feedback widget is a gage for displaying process status. Display
is given as a percentage and as a thermometer type bar. Options exist
for adding a label and controlling its position.
Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his
feedback.tcl code from tk inspect. The original code is copyright 1995
Lawrence Berkeley Laboratory.
>> Added scrolledhtml mega-widget to [incr Widgets]
The scrolledhtml widget implements a scrollable html text widget through
inheritance from scrolledtext. Import reads from an html file, while
export still writes plain text. Also provides a render command, to
display html text passed in as an argument.
Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his
tkhtml.tcl code from tk inspect. The original code is copyright 1995
Lawrence Berkeley Laboratory.
>> Added hyperhelp mega-widget to [incr Widgets]
The hyperhelp widget implements a help facility using html formatted
hypertext files.
Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his
help.tcl code from tk inspect.
>> Added menubar mega-widget to [incr Widgets]
Actually it was kind-of already an iwidget. It was living in the incoming
directory for a time. No one had a complaints about it so now it is
a full citizen.
BUG FIXES
------------------------------------------------------------------------------
>> Corrected spurious quote in toolbar.itk
Thanks to Tom Tromey for finding this elusive little buglet and sending
the patch. Wish all problems were reported in this manner.
>> Corrected problem with dialogs being unable to acquire a grab.
The dialogshell activate method would generate an error if unable to
acquire a grab for application and global modal dialogs. The fix
installed adds a catch and a reattempt loop with a delay. In other
words, the dialog shell will continuously attempt to acquire the grab
with a delay between attempts.
>> Corrected problem with pushbutton not displaying the tab traversal ring.
The pushbutton would not display the tab traversal ring when the default
ring was enabled. This has been corrected.
>> Corrected scrolledlistbox getcurselection method with multiple selectmode.
If the current scrolledlistbox selectmode is multiple, then the
getcurselection method should always return the selected items as
a list, regardless of the number of items selected. It used to
return a list only if more than one item is selected.
>> Buttonbox wasn't adjusting geometrically following hides if not mapped.
Bernard Johnson from TI was good enough to find this one. It could
be seen by creating a dialog, activating, deactivating, then hiding
a button. Next, activate it again and you'd notice that the dialog's
buttonbox had not been resized. The problem was that the resizing
of the buttonbox was bound to the map event, which once mapped, was
removed when it shouldn't have been.
>> Buttonbox wasn't adjusting properly following button additions which
were preceeded by deletions.
Greg McFarlane found this one. The buttonbox needed to do perform
and update idletasks following the sizing of the box during a deletion.
Otherwise, the values returned by winfo were incorrect during a
subsequent button addition.
>> Removed underlining of listbox items in the combobox.
Milind Khandekar requested that this feature be removed. It was
annoying.
INCOMPATIBLE CHANGES
------------------------------------------------------------------------------
==========================================================================
-------------------------- iwidgets-2.0.0 ------------------------------
-------------------- CHANGES FROM iwidgets-2.0b4 -----------------------
==========================================================================
[incr Widgets] version 2.0.0 is compatable with itcl2.0
NEW FEATURES
------------------------------------------------------------------------------
>> The copyright has been assigned to DSC Communications Corporation.
The copyright has been transferred from private individuals to DSC.
It is still an open copyright, just changes in the legalize wording.
>> Added several new mega-widgets.
The new mega-widgets include the toolbar, tabnotebook, tabset, and
notebook. Check the man pages for details.
>> Added demo catalog.
The demos directory now contains a catalog program. It displays the
code for each demo upon single select. Double-click starts the demo.
>> Added incoming directory for experimental mega-widgets.
An incoming directory exists in the distribution which contains beta
state mega-widgets. They are not installed, but do include the needed
doc, demos, and tests. These mega-widgets may or may not make the cut.
Please send feedback on their viability. If enough positive response
is felt, then they will be moved up. Otherwise, I'll move them to an
outgoing directory and later delete them altogether.
>> With the introduction of the new itcl-2.0b3 code command, the following
changes were required.
All "bind" and "after" commands now use "code".
All "-command" options and scrollbar commands now use "code".
Removed "uplevel /scope" combinations from command type options.
Replaced "eval" with "uplevel #0" for evaluation of command options.
>> Added curselection method to selectionbox and selectiondialog class.
The curselection command from the contained listbox of the selectionbox
has been thinwrapped.
>> Removed BLT dependency for implementing application modal dialogs.
The dialogshell class no longer uses blt_busy for application modal
dialogs. Instead, local grabs are performed. The benefits are speed
and extension independence. Minus is the loss of the watch cursor
which blt_busy used. I figure, programmers wanting the cursor action
can implement it themselves on an as needed basis.
>> Added a grab stack in the dialogshell.
The dialogshell uses a grabstack to keep track of the current blocking
levels. Thus a application modal dialog can activate another one and
upon closing the last one, the next one in the stack gets the block.
This feature did not exist before.
>> Replace "after 1" commands with "after idle"
This produces the same result, but makes for a cleaner syntax.
>> Added center command to the dialogshell.
The dialogshell provides a center command which takes an optional argument
of the path for another widget. Upon activation, the dialogshell will
be centered with respect to it. The command may also be invoked with
no arguments to center the dialogshell on the screen as a whole. Since
all other dialog classes are derived from dialogshell, all dialogs now
have the center command available.
>> Made the Help button hidden by default for dialogs
Most people turn it off right away anyway. It is still there. Just need
to do a "show Help" if you need it back.
>> Comboxbox now derived from entryfield.
The combobox structure has been modified to be derived from the entryfield
class. Now combobox labels can be aligned using the labeledwidget
alignlabels method along with optionmenus, entryfields and such.
>> Added -justify and -wraplength to Messagedialog.
The justify and wraplength options are now kept for the label in the
messagedialog widget.
>> Added a man page generator for itcl.
In the doc directory is a new utility called mkitclman. It does a good
job at an initial pass of man page generation for new iwidget classes.
You still need to get in there and beef up the man page which is produced,
but it is better than starting from scratch.
>> Added the canvasprintbox and canvasprintdialog mega-widgets.
Two new mega-widgets, canvasprintbox and canvasprintdialog, have been
contributed to [incr Widgets]. Thanks to Tako Schotanus,
Tako.Schotanus@bouw.tno.nl.
>> Added the textbackground option to the scrolledcanvas widget
The textbackground option has been added to the scrolledcanvas widget
similarly to the scrolledlistbox and entryfield widgets.
BUG FIXES
------------------------------------------------------------------------------
>> Enabled repeat action in spinners.
This was available in iwidgets two versions ago. I made in incorrect
merge and lost the change. It has now been added back into the spinner.
>> Eliminated use of #auto in panedwindow.
Using #auto made the test script fail should you run it two times in a
row. Instead, the class keeps its own unique counter which is always
reset upon construction. This was more of an annoyance than a bug.
>> Corrected selection problem in selectiondialog.
The selectiondialog wasn't configuring the itemscommand properly, so
selection of an item was not reflected in the selection entryfield.
>> Corrected index usage problem in buttonbox insert method.
The buttonbox insert method didn't correctly convert the index argument
prior to inserting the new pushbutton. This has been fixed.
>> Corrected flicker problem in scrolled* widgets.
Modified the scrolled* widgets to only change the current scrollbar
display if different than the current setting. This fixes the flicker
problem which was apparent during horizontal scrolling.
>> Entryfield command option performs a break.
Following evaluation of the command option for entryfield widgets, a
break is performed. This caused a problem when entryfields were in
a dialog. Hitting return in the entryfield, invoked the dialogs
default button. This has been fixed.
INCOMPATIBLE CHANGES
------------------------------------------------------------------------------
>> Removed -highlightbackground option from mega-widgets
All the -highlightbackground options have been renamed to be -background.
This was always an annoyance anyway. Now, setting the -background changes
all the highlightbackgrounds as well. Should anybody still for some odd
reason need -highlightbackground, just access the component with the
"component name configure" command.
==========================================================================
-------------------------- iwidgets-2.0b0 ------------------------------
-------------------- CHANGES FROM iwidgets-2.0b1 -----------------------
==========================================================================
[incr Widgets] versions b1, b2, b3, and b4 are compatable with itcl-2.0b2
NEW FEATURES
------------------------------------------------------------------------------
>> A secondary lower case mega-widget command now exits.
Mega-widgets can now be created using the new lower case, more tk'ish
method or still using the class name.
Entryfield .ef and entryfield .ef
both perform the same operation.
>> The demos should now all work.
The correct wish is now called. itkwish instead of the old itcl_wish.
>> The man pages have all been updated to the best of my ability.
>> A new more minimal format for the code style has been implemented.
The class declaration only contains declarations. All implementation is
spearate. This creates a much more readable class.
>> All class file names as well as the tests, doc, and demos are all lower
case.
>> Several new validate types such as hexidecimal and real have been added
to the Entryfield.
>> The Panedwindow class additional commands:
A paneconfigure command exists for configuring indiviual tagged panes.
panedwindow .pw
.pw add first
.pw add last
.pw paneconfigure first -margin 10
An insert command exists. It takes an index and tag as arguments followed
by optional arguments to be applied to the pane.
.pw insert end second -minimum 20
>> The Buttonbox class now has additional commands:
A buttonconfigure command exists for configuring indiviual tagged buttons.
buttonbox .bb
.bb add OK -text OK
.bb add Cancel -text Cancel
.bb buttonconfigure OK -command [list puts OK]
An insert command has been added. It takes an index as the first arg,
followed by the tag and button arguments.
.bb insert Cancel Apply -text Apply
The invoke command no long excepts a list of buttons to invoke. That
didn't make much sense. It takes an optional index for a single button
to invoke. Without any arguments, the default button is invoked.
BUG FIXES
------------------------------------------------------------------------------
>> Corrected scrolled* packing
The packing order of all the scrolled* mega-widgets has been modified
such that the scrollbars are the last to be clipped.
>> Corrected buttonbox single button centering
The buttonbox has been modified such that a box with only one button
will be correctly centered.
>> scrolledlist selection corrected
The -selectioncommand is now invoked following any selection of an item,
regardless if it was already selected. The programmer must now determine
if the selected item has changed if necessary. The previous approach of
only invoking the -selectioncommand if the selection has changed caused
too many problems, making it behave erraticly.
>> Corrected problems preventing classes being derived from scrolled* classes
Several variables were incorrectly declared to be private rather than
protected. Also, the _scroll* method was incorrectly declared private
instead of protected. These problems prevented inheritance from the
scrolled* classes.
INCOMPATIBLE CHANGES
------------------------------------------------------------------------------
>> The class names are now upper case on the first character only.
Class names have been changed to be upper case on the first character
only to be more X'ish. Old class names like EntryField are now Entryfield.
>> All public methods are now all lowercase.
This effects the typical common method such as childsite. Others effected
include :
::iwidgets::Labeledwidget::alignlabels
>> Labeledwidget class changes:
The -labelon option has been removed. The mega-widget now unpacks both
the label and margin if neither the -labeltext, -labelbitmap, or
-labeimage have a value.
The -font option has been removed. The -labelfont option should be used
instead.
>> Entryfield class changes:
The -labelon option is not inherited by the Entryfield anymore. See the
Labeledwidget changes above.
The Entryfield fixed option has a different meaning. It now specified
the maximum number of characters allowed. A value of zero is unlimited.
This frees up the width option to be able to specify a greater number
of characters than the fixed amount for visual effect.
The -type and -validate options have been combined to just -validate
which now takes either a type keyword or a command. The command receives
additional trailing arguments consisting of the input character and the
the widget. I hope to change this soon to use substitutions like %c
for the character at a later date.
The -background option has been removed. The -textbackground option
should be used instead.
The -validate option now has several substitution strings which may be
passed to the validation script.
>> ScrollBar class changes:
It has been deleted. It wasn't a big win. The only benefit was that the
-background option automatically calculated the troughcolor at 80% of
its value. It's just as easy to use the option database and change the
Tk scrollbar troughcolor to whatever value is desired. The various
scrolled* classes now all use the straight Tk scrollbar.
>> Panedwindow class changes:
Panes are now tagged. This means the add, and insert methods take an
additional argument which is the tag for that pane.
The panedwindow index method now takes the tag as well as the number and
keyword "end". Other methods such as delete, hide, and show now can use
the pane tag as an index.
panedwindow .pw
.pw add bottom
.pw insert 0 top
.pw insert 1 middle
.pw delete middle
The refresh method has been renamed to reset.
The semi-private -state option has been removed. The only method of
controlling the display of panes is via the hide and show methods.
>> Dialogshell class changes:
The modality option value of "system" has been renamed to be "global"
>> Dialog class changes:
All the options for the buttons have been removed. The buttonconfigure
method should be used instead. The class simply creates the standard
OK, Apply, Cancel, and Help buttons tagged by their default labels.
The buttonconfigure method can be used to make modifications to the
buttons. The hide and show methods should now be used instead of the
the -disp* options.
dialog .d
.d buttonconfigure OK -text Enter
.d hide Help
.d hide Apply
The -orient option is no longer kept. It seemed rarely used if at all.
The -buttonboxpos option handles the mojority of the cases as is.
>> Scrolledcanvas class changes:
The binditem method is now been renamed back to bind. This is what it
should have been all along. A problem in the alpha version of [incr Tcl]
prevented use of this word.