Bwidget Source Code
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.

50 check-ins occurring around 8018d8138510ae06.

* fixed support for DESTDIR. check-in: d3f9a6b27c user: rmax tags: trunk
* init.tcl: Added a binding to the Tk spinbox to handle traversal as loading BWidgets seems to screw up the default handling for Tk. [Bug #867604]    * utils.tcl: Fixed a bug that would cause some geometry calculations in BWidget::place to behave incorrectly. This would occasionally make it appear as though a drawn dialog would freeze the application. [Bug #868315] check-in: cd1f34685b user: damonc tags: trunk
Synthetic commit. Leaf check-in: 8dc164d14e user: cvs2fossil tags: bwidget-1-7-0-synthetic, bwidget-1-7-0
Corrected date. check-in: 100ba912c6 user: techentin tags: trunk
Corrected date typo. check-in: 7f9167142b user: techentin tags: trunk
Changed revision to 1.7.0. Note that 1.7.0 does not include 2003-11-26 mod to notebook.tcl. check-in: a089c45cf0 user: techentin tags: trunk
* notebook.tcl (NoteBook::bindtabs): correct tab name returned. (groth) check-in: 1e50948b19 user: hobbs tags: trunk
* entry.tcl (Entry::create): add missing line continuation. [Patch #843932] (oehlmann) check-in: 1ae860099d user: hobbs tags: trunk
* entry.tcl: Use a button widget for -disabled options if we're using 8.3 [Bug 839469] check-in: acfeb04bbd user: damonc tags: trunk
* combobox.tcl: Fixed dropdown listbox selection for standard Tk listbox [Bug 831496]. check-in: ffa1a67fb4 user: damonc tags: trunk
* scrollview.tcl (ScrollView::_set_view): correct :canvas to renamed :cmd. check-in: ff2222a190 user: hobbs tags: trunk
* scrollw.tcl (ScrolledWindow::setwidget): check that the old widget associated still exists before unconfiguring it. [Bug #833034] check-in: 5917bc5c04 user: hobbs tags: trunk
* combobox.tcl, listbox.tcl: Fixed keyboard navigation in the combobox drop down [Bug 831496].    * listbox.tcl: Added curselection subcommand to mimic Tk listbox behavior.    Added keyboard navigation to the listbox.    * widget.tcl: Added Widget::exists command to return whether a widget is a BWidget (based on whether it exists in the _class array).    Widget::destroy now properly unsets the widget's variable in the _class array. check-in: ccc0a40c43 user: damonc tags: trunk
Fix markup errors [Bug #740484] check-in: b764a99d2a user: jenglish tags: trunk
Updated the docs for my latest commit. check-in: be14c8e806 user: damonc tags: trunk
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. check-in: b363fd16f2 user: damonc tags: trunk
* 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. check-in: ebde8e280e user: hobbs tags: trunk
* listbox.tcl: Correct Listbox selection drawing [Bug #781652] check-in: b9e13bfb56 user: hobbs tags: trunk
Fix for bug #720032 "BWidget breaks Tk entry behaviour" check-in: bb7a1f845a user: jenglish tags: trunk
* listbox.tcl (_multiple_select): correct shift-selection when selectmode is multiple. [Bug 653266] Use lsearch -exact instead of default -glob in all uses. Use list with eval for safety. check-in: 8e2dd9b45a user: hobbs tags: trunk
* notebook.tcl: Use list with eval for safety. Use lsearch -exact instead of default -glob in all uses. check-in: ce3ff258fa user: hobbs tags: trunk
clarify management of embedded widget check-in: 5aa0ec2611 user: hobbs tags: trunk
* combobox.tcl: Added a little better handling of keys in the auto-complete. check-in: 5cb54da8ad user: damonc tags: trunk
* combobox.tcl: Added a rudimentary auto-complete function with option (-autocomplete) that is turned off by default. Over time, I'm sure this function can be improved, but I think it works pretty well for now.    * BWman/ComboBox.tcl: Added documentation for -autocomplete. check-in: 6c5562c1f7 user: damonc tags: trunk
* listbox.tcl: Liberal use of list where appropriate to make the code safe for space-containing node names. check-in: ebe3ea42a0 user: damonc tags: trunk
updated version number to 1.6.0 check-in: 8018d81385 user: techentin tags: trunk, bwidget-1-6-0
* README.txt: updated version number to 1.6.0 check-in: 3919e357f0 user: techentin tags: trunk
* progressbar.tcl: correctly handle progressbar being quickly created and deleted by deleting afters and checking var existence. check-in: 146a1b8e71 user: hobbs tags: trunk
Widget::focusOK: Don't assume that '-editable' option is always 1 or 0 for all widgets. [Bug 710658] check-in: 61b5694e0b user: jenglish tags: trunk
* demo/tree.tcl: make the tree scrollview make sense in demo. [Bug 684462] check-in: fcf32fa827 user: hobbs tags: trunk
* tree.tcl: correct node lsearch'ing to use -exact to allow for [] containing nodes [Bug 628041] (decoster) check-in: 26989afe66 user: hobbs tags: trunk
* notebook.tcl: ensure that bd is min 1 at all times. [Bug 688227] Correct use of eval with list. check-in: c901fb6c6f user: hobbs tags: trunk
* dynhelp.tcl (DynamicHelp::_motion_balloon): correctly listify after delayed _show_help callback. check-in: 63e01075ed user: hobbs tags: trunk
* scrollw.tcl (ScrolledWindow::setwidget): remove any existing widget before setting the next. check-in: 28c841c470 user: hobbs tags: trunk
* 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. check-in: 16aef283ae user: hobbs tags: trunk
(Tree::_redraw_selection): correct -selectfill to include the image, in any, in the bbox calculation since it may be larger. check-in: aec83cd20a user: hobbs tags: trunk
* 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. check-in: 3f4eb85d05 user: hobbs tags: trunk
* 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. check-in: 106735c26c user: damonc tags: trunk
* utils.tcl (BWidget::focus): add optional refocus arg * combobox.tcl: make droplist use solid 1-pixel relief more in accordance with Windows style. Set topmost attribute on droplist. Add bindings that unmap the droplist if we lose focus to another application (where [focus] == ""), without refocusing to the entry. check-in: fa48aa6dee user: hobbs tags: trunk
* combobox.tcl (ComboBox::_expand): add tab expansion behavior when -expand tab is specified (ComboBox::_focus_in): autohighlight full contents only when no existing selection exists. [Bug #720024]    * BWman/ComboBox.html: doc -expand none|tab check-in: 21a522aaec user: hobbs tags: trunk
* 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. check-in: 2068922661 user: damonc tags: trunk
* scrollw.tcl: add lock around grid remove scrollbar to prevent infinite loop in small window situations. (kienzle) check-in: 7d8f06c9a4 user: hobbs tags: trunk
bumped to v1.6 check-in: 25ea388b96 user: hobbs tags: trunk
bumped to v1.6 check-in: 598623983d user: hobbs tags: trunk
* 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] check-in: 08508ddc5a user: hobbs tags: trunk
code cleanup check-in: a69dbc6278 user: hobbs tags: trunk
* panedw.tcl (_realize): only allow _realize to be called once the Configure binding has triggered once. [Bug #613134] [Patch #63500] (decoster) check-in: e14bab597e user: hobbs tags: trunk
typo fix check-in: 987a93c858 user: hobbs tags: trunk
* font.tcl: comment out the adding of default style bits for bold and italic. The allows setting the font to something like "Courier 8", clicking B on and off and getting "Courier 8" back again (otherwise gave "Courier 8 normal roman"). check-in: 1951f74ec2 user: hobbs tags: trunk
* 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. check-in: ecd5aec25e user: damonc tags: trunk