Меню.
<menu menu-attributes>
[{<menuitem ... />}]
<menu/>
| Название | Тип | Описание |
|---|---|---|
| call-event | event-name | Эмулирует возникновение события: вызывает код, связанный с данным событием (см. Событийные атрибуты для данного тэга), как будто это событие реально произошло. |
| moving | boolean | Перемещение окна перемещением menu. По умолчанию moving=«true». |
| position | string | Местоположение объекта в контейнере. Может принимать значения: top-menu, bottom-menu, left-menu, right-menu, top, left, bottom, right, center. Пример: <panel>
<menu position="bottom-menu" />
</panel>
|
| end | string | ссылка (id) appxml-объекта, который должен быть вставлен после всех пунктов меню верхнего уровня. Применяется для вставки красивой картинки или какого-либо текста в правую часть меню. |
| Название | Тип | Описание |
|---|---|---|
| oncreated | code | Описание действий для события, возникающего единожды, после создания объекта. Правила описания см. ("Описание событий в ApplicationXML"). |
| Название | Тип | Описание |
|---|---|---|
| icon | path | Путь к пиктограмме. |
| hotkey | Комбинация «горячих клавиш» для данного пункта меню. | |
| call-event | event-name | Эмулирует возникновение события: вызывает код, связанный с данным событием (см. Событийные атрибуты для данного тэга), как будто это событие реально произошло. |
| Название | Тип | Описание |
|---|---|---|
| onAction | code | Описание действий для события, типа, двойной щелчок мыши по объекту или нажатие Enter. Правила описания см. ("Описание событий в ApplicationXML"). |
Поля в menu описываются с помощью тэга <menuitem>.
Чтобы создать пункт-разделитель, нужно указать text=»» или вообще не использовать атрибут text. onAction можно указать только для пунктов второго и последующих уровней. Для пункта верхнего уровня такой возможности нет.
В appScript есть возможность обращения к пунктам меню через метод тэга menu components(), возвращющего хэш-массив с элементами меню.
<window id="mainWindow">
<menu>
<menuitem text="File">
<menuitem id="addMnu" text="Add" onAction="msg('Add button clicked')"/>
<menuitem id="editMnu" text="Edit" onAction="msg('Edit button clicked')"/>
<menuitem id="removeMnu" text="Remove" onAction="msg('Remove button clicked')"/>
<menuitem/>
<menuitem id="refreshMnu" text="Refresh">
<onAction>
println(mainWindow.components()["menu"].repaint());
</onAction>
</menuitem>
<menuitem/>
<menuitem id="exitMnu" text="Exit" onAction="mainWindow.close='true'"/>
</menuitem>
</menu>
</window>