13

Is it possible to add an entirely new menu, say menu "CustomApp" on the fly?

For example a CustomApp package could add its own menu "CustomApp" with submenus, ect, once Needed.

Former examples I have seen, only dealt with adding to an existing menu.

István Zachar
  • 47,032
  • 20
  • 143
  • 291
magma
  • 5,290
  • 24
  • 46

3 Answers3

10

You can't add an entirely new menu using AddMenuCommands. We have it from John Fultz here:

"AddMenuCommands can only position a menu relative to one with a simple front end token."

(I trust I've not taken that out of context.)

Chris Degnen
  • 30,927
  • 2
  • 54
  • 108
  • I feared that. Still..is it possible to force MMA to read and apply a new MenuSetup.tr file during a session? maybe by restarting the fron-end? – magma May 31 '12 at 00:52
  • This isn't actually the case. You can programmatically edit and then apply using FrontEnd`ResetMenusPacket – b3m2a1 Aug 27 '18 at 10:51
5

You can change the Mathematica menu in the way you desire by editing the MenuSetup.tr file, and restarting Mathematica. I make this change each time I get a new version of Mathematica.

Of course, this isn't ideal, because it involves making a permanent change to the system, but it does work - just follow the style of the rest of the file.

Be careful to back up the original file, and make your changes a little at a time, because Mathematica isn't very informative if you get the syntax wrong. Don't use operators in this file - last time I tried, they failed.

David Bailey
  • 196
  • 2
  • 2
  • Thank you David, this was known, but the real point is: can we do this programmatically? Can a user-package do this and then perhaps programmatically restart the fron-end so that the new Menu takes effect? You can see from my comment above in Degnen's answer and in the question text that the real challenge lies in doing this programmatically. – magma Aug 21 '14 at 09:45
4

This is actually entirely possible. See, for example, this. All you need to do is use FrontEnd`ResetMenusPacket on a new Menu expression.

Beware that if you get rid of too much you'll crash Mathematica. I've never had an issue from adding new menus, though.

b3m2a1
  • 46,870
  • 3
  • 92
  • 239