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 8dc164d14e88dae6.

code safety fixes check-in: 77d2799e69 user: hobbs tags: trunk
* statusbar.tcl: better -bg handling (configure too), and tighten up spacing on resize control to place it flush bottom right check-in: 7132855567 user: hobbs tags: trunk
* statusbar.tcl: add -showseparator optional horizontal separator. check-in: d3c0f94106 user: hobbs tags: trunk
* statusbar.tcl: correct name of image for use on unix. Try to use of PNG image at each create (it just looks better). check-in: 542767d9a0 user: hobbs tags: trunk
* tree.tcl (Tree::delete): call -selectcommand if we delete something that was selected. check-in: c002e37252 user: hobbs tags: trunk
* statusbar.tcl: correct use of PNG vs. GIF image. Don't abort creation of statusbar when gridded - just don't try to resize. Correct example to use label -width 1 check-in: a256d9e77b user: hobbs tags: trunk
* statusbar.tcl (new): Addition of a statusbar container widget * pkgIndex.tcl: with resize control * * BWman/contents.html: * BWman/navtree.html: * BWman/StatusBar.html (new): check-in: 9864f36163 user: hobbs tags: trunk
* font.tcl (SelectFont::create): don't hardcode -bd 2 when creating the style selectbuttons. check-in: f0153b81c4 user: hobbs tags: trunk
(_show_help): account for OS X help style check-in: b5f6f82b56 user: hobbs tags: trunk
* listbox.tcl (_keyboard_navigation): make sure you can see the item that you key navigate to. (aas) check-in: 06e4ff58b0 user: hobbs tags: trunk
* tree.tcl (_update_nodes): align with _draw_nodes code, specifically correcting placement of cross on new nodes and anchor of changed window/image. check-in: add122cb8e user: hobbs tags: trunk
* listbox.tcl (create): don't force -highlightthickness 1 as it prevents the user changing it on creation. (_draw_item): pass more cached info from _redraw_items for speed. (_redraw_selection): correct drawing of selfill for items that extend beyond the width of the window. check-in: a9181d9407 user: hobbs tags: trunk
(create): Insert $path into the canvas bindings, so that anyone binding directly onto the widget will see their bindings activated when the canvas has focus. Add slightly modified up/down bindings to the canvas, in case it gets the focus (like with -autofocus). check-in: 9a3b6fef63 user: hobbs tags: trunk
* listbox.tcl: correct eval/after/lists usage. (_redraw_listbox): call _update_select_fill on redraw, otherwise the insert of items causes wonkiness. (_redraw_items): call update idle after changing cursor. check-in: 2cb484bc9e user: hobbs tags: trunk
* tree.tcl (edit): correct inversion of verifycmd emptiness test. check-in: 9207f0321a user: hobbs tags: trunk
* 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. check-in: 1db0c901a1 user: hobbs tags: trunk
(bugfix) Use <<PrevWindow>> virtual event instead of <Shift-Tab> event for back-tab binding. check-in: f89f41ed20 user: jenglish tags: trunk
* progressbar.tcl (ProgressBar::_modify): convert rect coords to ints to prevent left-over lines that are likely due to a bug in core Tk related to fractional coord refresh. check-in: 24ec7f5b1d user: hobbs tags: trunk
* mainframe.tcl (MainFrame::_create_menubar): set the bg for menus only on unix (otherwise disturbs menu native L&F) Correct some eval/list issues.    * BWman/MainFrame.html: * mainframe.tcl (MainFrame::_create_entries): correct 'cascade' spelling, but support old 'cascad' as well. check-in: f039451eac user: hobbs tags: trunk
* scrollw.tcl (ScrolledWindow::create): correctly set -relief and -bd at creation time. [Bug #873666] check-in: e1af40104b user: hobbs tags: trunk
* init.tcl: don't modify *Listbox.background and *Button.padY options - leave core widgets alone. check-in: 9e3c8ad8ac user: hobbs tags: trunk
*** empty log message *** check-in: 3a20747917 user: rmax tags: trunk
* bumped to v1.7. This should have happened before releasing 1.7.0. check-in: 77d769d7fb user: rmax tags: trunk
* 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