Ниже написано как настроить меню добавлением новых разделов. Но прежде всего необходимо отметить, что в версии 8.3.18 основное меню также существенно изменилось. Прежде всего, кнопки "Run/File Viewer" и "Run/Image Viewer" способны работать со всеми файлами компьютера. Вторая операция позволяет предварительно просмотреть все картинки на компьютере. Первая операция показывает htm-файлы в собственном браузере, с медиа файлами запускает стандартный проигрыватель, установленный на компьютере, а остальные файлы показывает как текст в собственном редакторе. Кроме того, появился раздел View, в котором можно изменить внешний вид программы. Также появилась операция запуска любой ACL программы по выбору минуя редактор. В подразделе "Prog/Open new" необходимо указывать полное имя файла вместе с папкой. При этом, если указанная папка и/или файл не существуют, то они будут созданы и программа откроет для редактирования пустой файл в новой папке. С другой стороны, в таком режиме можно редактировать любой файл. Кнопка "Prog/Choose" позволяет просматривать на компьютере все файлы с расширением .acl и выбрать один из них для редактирования. Все файлы, за исключением файлов из раздела Help, автоматически спасаются при закрытии редактора.
Настройка дополнительного меню программы состоит в редактировании файла "start.acl". Первая строка этого файла содержит 10 полей, разделенных символом вертикальной черты [|]. Восьмое поле (число) указывает сколько дополнительных разделов меню будут выставлены вместе с основными разделами Prog Exec Run Help. Если это число равно 0, то ничего не нужно и все работает как раньше. Но если оно больше нуля, например N, то в файле "start.acl" необходимо заполнить дополнительно N+1 строку. При этом первые N строк описывают новые разделы меню, а последняя строка указывает все программы, которые будут запускаться по этим разделам меню в порядке очереди.
Прежде чем описывать разделы меню, отмечу роль 10-го поля. В нем стоит число, которое регулирует начальный вертикальный размер окон редактора и файлов помощи. Пусть это число равно K. Тогда вертикальный размер равен 550+100*K. Необходимость в такой модификации была вызвана с появлением маленьких ноутбуков с разрешением по вертикали 600 символов, а также появлением больших мониторов и ноутбуков с очень высоким разрешением. Теперь программу можно насторить на любой компьютер.
Каждая строка описания разделов меню имеет структуру из 5 полей, то есть сплошных текстов без пробелов, разделенных пробелами. Первое поле - это имя раздела меню. Второе поле - это числовой код клавиши, по которой можно открыть данный раздел меню, нажимая ее при нажатой клавише [Alt]. Коды клавиш будут описаны далее в этой статье. Третье поле - это список всех подразделов данного раздела меню, разделенных символом вертикальной черты [|]. Имена подразделов не должны содержать пробелы (вместо пробелов можно использовать символ [-] или [_]). Четвертое поле - это опять список числовых кодов клавиш, разделенных символом вертикальной черты [|]. Эти клавиши можно нажимать для открытия подразделов меню при уже открытом разделе меню. И наконец пятое поле - это снова список числовых кодов клавиш, разделенных символом вертикальной черты [|]. Но эти клавиши называются ускорителями. Они позволяют стразу открыть подраздел меню при их нажатии при нажатой клавише [Alt].
Во избежание недоразумений коды разделов меню и коды клавиш ускорителей всех подразделов меню должны быть уникальными и не совпадать друг с другом. При этом надо помнить, что все числовые клавиши 0 1 ... 9, а также буквенные клавиши для букв B С E F H I M O P R S U V W уже используются в стандартном меню. Поэтому для дополнительного меню их использовать нельзя.
В последней N+1 строке нужно указать все ACL программы, которые будут запускаться. Для каждой программы нужно указать два поля. Первое поле - это имя папки программы относительно интерпретатора. Лучше не записывать программы в головную папку самого интерпретатора, так что этот случай я даже не обсуждаю. Второе поле - это имя самой программы вместе с расширением. При этом необязательно расширение .acl. Это только рекомендация для удобства. Вложенные папки должны описываться символов [/] как в Java, а не как в Windows. Таким образом полное число таких полей должно быть в 2 раза больше, чем число подразделов меню. Любая ошибка ведет к фатальному исходу незапуска программы, так что будьте внимательны.
Коды клавиш, используемые в Java, очень легко определять, потому что большинство клавиш имеет коды, совпадающие с ASCII кодами символов, которые они вводят. То есть [0]=48, ..., [9]=57, [A]=65, ..., [Z]=90. Другие клавиши имеют коды, совпадающие с ASCII кодами знаков нижнего регистра: [,]=44, [-]=45, [.]=46, [/]=47, [;]=59, [=]=61, [[]=91, [\]=92, []]=93. Служебные клавиши имеют следующие коды: [Bksp]=8, [Tab]=9, [Enter]=10, [Shift]=16, [Ctrl]=17, [Alt]=18, [CapsLock]=20, [Esc]=27, [Space]=32, [PgUp]=33, [PgDn]=34, [End]=35, [Home]=36. Стрелки имеют следующие коды: влево 37, вверх 38, вправо 39, вниз 40. Функциональные клавиши [F1]=112, ..., [F12]=123. Наконец другие клавиши имеют специальные коды: [Ins]=155, [Del]=127, [']=222, [`]=192. Служебными клавишами лучше не пользоваться. Остальные клавиши можно проверить эмпирически. Следует также помнить, что клавиша [Tab] стандартно используется для переключения фокуса с одного окна на другое и между разделами меню. Поэтому ее лучше тоже не использовать.