#targetengine 'session'
var menuHelp = app.menus.item("$ID/Main").submenus.item("$ID/&Help");
AddScriptMenuItemWithOnInvokeAction(
menuHelp,
'Форматирование файлов книги...',
new File(GetScriptFolderName() + '/formatFiles.jsx'));
// Возвращает путь к папке из которой запущен скрипт
function GetScriptFolderName() {
try {
app.activeScript.parent.fsName;
} catch (e) {
// исключение, если скрипт запущен из редактора ESTK
return (new File(e.fileName)).parent.fsName;
}
}
// Добавляет или обновляет пункт меню
function AddScriptMenuItemWithOnInvokeAction(
parentMenu, // меню в которое добавляется элемент
title, // название пункта меню
scriptFile, // объект File ссылающийся на файл скрипта
/* optional */ nextMenuItem // пункт меню перед которым будет добавлен элемент
) {
var menuItem = parentMenu.menuItems.itemByName(title);
// если такой пункт меню существует - обновим его
if (menuItem.isValid) {
menuItem.associatedMenuAction.eventListeners.everyItem().remove();
menuItem.associatedMenuAction.addEventListener(
'onInvoke',
scriptFile,
false);
return menuItem;
}
// создадим новый
var sma = app.scriptMenuActions.add(title);
sma.eventListeners.add('onInvoke', scriptFile, false);
menuItem = parentMenu.menuItems.add(
sma,
nextMenuItem ? LocationOptions.BEFORE : undefined,
nextMenuItem);
return menuItem;
}