Bwidget Source Code
File History
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

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

History of scrollw.tcl

Rename option '-onlyhover' to 'autohidescrollbars' file: [b5e5e66306] check-in: [26b1b9804b] user: oehhar branch: rfe-d5480d1da2, size: 11889
-onlyhover not default. Removed dead code. Comments modified. file: [974ca813f7] check-in: [d2b4cecf3d] user: oehhar branch: rfe-d5480d1da2, size: 11857
Display ScrolledWindow scrollbars only if mouse is in the widget. Tciket [d5480d1da2] by Alexandru file: [4bd5f2257a] check-in: [246eaca515] user: oehhar branch: rfe-d5480d1da2, size: 12248
ScrolledWindow: raise scrolled window if below in window hierarchy [6632134ce9] file: [369707f791] check-in: [10c00fc4fb] user: oehhar branch: bwidget, size: 9782
entry.tcl, labelentry.tcl, labelframe.tcl, mainframe.tcl, pagesmgr.tcl, scrollw.tcl: [Bug 3168761]: entry failes when themed support activated with: unknown option "-highlightthickness" (reported by George on clt 27 Jan., 16:55). The patch by Wojciech Kocjan fixes this and enhances labelentry, labelframe and pagesmgr to also use themed frames. Within scrollw.tcl, a bug for empty background handling is fixed. The scrollbar background is not set any more for not-themed widget. file: [12872e1674] check-in: [42653f627e] user: oehhar branch: bwidget, size: 9763
ScrolledWindow theming support file: [ada401ccbd] check-in: [841c3caa6f] user: oehhar branch: bwidget, size: 9737
theme related mod's done file: [d75053a705] check-in: [b8bf09501c] user: oberdorfer branch: trunk, size: 10019
* ScrolledWindow.html ScrolledWindow documentation changed: Documented options: -ipad, -sides, -size, -managed [Patch 2807160] Text by Koen Danckaert Removed (read only) remark of option -scrollbar.    * scrollframe.tcl (ScrollableFrame::create) changed bindings [Patch 2807227] by Koen Danckaert (comment)    * scrollw.tcl (ScrolledWindow::_set_hscroll, ScrolledWindow::_set_vscroll) Bug corrected: enless loop when both scrollbars where automatically mapped and the window size was changed by this action (on linux). Scrollbar unmapping and mapping secured by a locked update [Bug 2783019] file: [7cc42debe5] check-in: [ae5fed8a0f] user: oehhar branch: trunk, size: 9110
2006-08-21 J. Tang <[email protected]>    * 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: [9086ec4f08] check-in: [ce134fbc79] user: dev_null42a branch: trunk, size: 9033
* scrollw.tcl (ScrolledWindow::create): correctly set -relief and -bd at creation time. [Bug #873666] file: [896f0666e9] check-in: [e1af40104b] user: hobbs branch: trunk, size: 8817
* scrollw.tcl (ScrolledWindow::setwidget): check that the old widget associated still exists before unconfiguring it. [Bug #833034] file: [b92411d130] check-in: [5917bc5c04] user: hobbs branch: trunk, size: 8768
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: [42b7158d41] check-in: [b363fd16f2] user: damonc branch: trunk, size: 8735
* 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: [1fafb00db4] check-in: [ebde8e280e] user: hobbs branch: trunk, size: 8930
* scrollw.tcl (ScrolledWindow::setwidget): remove any existing widget before setting the next. file: [689b5c7198] check-in: [28c841c470] user: hobbs branch: trunk, size: 9012
* scrollw.tcl: add lock around grid remove scrollbar to prevent infinite loop in small window situations. (kienzle) file: [64298bb7ba] check-in: [7d8f06c9a4] user: hobbs branch: trunk, size: 8808
* scrollw.tcl: complete rewrite of ScrolledWindow widget to address infinite loop scrollbar problems. This one is much simpler and does not suffer the infinite loop. There still seems to be an issue with shrinking smaller than one scrollbar width / height in size, but that's not common (nor fatal). Addresses [Patch #671821, #520903] [Bug #472718, #564691] file: [088d271c72] check-in: [08508ddc5a] user: hobbs branch: trunk, size: 8594
* 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: [5dca0c11d5] check-in: [fb6cf15d1c] user: ericm branch: trunk, size: 12531
* 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: [5b157051ba] check-in: [651774cb09] user: ericm branch: trunk, size: 12521
I added an "update idletask" to the scrollbar update. This prevents the loss of update events. It used to be that under certain circumstances in Author the set command did not get processed (changing the content of a text widget after doing a raise of the notebook). file: [a2a5bcfacc] check-in: [d8fdc9e35e] user: sven branch: trunk, size: 9011
BWidget 1.2.1 import file: [6913371109] check-in: [48bc375a03] user: ericm branch: bwidget-vendor-branch, size: 8968 Added