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