Bwidget Source Code
File History
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.

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

History of mainframe.tcl

mainframe.tcl: Allow to skip a main menu level by empty menu label. Purpose: support commands/checkboxes at first level. file: [85aaa24c24] check-in: [96249ade71] user: oehhar branch: bwidget, size: 27692
mainframe.tcl: Add optional parameter "Top" to internal function "MainFrame::_create_menubar" to allow to use a menu button for the main menu (Hack). file: [3894966947] check-in: [0c75c51ff3] user: oehhar branch: bwidget, size: 27062
"Mainframe configure" caused error in themed mode. Ticket [52273c0a4e] file: [c8edeac8c9] check-in: [f83cfb9f5f] user: oehhar branch: bwidget, size: 26886
Curing shift-lock interferences of Shift-Accelerators of Mainframe widget on the MAC. Ticket [83ce3e84e7], Patch [9f67a66609] file: [eae3fd079e] check-in: [fdb38ca6f0] user: oehhar branch: bwidget, size: 26047
mainframe.tcl: Reverted Patch [1977644] (checkin [58357c462f])(-casesensitive for accellerators). It has issues with shift-lock. file: [e91c59af5f] check-in: [510027c421] user: oehhar branch: bwidget, size: 23764
Commiting patch [d58b61392d] from ticket [83ce3e84e7] file: [3ed7f1d237] check-in: [bb507704b1] user: oehhar branch: bwidget, size: 23968
Bug fixed changing Aqua menu color when changing window background [bug-a81b7afc1e] file: [f6ba746427] check-in: [18fa361145] user: oehhar branch: bwidget, size: 23177
Allow new modifiers Shift, Cmd and ShiftCmd for accelerators [Patch-83ce3e84e7] file: [924b9878ea] check-in: [eb025fca9d] user: oehhar branch: patch-83ce3e84e7, size: 23906
Allow case-sensitive accelerators in mainframe by new option -casesensitive [Patch 1977644] file: [cc16a11ab9] check-in: [58357c462f] user: oehhar branch: bwidget, size: 23115
Added -sizegrip option to MainFrame file: [5775845b1c] check-in: [a61e097939] user: oehhar branch: bwidget, size: 22801
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: [27d07c2aed] check-in: [42653f627e] user: oehhar branch: bwidget, size: 22636
* mainframe.tcl Menu text shows white on white on Mac aqua [Bug 3105665] reported by Scott Smedley fixed by Kevin Walzer. file: [ef2e76d2c2] check-in: [ee0e989ff6] user: oehhar branch: bwidget, size: 22592
* mainframe.tcl Menu text shows white on white on Mac aqua [Bug 3105665] reported by Scott Smedley fixed by Kevin Walzer. file: [938be10bcd] check-in: [d4c86b7b85] user: oehhar branch: trunk, size: 22567
*** continous developement, some small improvements file: [22aaaa96d5] check-in: [9c53cf5397] user: oberdorfer branch: trunk, size: 22530
theme related mod's done file: [87263805d6] check-in: [307eeef2b7] user: oberdorfer branch: trunk, size: 22500
* mainframe.tcl, MainFrame.html (MainFrame::getmenustate) Added method getmenustate to return menu tag state [Bug 948063] reported by Rolf Ade    * combobox.tcl (ComboBox::configure) Bug fixed: Widget did not take focus, when -editable false and "configure -state normal" called. [Bug 756334] reported by Rolf Ade    * widget.tcl (Widget::configure) Bug: ProgressDlg option -bg not setable. The special handling of subwidgets with special class or path ":cmd" was improved. [Bug 611477]    * notebook.tcl (NoteBook::_itemconfigure) Not honored option: itemconfigure ... -helptext [Patch 2814050] by Koen Danckaert file: [7e8d0a1f81] check-in: [f39181862b] user: oehhar branch: trunk, size: 22545
* pkgIndex.tcl: removed bogus "ControlFrame" entry [bug 1429405]    * MainFrame man page: fixed some typos on man page    * mainframe.tcl: fixed status bar placement when it is re-shown after a [showstatusbar none] command [bug 1027568] file: [dc3839f3e0] check-in: [2bf0fd3b5e] user: dev_null42a branch: trunk, size: 22712
* mainframe.tcl (MainFrame::configure): need to ignore -bg change check when themed. file: [7a46003666] check-in: [0aebde9a43] user: hobbs branch: trunk, size: 22648
* mainframe.tcl (MainFrame::_create_menubar): ignore -bg -bd opts when themed file: [5f5f0eab71] check-in: [5c5f8e8620] user: hobbs branch: trunk, size: 22629
remove tile compat options that are not valid file: [fa475660bd] check-in: [043732a0f6] user: hobbs branch: trunk, size: 22609
extend ttk theme awareness to subframes/separators file: [3d8c3edbc8] check-in: [e1a534c672] user: hobbs branch: trunk, size: 22748
* mainframe.tcl (MainFrame::create): make ttk theme aware file: [000f47e75f] check-in: [ed85ac41c6] user: hobbs branch: trunk, size: 22325
(MainFrame::_parse_accelerator) made accelerator Ctrl-f in -menu definitions work. [Bug 1043107] file: [e376d10b8e] check-in: [9d1e2a998f] user: pointsman branch: trunk, size: 21989
* 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. file: [d06873965f] check-in: [f039451eac] user: hobbs branch: trunk, size: 21943
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: [10fa717bde] check-in: [b363fd16f2] user: damonc branch: trunk, size: 21831
* 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: [2280106cd7] check-in: [ebde8e280e] user: hobbs branch: trunk, size: 21947
* combobox.tcl: Changed relief of popup list to ridge, for Win* platforms. file: [91085c07e6] check-in: [31049255f2] user: andreas_kupries branch: trunk, size: 22032
* mainframe.tcl: correct unprotected eval calls. [Patch #501210] (chevreux) file: [4c8d0ba2c2] check-in: [b29891b0fe] user: hobbs branch: trunk, size: 22028
* mainframe.tcl: added options -menubarfont, -menuentryfont and -statusbarfont at creation time of the widget as well as subsequent configures. [Patch #479935] (chevreux) file: [5b2f4f7edb] check-in: [5f381ab362] user: hobbs branch: trunk, size: 22090
* mainframe.tcl (_create_menubar): start tagstate initially on. [Patch #470273] (chevreux) (_parse_accelerator): improve F* function key accelerator support. [Patch #444172] (venski) file: [73815e7e08] check-in: [f61b67b637] user: hobbs branch: trunk, size: 20145
Pack the toolbar with -expand yes -fill x so that it extends all the way across the mainframe, as per SF patch #445675. file: [1e88c22ea4] check-in: [450bf73c24] user: jenglish branch: trunk, size: 20003
* mainframe.tcl: corrected state interpretation. It doesn't do exact argument matching, but it is consistent with the rest of BWidget. [Bug #224476] file: [63e6fecfd1] check-in: [6f242c1873] user: hobbs branch: trunk, size: 19980
* mainframe.tcl: Fixed the typo of Alt (Atl) as reported in bug # 6079. file: [17d9a5eacb] check-in: [49dfcedd22] user: sven branch: trunk, size: 19887
* 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: [f857bec3cb] check-in: [fb6cf15d1c] user: ericm branch: trunk, size: 19888
* 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: [9ab2aaaa26] check-in: [651774cb09] user: ericm branch: trunk, size: 19841
Added the new "menuonly" method, to make the main frame look nice in case all we want is a simple menubar. Also added support for function key bindings in the menu (F1 etc.). file: [773e7bda2b] check-in: [c8897b846d] user: sven branch: trunk, size: 19790
* mainframe.tcl: Fixed _destroy to unset ALL state variables, so that when a new MainFrame of the same name as an old one is created, it doesn't pick up residual state from the old one. file: [6914b9a008] check-in: [027986893f] user: ericm branch: trunk, size: 19355
* mainframe.tcl: Modified menu creation/setmenustate functions to support a new model of menustate. Instead of enabling/disabling a menu item whenever any one of its tags changes state, now it only enables menu items if all of its tags are set. This makes it really easy to, say, only enable the "New Action" entry if both a project is open and an element is selected. file: [8184e8177a] check-in: [0406abeac2] user: ericm branch: trunk, size: 19033
BWidget 1.2.1 import file: [ec005c537c] check-in: [48bc375a03] user: ericm branch: bwidget-vendor-branch, size: 17568 Added