Remove hardcoded assumptions about where in the menu items are and
instead bind menu items directly to commands so that customizing the
menu actually works.
Add support for user menu files that override the default one.
Add better support for multiple menus so that all of the menus can
potentially be created by the dynamic menu system rather than just the
main menu bar.
Add support for commands whose names change based on the current project
state so that undo and redo can work properly.
Simplify the menu json format and make commands responsible for
controlling what type of menu item is created rather than allowing
nonsensical configurations.
The Automation menu is currently not implemented.
Originally committed to SVN as r5554.
The old toolbar code didn't actually support any nontrivial
customization of toolbars, as it had a hardcoded list of commands which
would be enabled or disabled, and the checks for enabling/disabling
toolbar buttons was done only in the specific situations which those
commands used.
Make icon size a user customizable option and add support for
dynamically changing it at runtime.
Originally committed to SVN as r5468.