Last update: 2021-1-17 version 1.52
Sourceforge: https://sourceforge.net/projects/tcl-flexmenu/
bll 2018-9-20: An alternative menu system.
2018-9-21: There seems to be a little interest in this. I wrote it for a couple of rather minor reasons (one of which I'm not sure is valid). Though I do really like having real checkbuttons and radiobuttons in the menu, and I like the -keepopen option.
bll 2019-12-7: In production as of 2019-11-25.
Version History1.52 2021-1-17 Mac OS: Fix menu colors for 8.6.11. Mac OS: Fix menu relief. 1.51 2020-12-15 Get menu -relief setting from standard menus. 1.50 2020-10-26 Fix another crash checking for -keepopen item. 1.49 2020-10-24 Fix a possible crash. Fix crash checking for -keepopen item. 1.48 2020-9-25 Added a -keepopen on a per item basis. 1.47 2020-8-28 Missing mousewheel binding for scrolling areas. Fixed scrollbar arrow buttons not working. 1.46 2020-6-9 allow index arithmetic add 'invoked' menu index to return invoked item. 1.45 2020-5-1 fix configure 1.44 2020-4-30 fix change of background color 1.43 2020-4-9 popup menus: fix bug: would immediately close after initial open. 1.41 2020-2-25 fix bugs with cascades introduced in 1.40 (-precommand, -yalign, -xalign) 1.40 2020-2-24 popup menus: fix bug: would immediately close after initial open. styling issue: fix bug with non-unique styles. clone command is now working. The widget entry type cannot be cloned. Added tearoff entry type. It is a standard label, the text or image can be configured. The -tearoff option automatically adds a tearoff item (backwards compatibility). -tearoffcommand is available. -title is available. Default title is empty. I expect this is not fully backwards compatible. tearoff command : create your own interface to tear off menus. 1.39 2020-1-10 Prevent a outofrange crash in updownhandler. 1.38 2019-12-25 Fixed a bug in the delete() method. Fixed a typo bug in _unpostMenu. Fixed a bug in invokeitem setting the wrong state. 1.37 2019-12-3 Add appearance/isdark call back in using a temporary toplevel. 1.36 2019-10-31 Remove appearance/isdark call. Only works on existing windows. 1.35 2019-10-17 Fixed close check handling. Fixed combobox click completely outside of menu window. Added -clicktoopen option. 1.34 2019-10-17 Fixed mouse handling issues with overlapping menus. 1.33 2019-10-15 Fix a bug in delete. 1.32 2019-9-29 Fix a bug in deactivateitem, when the item is not present. 1.31 2019-9-29 Fix a bug win movement check when there was no prior movement. 1.30 2019-9-25 More MacOS color fixes. Fix color/styling issues. 1.29 2019-9-18 Change -relief default to always be raised. Fix bug deleting items when the layout is not set up. Fix per-menu configuration handling for -font, -background, -foreground. More MacOS color fixes. Protect grab calls. 1.28 2019-9-16 Fix gap on delete. Fix reconfigure on insert or delete. 1.27 2019-9-16 Fix column weight issues. MacOS: toplevels are ok for 10.14+ MacOS: revert to old dark mode test for 10.14. 1.26 2019-9-10 Internal cleanup. Fix sizing issues. 1.25 Change color defaults for Mac OS. 1.24 Mac OS dark mode colors. 1.23 Fixed cascade unpost. 1.22 Handle change of item selection on insert/add/delete. 1.21 2018-12-03 Fix grab handling issue. Fix close check handling. 1.20 2018-12-03 Resolve issues with menu display and configuration. 1.19 2018-12-02 Added -bindaccelerators option. Added -stickycascade option. Fixed display when moving off of active item in certain cases. Fixed initial display of menu. 1.18 2018-12-02 Mac OS X: Force -mode frame, as toplevels cannot be supported at this time. 1.17 2018-11-29 Change manual invoke processing to work when the menu is inactive. This matches the original menu function. May create some odd states if run on a sub-cascade. Fixed overlapping menu handling. 1.16 2018-11-29 Allow vertical separators in menubar. Add new -gap option for items. 1.15 2018-10-25 Fix mac os x: enter/leave processing does not work properly. 1.14 2018-10-22 Fix various bugs with user 'invoke' method. 1.13 2018-10-22 Turn off mouse activation of menus in the wait state so that overlapping menus work (changed in 1.12). -xalign and -yalign can have tag[+-]offset Fix menutop/menuleft display (call postprocess). 1.12 2018-10-21 Initialize styles once only. Fix x and y offsets. Fix borderwidth and relief on menubar/menuleft menus. Fix placement of active frame in scrolling window. Fix enter/leave handling. Fix accelerator keys. Fix F10. Fix left arrow item positioning. 1.11 2018-10-1 Fix mistake. 1.10 2018-10-1 Rewrite styling and active state handling (pass 1). Some option cleanup. 1.9 2018-10-1 Fix incorrect default for -borderwidth. Fix bad copy/paste in enterLeaveHandler. Fix column spans with -hidemargin. Fix non-global grab. Fix enter/leave handling. Fix press handler/menu.enter/grab. Fix column weighting with -hidemargin. 1.8 2018-10-1 Fix crash when window closed. 1.7 2018-10-1 Remove tailcall. Rewrite grab handling. Rewrite enter/leave handling. Fix invoke of item when -keepopen is false. 1.6 2018-9-30 Set menu colors from the current theme. Fix -font handling. Fix menus not closing on checkbutton select. Button press will activate the menu and item. 1.5 2018-9-30 Fixed -borderwidth and -relief options for items. Added -mode {toplevel|frame} option. Cleaned up some stacking order issues (fixes the activeframe covering menu items). 1.4 2018-9-29 Added -precommand for cascades. Added -yalign for cascades. Added -xalign for cascades. Fixed bug in entrycget. Fixed 'delete' operation to match 'menu'. Fixed bug where the width was lost on a redisplay. Fixed display when initial number of items did not exceed -maxheight. Fixed various bugs with empty menus. 1.3 2018-9-22 Fixed initialization to only execute on mac os x. Fixed incorrect state for menus after invoking an item. Brought state table documentation up to date. 1.2 2018-9-21 (broken for non mac os x) Fixed -padx/-pady so they will work for the main menubar Set the -acceleratorprefix to \u2318 for Mac OS X. This is converted to 'Meta' (hope that's right). Changed default -acceleratorprefix to 'Alt-' (due to mac os x changes). Fixed the colors on mac os x. Dark mode and graphite themes are supported. Documentation 1.1 2018-9-20 Fixed active highlight for scrolled menus 1.0 2018-9-20 initial release
Fixed in 1.18: Mac OS X is not working at this time (2018-10-22). Mac OS X works, but only with -mode frame. -mode frame is forced for Mac OS X (2018-11-02). (-mode toplevel works with Mojave).
Fixed in 1.1: Active item highlighting for scrolling menus is not working right.
Fixed in 1.2: The accelerator key prefix is set to Alt. This needs to be set correctly for Mac OS X, but I do not recall which meta key the Mac sends.
Fixed in 1.41: The clone command has only a very basic implementation.
Flicker with -selectimage. Currently, the menu layout is reapplied when a -image is changed to a -selectimage. This is just in case the -selectimage is a different size. If the assumption can be made that the image sizes are identical, this redraw could be removed.