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
or submit via the online form by Aug 20.

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

History of entry.tcl

* entry.tcl, BWMan/entry.tcl checkbox.tcl Themed mode: Invoking "configure" without arguments results in errors that non-ttk options are not present. Removed Entry options: -background -foreground -relief -borderwidth -fg -bg -bd. Reported by Wolfgang S. Kechel [Bug 3513263] * entry.tcl mapped entry option -state to ttk::entry state in themed mode to make state change visible. file: [c9b28d1128] check-in: [2c3d9d4c82] user: oehhar branch: bwidget, size: 18276
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: [738278de2e] check-in: [42653f627e] user: oehhar branch: bwidget, size: 17679
theme related mod's done file: [b414b15384] check-in: [307eeef2b7] user: oberdorfer branch: trunk, size: 17684
Bwidget commited patches for bugs 2762361, 2340320, 1752755 file: [2fabd190e4] check-in: [66d9e2414f] user: oehhar branch: trunk, size: 16932
* 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: [bb35232364] check-in: [1db0c901a1] user: hobbs branch: trunk, size: 16907
* entry.tcl (Entry::create): add missing line continuation. [Patch #843932] (oehlmann) file: [86e265a768] check-in: [1ae860099d] user: hobbs branch: trunk, size: 16804
* entry.tcl: Use a button widget for -disabled options if we're using 8.3 [Bug 839469] file: [2bba38d888] check-in: [acfeb04bbd] user: damonc branch: trunk, size: 16803
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: [9edb19f79c] check-in: [b363fd16f2] user: damonc branch: trunk, size: 16699
* 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: [d9821a01bd] check-in: [ebde8e280e] user: hobbs branch: trunk, size: 16127
* passwddlg.tcl: * xpm2image.tcl: * mainframe.tcl: * panedw.tcl: * utils.tcl: * entry.tcl: * dynhelp.tcl: * dragsite.tcl: * color.tcl: added braces to expr where appropriate file: [f004e11c05] check-in: [ce9f3f3ee8] user: hobbs branch: trunk, size: 16147
Fix for bug #225308 "tk8.4 breaks Entry widget state option" file: [8c6be9b82a] check-in: [c7da3c6232] user: jenglish branch: trunk, size: 16138
* entry.tcl: Added smarts to handle Copy for non-editable entries (it should be allowed, but was not previously) [Bug: 3755].    * notebook.tcl: Small tweaks for placement of images on tabs.    * combobox.tcl: Added code to ensure that non-editable (but enabled) comboboxes could still be tabbed in to. file: [2c115508b3] check-in: [4053c67e25] user: ericm branch: trunk, size: 15645
* 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: [8e9e9a94d4] check-in: [6492bbaf6a] user: ericm branch: trunk, size: 14933
* 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: [099b07a873] check-in: [8f3c969d9b] user: ericm branch: trunk, size: 14871
* 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: [44790f7a45] check-in: [8ba51986ce] user: ericm branch: trunk, size: 14930
* entry.tcl: Added code to re-sync the -text option with the contents of the entry widget before doing configuration; this fixes [Bug: 4304]. file: [b2c804ccda] check-in: [c37d8b3a34] user: ericm branch: trunk, size: 14822
* button.tcl: Added check for -state flag, to initialize it properly.    * entry.tcl: Changed to parseArgs/initFromODB format; added check for -text flag to initialize it properly.    * labelentry.tcl: Changed to use parseArgs/initFromODB format. file: [c305317aa2] check-in: [9933dd2412] user: ericm branch: trunk, size: 14621
* entry.tcl: Fixed a conflict with configuring the Entry -text and textvariables. file: [2f15462eb2] check-in: [67cb79fdbc] user: ericm branch: trunk, size: 14087
* notebook.tcl: Added -bd 0 -highlightthickness 0 -relief flat to the notebook container frame so geometries are correct.    * entry.tcl: Fixed a conflict with configuring the Entry -text and textvariables.    * dialog.tcl: added a -class option to the dialog, to allow the class of the dialog to be set (this enables proper optiondb use for things like the PasswdDlg). file: [18fe8a1f25] check-in: [c2380ca81c] user: ericm branch: trunk, size: 14080
* widget.tcl: Added Widget::varForOption function, which returns a variable name that can be used to trace changes to an option for a particular megawidget (such as the -values option of a combobox).    * entry.tcl: Made cget -text a little more efficient by shortcircuiting in that case.    * combobox.tcl: Fixed bug #4248 by making the listbox use a -listvariable instead of trying to micromanage the listbox contents. file: [ef002ee4e5] check-in: [6f11528113] user: ericm branch: trunk, size: 13677
* 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: [6572f574c6] check-in: [ffceb11fde] user: ericm branch: trunk, size: 13660
* 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: [a3f61e1a6c] check-in: [fb6cf15d1c] user: ericm branch: trunk, size: 13585
* images/target.xbm: Placeholder for actual icon.    * color.tcl: Change env(BWIDGET_LIBRARY) to ::BWIDGET::LIBRARY; changed proc "dialogue" to "dialog"    * pkgIndex.tcl: Updated function spec for color.tcl.    * widget.tcl: Various minor speed tweaks; added a reverse mapping from component widget options -> mega-widget options so that subcget can be faster.    * entry.tcl: * dropsite.tcl: * dragsite.tcl: * arrow.tcl: Tcl list'd the specs for Widget::declare calls.    * combobox.tcl: Removed extraneous ListBox::use call. file: [3937017a64] check-in: [25c5681556] user: ericm branch: trunk, size: 15127
Added support to the Entry widget for the -validate {none focus focusin focusout key all} -invalidcommand -validatecommand -invcmd and -vcmd flags to support the validation features of the entry widget. These flags simply are passed down to the underlying entry widget if they are specified. They work identically to the flag descriptions given in the entry man page. file: [56288d5775] check-in: [9f740baa74] user: kuchler branch: trunk, size: 15225
BWidget 1.2.1 import file: [b43902b30b] check-in: [68d35bc50f] user: ericm branch: trunk, size: 14457 Added