Bwidget Source Code
File History
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2018 Conference, Houston/TX, US, Oct 15-19
Send your abstracts to tclconference@googlegroups.com
or submit via the online form by Aug 20.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of tree.tcl

2016-01-07
18:01
Init tree cross and line colors not by black to be visible on black background color themes. Ticket [ed4c1dab46] file: [8591f5dafd] check-in: [1b5b347448] user: oehhar branch: bug-ed4c1dab46, size: 72244
2011-06-23
08:28
listbox.tcl, tree.tcl (_update_scrollregion) the linewise scrolling did not always scroll up to the end on windows. Report and patch by Wojciech Kocjan, review and modification by Koen Danckaert [Bug 3317772] file: [2887f38129] check-in: [ba2aa7db4d] user: oehhar branch: bwidget, size: 72250
2010-12-14
21:24
2010-12-14 Andreas Kupries <andreask@activestate.com> * tree.tcl [Bug 3106208]: Followup. Moved the fixed code of the last entry I did (2010-11-09) into a new command Tree::MergeFlag and call this from both Tree::itemconfigure and Tree::insert. Missing the place in Tree::insert caused another problem, found by Dustin Littau. file: [e1c7c4cbd5] check-in: [8965272464] user: oehhar branch: bwidget, size: 72446
17:01
* tree.tcl [Bug 3106208]: Followup. Moved the fixed code of the last entry I did (2010-11-09) into a new command Tree::MergeFlag and call this from both Tree::itemconfigure and Tree::insert. Missing the place in Tree::insert caused another problem, found by Dustin Littau. file: [241e259e19] check-in: [c3b144fc1f] user: andreas_kupries branch: trunk, size: 74183
2010-11-10
07:57
tree.tcl (Tree::itemconfigure): Fix intermingling of node names and flag values which can cause an lsearch to fail, by mistaking a flag value as the node searched for, and then treating a node name as flags. As the upd,nodes value is a dictionary it should not be search as a list. Now using a temporary array for quicker check and append/replace [Bug 3106208](report and fix by Andreas Kupries). file: [8f681bf5c1] check-in: [1656afaa2b] user: oehhar branch: trunk, size: 74142
07:56
tree.tcl (Tree::itemconfigure): Fix intermingling of node names and flag values which can cause an lsearch to fail, by mistaking a flag value as the node searched for, and then treating a node name as flags. As the upd,nodes value is a dictionary it should not be search as a list. Now using a temporary array for quicker check and append/replace [Bug 3106208]. (report and fix by Andreas Kupries) file: [17e338ca70] check-in: [5018ffa91f] user: oehhar branch: bwidget, size: 72407
2009-09-08
20:46
BWidget::bindMiddleMouseMovement added file: [21dcd1cc8d] check-in: [8cb3726ece] user: oberdorfer branch: trunk, size: 74135
2009-08-10
11:28
* notebook.tcl (NoteBook::delete) Method delete destroyframe=1 and reinsertion -> raise failed - state variables were deleted. [Bug 2831785] by kjnash * tree.tcl (Tree::_keynav) Fire virtual event <<TreeSelect>> also on keyboard navigation [Patch 2828086] by Kevin Walzer * combobox.tcl Replaced aqua conditional code check by $Widget::_aqua file: [bbb029ab80] check-in: [2875678157] user: oehhar branch: bwidget, size: 72396
2009-08-04
16:39
* notebook.tcl (NoteBook::delete) Method delete destroyframe=1 and reinsertion -> raise failed - state variables were deleted [Bug 2831785] by kjnash * tree.tcl (Tree::_keynav) Fire virtual event <<TreeSelect>> also on keyboard navigation [Patch 2828086] by Kevin Walzer * combobox.tcl Replaced aqua conditional code check by $Widget::_aqua file: [c13483d9b6] check-in: [66f7bd69b2] user: oehhar branch: trunk, size: 72392
2009-07-24
16:01
* tree.tcl (Tree::_set_help), Tree.html DynamicHelp -helpcmd added to tree node help * tree.tcl (Tree::_draw_subnodes) a vertical line to a virtual root node above the widget is only drawn when there are multiple child nodes. This reverts the modification dated 2004-04-21 for this case. [Patch 2825354] by Koen Danckaert file: [5a3aed0e26] check-in: [55b962c054] user: oehhar branch: trunk, size: 72206
2009-06-30
16:17
* buttonbox.tcl (ButtonBox::_redraw) Bug corrected: -uniform gridding option is used if tcl version >= 8.4 (not 8.3). [Patch 2807147] by Koen Danckaert    * tree.tcl (Tree::_drop_cmd) If there is no node, drop didn't work. [Bug 1042613] reported by Rolf Ade    * Tree.html Bind commands: removed promise that %W would work in future. The underlying widgets should only be manipulated using the node id. [Bug 1224203] by Jasper Taylor, remarks by J. Tang    * Tree.html Bind commands: with -selectfill, the given command is overwritten for the background box. [Bug 1003962] by Torsten Berg    * dropsite.tcl (DropSite::register) Bug fixed: fails on multiple drop targets [Bug 1213123] by T.Neil    * combobox.tcl (ComboBox::_create_popup) Bug fixed: Return key in drop down list when -bwlistbox true [Bug 1205536] patch by Steve Landers    * combobox.tcl (ComboBox::_create_popup, ComboBox::_unmapliste) Mac aqua and x11 fixes, multi screen issue still open. [Bug 1451784] report by Jasper Taylor, fix by Kevin Walzer    * listbox.tcl (ListBox::_multiple_select) Selected item not deselected on control-click [Bug 1029144] reported by Konrad Rosenbaum file: [ab3272f1a9] check-in: [d4234674be] user: oehhar branch: trunk, size: 72194
2008-10-31
00:49
* tree.tcl (Tree::_node_name_rev): Return node names as they are input, and properly handle :: in node names. This changes internal node name reps, but should be transparent to the user, except for the result of [insert]. file: [ea4f7cf0c8] check-in: [258d381702] user: hobbs branch: trunk, size: 72223
2008-05-26
07:06
* tree.tcl (Tree::_redraw_selection): do not allow empty * listbox.tcl (ListBox::_redraw_selection): fill color as that creates a transparent item that doesn't return a bbox. This showed up on OS X/Aqua, where the listbox selectforeground defaults to empty. [AS Bug 77186 74923] file: [abdfe72c1f] check-in: [9080f32145] user: hobbs branch: trunk, size: 71729
2007-10-31
18:54
* tree.tcl (Tree::insert): do node_name on parent arg [Bug 1046955] file: [67ce875d51] check-in: [ba001ed071] user: hobbs branch: trunk, size: 71649
2006-11-10
20:39
* tree.tcl: fixed error with drag & drop's autoscroll [bug 1408494]    * listbox.tcl: fixed error with drag & drop's autoscroll; fixed error when dropping at the end of the list file: [1abea17b1c] check-in: [0893707ee0] user: dev_null42a branch: trunk, size: 71613
2006-09-28
15:46
* messagedlg.tcl: explicitly marked the 'Abort' button upon -type abortretryignore to be the default button [bug 970199]    * Tree.html: documented [find] and [line] commands [bug 626819]; noted bug with %W binding [bug 1224203]    * tree.tcl: added [bindArea] procedure; updated man page [patch 839066]    * combobox.tcl: added [clearvalue] proc to explicitly clear a ComboBox value, updated man page [patch 780704] file: [17070b4ddd] check-in: [59aa07734c] user: dev_null42a branch: trunk, size: 71556
2006-08-21
20:54
2006-08-21 J. Tang <tang@jtang.org>    * combobox.tcl: unpost after autoposting when another Tk window gets the focus; unpost upon hitting the enter key    * scrollw.tcl: allow toggling of scrollbars [bug 1488712]    * Tree.html: corrected documentation for Tree::opencmd (callback does not append the path to the tree to the command) [bug 1507713]    * tree.tcl: disable keyboard navigation for empty trees [bug 1514855]    * tree.tcl: changed '-drawcross allways' to be '-drawcross always'; updated documentation file: [a24b2be489] check-in: [ce134fbc79] user: dev_null42a branch: trunk, size: 71277
2004-08-26
19:45
* tree.tcl (Tree::delete): call -selectcommand if we delete something that was selected. file: [a0e7912acb] check-in: [c002e37252] user: hobbs branch: trunk, size: 71115
2004-04-26
18:42
* tree.tcl (_update_nodes): align with _draw_nodes code, specifically correcting placement of cross on new nodes and anchor of changed window/image. file: [f903ec744a] check-in: [add122cb8e] user: hobbs branch: trunk, size: 70894
2004-04-22
21:29
* tree.tcl (edit): correct inversion of verifycmd emptiness test. file: [ec1effa1a5] check-in: [9207f0321a] user: hobbs branch: trunk, size: 71460
2004-04-21
22:26
* tree.tcl (_draw_subnodes): Adjust the drawing of the line to the first root node to start at the vertical point (not go up).    * entry.tcl, arrow.tcl, combobox.tcl: better space/list handling    * entry.tcl: make the icursor not appear for non-editable and/or state disabled comboboxes. file: [8136eb2be1] check-in: [1db0c901a1] user: hobbs branch: trunk, size: 71457
2003-10-20
21:23
This is a huge commit with a lot of changes. I've tested through it with the demo as well as some of my own software, and everything seems to be working properly. I have no doubt that there will be little inconsistencies discovered through some thorough use.    Please checkout this latest version and give it a spin through your applications and tests. I am available to fix any and every bug that crops up, as I want to see this in really good shape for the next ActiveTcl release (which will follow the next Tcl release shortly).    * arrow.tcl, bitmap.tcl, button.tcl, buttonbox.tcl, color.tcl, * combobox.tcl, dialog.tcl, dragsite.tcl, dropsite.tcl, entry.tcl * font.tcl, label.tcl, labelentry.tcl, labelframe.tcl, listbox.tcl * mainframe.tcl, messagedlg.tcl, notebook.tcl, pagesmgr.tcl * panedw.tcl, passwddlg.tcl, progressbar.tcl, progressdlg.tcl * scrollframe.tcl, scrollview.tcl, scrollw.tcl, separator.tcl * spinbox.tcl, titleframe.tcl, tree.tcl, utils.tcl, widget.tcl * xpm2image.tcl: Revamp again to let core Widget commands handle most of the esoteric work of creating and destroying widgets properly in the BWidget environment.    The command Widget::define defines a class, its filename and a list of classes which it uses. This command handles creating the command to create new widgets, creates a ::use command for the class and calls the ::use command for each class included.    The command Widget::create does the renaming of the widget to $path:cmd and creates the proc to redirect the widget commands.    Widget::destroy now does the rename $path "" that almost all widgets do.    * button.tcl: Added a -state option to configure the state of the entire box at once.    Added new insert and delete subcommands.    Added an after cancel to stop button repeat upon release. [Bug 697022]    * combobox.tcl: Added -bwlistbox, -listboxwidth and -hottrack options. -images option already existed, but now it actually does something.    Added getlistbox, get, icursor, post and unpost subcommands.    * dynhelp.tcl: Added add subcommand to replace the (now) deprecated register command. The new command adds for a lot more flexibility in applying dynamic help.    Help popup now comes up -topmost 1 on Windows if available.    * entry.tcl: Added -disabledbackground option so that the BWidget entry more closely resembles the standard Tk entry. [Bug 638236].    * init.tcl: Moved Widget::traverseTo into widget.tcl.    * label.tcl: Renamed BWLabel class to just Label.    * listbox.tcl: Added a default -dropcmd so that if -dragenabled and -dropenabled are true, drag-and-drop within the same widget is possible without any other options.    Added -autofocus option to specify that clicking within the listbox should draw the focus in order to handle mouse wheel events.    Added -selectfill option for drawing a full selection rectangle around selected items instead of just around the item.    Added getcanvas subcommand. [Bug 436762].    bindImage and bindText now map %W to $path in order to get an accurate path in events. This can probably be fixed better when we have more control over event parameters. [Bug 607745]    Added mouse wheel bindings by default.    Added <<ListboxSelect>> event when selection changes.    * mainframe.tcl: Fixed bug for adding CTRL-F items to a mainframe [Bug 784269]    * messagedlg.tcl: Added -buttonwidth option.    * notebook.tcl: Added dynamic help to tabs.    Added -tabpady option to specify the padding between the text and the tab.    Notebooks now handle multi-line text properly. [Bug 565284]    * scrollview.tcl: Rewritten to use a variable per path instead of a big array.    * tree.tcl: Added -anchor option to nodes to specify the anchor for an image or window when displayed.    Added -crossopenimage, -crosscloseimage, -crossopenbitmap and -crossclosebitmap options to change the open / close cross.    Added mouse wheel bindings by default.    Added toggle subcommand to toggle a single tree node.    Added <<TreeSelect>> event when selection changes.    The characters "& | ^ !" are all converted to | silently in node names. This is to avoid errors because these characters are special to the canvas widget. [Bug 746960]    bindImage and bindText now map %W to $path in order to get an accurate path in events. This can probably be fixed better when we have more control over event parameters. [Bug 607745]    * utils.tcl: Added BWidget::wrongNumArgsString command to return a standard wrong # args error string.    Added BWidget::classes command that returns a list of all classes required by a given class.    Added BWidget::inuse command to determine if a given class is inuse.    Added BWidget::library command to return a body of code that can be saved into a project or other code based on the given classes. When called with a list of classes, all the classes and code necessary to use those classes is returned in a large string which can then be written out to a file.    Added BWidget::write command to write to a given file the current set of classes that are in use.    Added BWidget::bindMouseWheel command to setup default mouse bindings on a given widget.    * widget.tcl: Added a new option type 'Padding' which will accept the standard padding arguments in Tcl 8.4+.    Added Widget::define command to define a new BWidget class.    Added Widget::create command to create a BWidget properly.    Widget::destroy now attempts to delete a widget command created through Widget::create.    Added Widget::options command to return the current options of a given widget in a style that can be used to serialize a widget.    Added Widget::getOption command to get options based on children having the same option.    * wizard.tcl: Added new Wizard widget. file: [362d4b2c1a] check-in: [b363fd16f2] user: damonc branch: trunk, size: 71265
2003-10-17
18:33
* arrow.tcl, bitmap.tcl, button.tcl, buttonbox.tcl, color.tcl, * combobox.tcl, dialog.tcl, dragsite.tcl, dropsite.tcl, entry.tcl * font.tcl, label.tcl, labelentry.tcl, labelframe.tcl, listbox.tcl * mainframe.tcl, messagedlg.tcl, notebook.tcl, pagesmgr.tcl * panedw.tcl, passwddlg.tcl, progressbar.tcl, progressdlg.tcl * scrollframe.tcl, scrollview.tcl, scrollw.tcl, separator.tcl * spinbox.tcl, titleframe.tcl, tree.tcl, utils.tcl, widget.tcl * xpm2image.tcl: major revamp to reduce incorrect use of eval and other list-safetiness evils. Also change !strcomp to streq. file: [67b929a3bf] check-in: [ebde8e280e] user: hobbs branch: trunk, size: 68714
2003-05-15
00:09
* tree.tcl: correct node lsearch'ing to use -exact to allow for [] containing nodes [Bug 628041] (decoster) file: [434c44ca1b] check-in: [26989afe66] user: hobbs branch: trunk, size: 68790
2003-05-02
01:07
* tree.tcl (Tree::configure, Tree::_draw_node): add a full-width box underneath the text and image/window that will react to the node binding if -selectfill is true. It is an empty box that is overly wide, but it could be improved to resize on Configure to just the window width and replace the sel box. file: [6cfc181d9e] check-in: [16aef283ae] user: hobbs branch: trunk, size: 68692
2003-04-24
01:03
(Tree::_redraw_selection): correct -selectfill to include the image, in any, in the bbox calculation since it may be larger. file: [acc55e9ac7] check-in: [aec83cd20a] user: hobbs branch: trunk, size: 67810
00:53
* tree.tcl: liberal use of list where appropriate to make the code safe for space-containing node names. Make use of string equal instead of !string compare. file: [a41e72f5e9] check-in: [3f4eb85d05] user: hobbs branch: trunk, size: 67701
2003-04-16
03:41
* listbox.tcl * tree.tcl: Added a #auto substitution for inserting new items into a tree or listbox.    * BWman/ListBox.html * BWman/Tree.html: Added documentation for #auto substitution. file: [deaf8d9fa3] check-in: [106735c26c] user: damonc branch: trunk, size: 67583
2003-03-13
06:59
* listbox.tcl: Added dynamic help support to listbox items.    * tree.tcl: Fixed a little inconsistency in the tree dynamic help. We don't need to save the whole path in the help array, just the node. file: [8efa1961e9] check-in: [2068922661] user: damonc branch: trunk, size: 67419
2003-02-08
10:21
* BWman/SelectColor.html * color.tcl: Cleaned up some of the documentation of SelectColor and made it actually work like the documentation says it does.    * BWman/DynamicHelp.html * dynhelp.tcl: Added -topbackground, -padx and -pady options to allow a little more flexibility in the look-and-feel of balloons.    Added the ability to bind dynamic help to individual items or tags on a canvas.    * BWman/Tree.html * tree.tcl: Added -padx and -deltax options to individual nodes within a tree. Each option defaults to -1, meaning to take its value from the global option of the same name.    Added dynamic help to nodes within a tree. Adds the following options: -helptext, -helptype and -helpvar to each node.    * BWman/BWidget.html * utils.tcl: Added BWidget::badOptionString utility to return a standard error string when a given option doesn't match a list.    * BWman/Widget.html * widget.tcl: Added Widget::getVariable proc to create a reference to a variable relative to the given widget path. file: [719f22e51f] check-in: [ecd5aec25e] user: damonc branch: trunk, size: 67419
2003-01-26
10:55
* BWman/DynamicHelp.html: * dynhelp.tcl: Added -state option to disable help balloons on a global scale.    * BWman/Tree.html: * tree.tcl: Added -crossfill option to allow the + / - bitmap to be filled with a different color than the connecting node lines. -linesfill is now accurate in its help entry and only adjusts the foreground color of the lines between the nodes. file: [46a524ee36] check-in: [56196186a5] user: damonc branch: trunk, size: 64039
2003-01-24
22:17
* tree.tcl (Tree::delete, Tree::_subdelete): remove all deleted nodes from the the selection [Bug #621178]. file: [763648b769] check-in: [e50950f7c9] user: jenglish branch: trunk, size: 63915
2002-10-14
20:54
* tree.tcl (_see): change to always show left edge of requested item. [Patch #556077] (english) file: [29a68f7b4c] check-in: [d4829f8387] user: hobbs branch: trunk, size: 63948
2002-08-23
20:12
* tree.tcl: Modified subcommand 'includes' of the method 'selection to properly extract its argument. ... Revamped the whole subcommand to properly extract and check its arguments.    (create) Added Control-Button-1 bindings to allow toggling the selection of a node. I will do no bindings for shift-selecting and/or drag-selecting ranges. To complex for me right now.    Moved the code executing the -selectcommand callback to an internal procedure, and added calls to that procedure to all subcommands which change the selection. This fixes SF Bwidget Bug #547245.    * BWman/Tree.html: Documented the 'includes' and 'range' subcommands of the method 'selection' of tree widgets. Documented the node option '-selectable'. Documented that the subcommands extending or setting the selection silently ignore unselectable nodes. Documented new 'toggle' subcommand of method 'selection'. Documented option --slectcommand'. Fixed bogus table html in option lists. file: [af7021ae1a] check-in: [155e59d7ed] user: andreas_kupries branch: trunk, size: 64248
2002-06-04
22:04
* listbox.tcl: corrected use of 'end' as move index. [Bug #561391] * buttonbox.tcl: * tree.tcl: force frame -padx/-pady to 0 to handle 8.4+ frame padding options. [Bug #545119] file: [b34cadf4a7] check-in: [0149086be5] user: hobbs branch: trunk, size: 62568
2001-12-29
02:05
* BWman/Tree.html: * tree.tcl: Added a 'recursive' argument to 'Tree::opentree' and 'Tree::closetree'. [Patch #483838] (decoster) file: [9f8dc3099c] check-in: [fb00672cdf] user: hobbs branch: trunk, size: 62654
2001-08-08
20:58
2001-08-08 Andreas Kupries <andreas_kupries@users.sourceforge.net>    * tree.tcl (Tree::_keynav): Added code to call the open and close commands when the open-status of a node is toggled with the space bar. Bug [449284]. file: [a90b26ce29] check-in: [1ee1206401] user: andreas_kupries branch: trunk, size: 62511
2001-06-22
01:56
* tree.tcl: Corrected keyboard navigation so that open/close commands are invoked when right/left arrows are used to open/close nodes, patch from [Bug #435097]. Also corrected keyboard navigation on right arrow press; previously only opened closed nodes that had children, but should always open nodes, regardless of whether it has children. file: [d02018ea1c] check-in: [e7f424c3f6] user: ericm branch: trunk, size: 62093
2000-05-14
20:39
Fixed a typing error in the Tree::find procedure. The procedure wouldn't work because there was a 'llengh' where there should have been a 'llength'. file: [87daf4c04a] check-in: [6a88a69100] user: kuchler branch: trunk, size: 61750
2000-05-09
01:53
Fixing some fallout from focus work. file: [5d5ac9575b] check-in: [01176d7fa8] user: ericm branch: trunk, size: 61747
00:01
Another crack at the cursed tree focus problem. file: [741c9db1f1] check-in: [ede99c1cd2] user: ericm branch: trunk, size: 61735
2000-05-05
21:15
Undo focus footwork changes from a few days ago. file: [e636d3129f] check-in: [9d590d4280] user: ericm branch: trunk, size: 60215
2000-05-03
01:22
* tree.tcl: Did some fancy focus footwork [Bug: 4491]. Now you can do this: "Tree .t ; bind .t <Button-1> foo", and it will do the right thing. This will enable the use of proper focus-on-mouse-click bindings for trees, which in turn will fix the focus problem described in 4491. In addition, I added a binding to the canvas widget in the tree that redirects focus when it leaves the canvas and goes to the frame, just in case.    * dialog.tcl: Added a -geometry option, to allow the specification of geometry for the dialog. No particular care is taken to validate the geometry string, so if it is bogus, you lose. [RFE: 5188]. file: [f4e7ec6de0] check-in: [96fd99fedc] user: ericm branch: trunk, size: 60573
2000-04-25
23:37
Fixed default return value for _get_current_node so that _keynav wouldn't choke when nothing was selected. file: [8b35094d9f] check-in: [2debbd54d7] user: ericm branch: trunk, size: 60215
2000-03-29
20:57
* tree.tcl: Added protection for the left arrow key click in case we are already at the root node. This used to throw a Tcl error (fixes bug # 4619). file: [1d593abd34] check-in: [b1d0ba62c9] user: sven branch: trunk, size: 60216
2000-03-27
21:51
* tree.tcl: Added protection for the left arrow key click in case we are already at the root node. This used to throw a Tcl error (fixes bug # 4619). file: [195b7f09e1] check-in: [9e54948e6a] user: sven branch: scriptics-sc-2-0-beta-branch, size: 60192
2000-03-14
20:20
* button.tcl: (configure) replaced several hasChanged calls with one hasChangedX call.    * dynhelp.tcl: (sethelp) replaced several hasChanged calls with one hasChangedX call.    * entry.tcl: Replaced stack of hasChanged calls with one hasChangedX (in configure); replaced a couple cget's with getMegawidgetOption's.    * spinbox.tcl: Updated _test_options to use setMegawidgetOption, and to only do that if it has to, instead of always doing it.    * tree.tcl: Worked on itemcget; instead of upvar'ing the one-time-use variable, just refer to it directly.    * widget.tcl: One problem with [set ${class}::${path}:opt($option)] -- if path contains "foo(foo)", the command will choke. Removed that particular micro-optimization. Added setMegawidgetOption to compliment getMegawidgetOption; extended hasChangedX to accept multiple options to check. This allows us to compress stacks of hasChanged calls into a single call (so there's a single function call, and a single upvar...). file: [9c7b3313bd] check-in: [6492bbaf6a] user: ericm branch: trunk, size: 60061
01:23
* widget.tcl: Removed dead code; micro-optimizations to initFromODB.    * tree.tcl: Added option for default -fill of tree nodes on windows.    * notebook.tcl: Removed commented code.    * button.tcl: * entry.tcl: Replaced selected cget/getoption calls with getMegawidgetOption calls. file: [9e07646152] check-in: [8f3c969d9b] user: ericm branch: trunk, size: 59979
00:22
Undid a bad change. file: [08f6dbaec9] check-in: [fe40b9229a] user: ericm branch: trunk, size: 59921
2000-03-13
18:21
* tree.tcl: * spinbox.tcl: * entry.tcl: * dropsite.tcl: * dragsite.tcl: * arrow.tcl: Replaced selected cget/getoption calls with getMegawidgetOption calls.    * combobox.tcl: Removed LabelFrame from ComboBox (30% faster). file: [8ee7c399bc] check-in: [8ba51986ce] user: ericm branch: trunk, size: 59936
17:21
* widget.tcl: Added getMegawidgetOption function, which allows direct access to megawidget-specific options (those that do not map to a component widget option). This is dangerous, because it bypasses some checks, and it will only work with options that are specific to the megawidget. However, it is much faster, and enables some functions (like visiblenodes) to be much faster.    * tree.tcl: Reworked visiblenodes function to do a tree walk to find visible nodes. This is faster and more correct than the previous implementation, which queried all the nodes in the tree for their open bit. file: [59544ccfdc] check-in: [a0170bdaf0] user: ericm branch: trunk, size: 59911
2000-03-11
02:19
* tree.tcl: Changed the allnodes procedure to visiblenodes, and also the mechanism of retrieving those nodes. This took care of the previously required update. file: [80e4a1d534] check-in: [ba225828c0] user: sven branch: trunk, size: 59574
2000-03-09
19:41
* tree.tcl: Disabled the update before the find withtag in the allnodes procedure. The nodes are apparently created delayed, so before this procedure is called, the program has to do an update. I don't do this in the procedure anymore, because it caused multiple updates, making the app slower. file: [11a4622972] check-in: [a4a2ddb7f9] user: sven branch: trunk, size: 59517
2000-03-08
23:49
* tree.tcl: The new allnodes procedure was not handling the "current" tag correctly. This is now stripped of. file: [93004c4338] check-in: [59d7527d59] user: sven branch: trunk, size: 59516
2000-03-01
20:16
* pkgIndex.tcl: Bumped version to 1.3.0.    * tree.tcl: Changed focus redirect to use {after idle} to avoid focus loops.    * label.tcl: Added -bd 0 -highlight... etc to wrapper frame; moved class bindings to the frame instead of the component label.    * utils.tcl: Added helper function BWidget::refocus, to handle focus redirection calls.    * spinbox.tcl: Changed focus redirect to use {after idle} to avoid focus loops.    * combobox.tcl: Changed init to parseArgs/initFromODB style; changed focus redirect to use {after idle} to avoid focus loops. file: [7620efdbbf] check-in: [790e86ec6a] user: ericm branch: trunk, size: 59506
2000-02-28
18:37
* tree.tcl: Fixed focus issue. file: [35d0cbb53d] check-in: [f30440abdc] user: ericm branch: trunk, size: 59457
18:06
* tests/entry.test: tests for the Entry widget.    * widget.tcl: minor code cleanup.    * tree.tcl: Was not getting proper default bg color on Windows, and keyboard navigation was goofy because of internal structure changes.    * entry.tcl: Fixed an issue with initial foreground color not being picked up correctly. file: [2ae813be36] check-in: [ffceb11fde] user: ericm branch: trunk, size: 59477
16:46
* tree.tcl: Apparently the internal widget structure of tree was changed recently. I adjusted the "allnodes" procedure to that. file: [8ee9045555] check-in: [e8bac5f7a5] user: sven branch: trunk, size: 59263
16:19
* tree.tcl: Added a procedure called "allnodes" to retrieve the names of all currently defined treenodes. file: [ba7b257a60] check-in: [2d821a754a] user: sven branch: trunk, size: 59267
2000-02-26
01:56
* arrow.tcl: * button.tcl: * buttonbox.tcl: * combobox.tcl: * dialog.tcl: * dynhelp.tcl: * entry.tcl: (also fixed validation) * label.tcl: * labelframe.tcl: * listbox.tcl: * mainframe.tcl: * notebook.tcl: * pagesmgr.tcl: * panedw.tcl: * progressbar.tcl: * scrollview.tcl: * scrollw.tcl: * separator.tcl: * spinbox.tcl: * titleframe.tcl: * tree.tcl: Updated to new megawidget architecture.    * widget.tcl: Changed internal architecture. When possible, megawidget options are stored in component widgets instead of in an intermediary array. Also, made use of option database to make megawidget creation more efficient. file: [3f3a4f7fba] check-in: [fb6cf15d1c] user: ericm branch: trunk, size: 58823
2000-02-25
02:05
Added hack back to BWidget tree to d omulti-line select. Eric M. is aware of this and will fix it when he has time. file: [83ffcc7390] check-in: [e2b50e08e6] user: surles branch: trunk, size: 58785
2000-02-16
16:43
* tree.tcl: Changed the <KeyPress-space> binding to use "+", so it will not overwrite existing bindings (if there are any). Also added some extra protection in the keynav procedure against the user typing <Left> on a root node (this used to cause a stack trace). file: [910d7b2a6e] check-in: [aa5dc5c579] user: sven branch: trunk, size: 57398
2000-02-11
22:54
* tree.tcl: Integrated changes from Eric Boudaillier: [itemconfigure -open ...] optimized to only call redraw_idle 3 if node has subnodes. _cross_event: itemconfigure -open called before -opencmd/closecmd; no more call to _redraw_idle (handled by other procedures) _over_cmd: allow position {root 0} when tree is empty new [find] command: [find @x,y ?confine?] if confine is "confine" returns the node at window coordinate x,y (x,y must be inside the bbox of the node) else returns the node found on the line (in pixel) pixel y [find line] returns the node on the line $line (in -deltay coords) new [line] command: [line node] returns the line where node is drawn -selectfill option added: if true, selection is draw on full width of tree (instead of just highlighting the bbox of the selected nodes)    * combobox.tcl: Integrated changes from Eric Boudaillier: internal widget restructuring.    * tree.tcl: Added "range" subcommand to selection. Given two nodes, node1 and node2, it will set the selection to the visible nodes between (and including) node1 and node2. If node1 or node2 is not visible, it will find the first visible ancestor of the node and use that as the start/end point instead.    * listbox.tcl: Integrated changes from Eric Boudaillier: _over_cmd: allow position 0 when listbox is empty find command, similar to tree find command.    * spinbox.tcl: Integrated changes from Eric Boudaillier: cosmetic changes.    * color.tcl: Integrated changes from Eric Boudaillier: split widget into two commands: SelectColor::menu and SelectColor::dialog.    * progressbar.tcl: Integrated changes from Eric Boudaillier: added -idle option to prevent call to update in case where task is done in idle (ie, fileevents)    * scrollview.tcl: Integrated changes from Eric Boudaillier: bindings changed.    * scrollw.tcl: Integrated changes from Eric Boudaillier: -managed option: if true, scrollbar are managed during creation, so their size are included in the requested size of the ScrolledWindow. If false, they are not. -sides option: specifies the side of the scrollbar. -size option: specifies size of scrollbar. -ipad option: specifies pad between scrollbar and scrolled widget.    * mainframe.tcl: Integrated changes from Eric Boudaillier: support for function keys in accelerators, support for no modifier in accelerators.    * notebook.tcl: Integrated changes from Eric Boudaillier: -internalborderwidth (-ibd) option specifies pad around pages; -foreground, -background, -activeforeground, -activebackground, -disabledforeground options for each tab. Code cleanup. file: [5552281a07] check-in: [651774cb09] user: ericm branch: trunk, size: 57235
00:16
Slight modification to algorithm to handle non-visible nodes. file: [0ddac9b0ad] check-in: [6bdb5e8a71] user: ericm branch: trunk, size: 53918
00:07
* tree.tcl: Added "range" subcommand to selection. Given two visible nodes, node1 and node2, it will set the selection to the visible nodes between (and including) node1 and node2. file: [28783e6e8f] check-in: [3c515a19e2] user: ericm branch: trunk, size: 54056
1999-11-05
03:38
Changed env(BWIDGET_LIBRARY) to ::BWIDGET::LIBRARY everywhere. This makes BWidgets behave more nicely with tcltest. file: [010b943332] check-in: [149d9e6ba2] user: ericm branch: trunk, size: 52513
1999-10-22
18:16
* tree.tcl: Added support for keyboard-based scrolling. file: [3b177c35d5] check-in: [c82174bca6] user: ericm branch: trunk, size: 52521
17:49
* tree.tcl: Fixed some problems with keyboard traversal. Added support for left/right arrows a la MS Explorer. file: [ffa4859909] check-in: [d9ce65d137] user: ericm branch: trunk, size: 51972
00:09
* tree.tcl: Added a -selectable option to tree nodes, which controls whether or not a given node is selectable (duh). This works with the new -selectcommand option for the tree, and with keyboard traversal (also new). Now, whenever the tree gets a "selection set", it calls the given -selectcommand with the name of the tree and the list of selected nodes, which makes it easier to just drop in place and use. file: [c764618e68] check-in: [3f7df86982] user: ericm branch: trunk, size: 51268
1999-08-03
20:20
BWidget 1.2.1 import file: [faaf4bb90a] check-in: [68d35bc50f] user: ericm branch: trunk, size: 47687 Added