Copy link to clipboard
Copied
Dear all,
The script I'm developing creates a menu for the various steps to be taken by the user. It acts both on a single document or on a book (all of it's documents). Adding the custom menu to the SpecialMenu
works fine for the documents. This standard menu is not available if a book is active. Hence I tried to connect it to the FormatMenu
.
function DefineMenus() { var menuMain = {en: "Bibliography with EndNote …", de: "Bibliografie mit EndNote …"}; var menuDocu = {en: "Documentation", de: "Beschreibung (en)"}; var menuLocation = app.GetNamedMenu("FormatMenu"); var bibenMenu = menuLocation.DefineAndAddMenu("!BIBENmain", (localize(menuMain))); bibenMenu.DefineAndAddCommand(1,"BibenDocu", (localize(menuDocu)), ""); }
I observe the following:
What must be done that the menu is available for books and documents?
Thanks Jang - in the meantime I had a similar idea, noting that in the menu.cfg files there both a FormatMenu and a BookFormatMenu exists. But even this does not help:
var menuLocation = app.GetNamedMenu("FormatMenu"); var bibenMenu = menuLocation.DefineAndAddMenu("!BIBENmain", (localize(menuMain))); bibenMenu.DefineAndAddCommand(1,"BibenDocu", (localize(menuDocu)), ""); menuLocation = app.GetNamedMenu("BookFormatMenu"); var bkbibenMenu = menuLocation.DefineAndAddMen...
Copy link to clipboard
Copied
Hello Klaus,
AFAIK, you need to define two menus, or submenus. They can have the same commands added to them, but must be two separate items, which you can then add to the respective menus. All menus in FM are linked together in a linked list, which is why the same menu cannot appear in two locations, even if these are never both visible.
I hope this helps. I have been struggling with this and creating two separate menus solved my problems.
Ciao
Jang
Copy link to clipboard
Copied
Thanks Jang - in the meantime I had a similar idea, noting that in the menu.cfg files there both a FormatMenu and a BookFormatMenu exists. But even this does not help:
var menuLocation = app.GetNamedMenu("FormatMenu"); var bibenMenu = menuLocation.DefineAndAddMenu("!BIBENmain", (localize(menuMain))); bibenMenu.DefineAndAddCommand(1,"BibenDocu", (localize(menuDocu)), ""); menuLocation = app.GetNamedMenu("BookFormatMenu"); var bkbibenMenu = menuLocation.DefineAndAddMenu("!BIBENmain", (localize(menuMain))); bkbibenMenu.DefineAndAddCommand(1,"BibenDocu", (localize(menuDocu)), "");
The effect is the same as before!
I'm invoking the script without using the ESTK (because this does not work for my custom-installation of FM). I write the script in EditPadPro, save it and invoke it via File > Scripts > Run (or the catalogue). So far I'm successful - atbeit somewhat slow - with my development.
This separtation process may require that I do the second part of the menu definition this way:
menuLocation = app.GetNamedMenu("BookFormatMenu"); var bkbibenMenu = menuLocation.DefineAndAddMenu("!bkBIBENmain", (localize(menuMain))); bkbibenMenu.DefineAndAddCommand(1,"BibenDocu", (localize(menuDocu)), "");
In this case the menu entry Format > Bibliography... is present in both the document and the book, but in the book it is gray (inactive). So there is still a missing link.
Ah, now I got it: also the submenu items must be different:
var menuLocation = app.GetNamedMenu("FormatMenu"); var bibenMenu = menuLocation.DefineAndAddMenu("!BIBENmain", (localize(menuMain))); bibenMenu.DefineAndAddCommand(1,"BibenDocu", (localize(menuDocu)), ""); menuLocation = app.GetNamedMenu("BookFormatMenu"); var bkbibenMenu = menuLocation.DefineAndAddMenu("!bkBIBENmain", (localize(menuMain))); bkbibenMenu.DefineAndAddCommand(1,"bkBibenDocu", (localize(menuDocu)), "");