Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
tags:menu [15/12/2010 22:32] |
tags:menu [29/10/2020 16:32] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== <menu ... > ====== | ||
+ | |||
+ | ''Меню. '' | ||
+ | ---- | ||
+ | ===== Синтаксис ===== | ||
+ | <file> | ||
+ | <menu menu-attributes> | ||
+ | [{<menuitem ... />}] | ||
+ | <menu/> | ||
+ | </file> | ||
+ | |||
+ | ===== Атрибуты Menu ===== | ||
+ | |||
+ | ==== Основные атрибуты (R/W): ==== | ||
+ | |||
+ | ^ Название ^ Тип ^ Описание ^ | ||
+ | | **call-event** | [[intro:types#event-name]] |Эмулирует возникновение события: вызывает код, связанный с данным событием (см. Событийные атрибуты для данного тэга), как будто это событие реально произошло. | | ||
+ | | **moving** | [[intro:types#boolean]] |Перемещение окна перемещением menu. По умолчанию moving="true".| | ||
+ | | **position** | [[intro:types#string]] |Местоположение объекта в контейнере. Может принимать значения: top-menu, bottom-menu, left-menu, right-menu, top, left, bottom, right, center. \\ //Пример:// <code> | ||
+ | <panel> | ||
+ | <menu position="bottom-menu" /> | ||
+ | </panel> | ||
+ | </code>| | ||
+ | | **end** | [[intro:types#string]] |ссылка (id) appxml-объекта, который должен быть вставлен после всех пунктов меню верхнего уровня. Применяется для вставки красивой картинки или какого-либо текста в правую часть меню. | | ||
+ | |||
+ | |||
+ | ==== Событийные атрибуты (R/W): ==== | ||
+ | |||
+ | ^ Название ^ Тип ^ Описание ^ | ||
+ | | **oncreated** | [[intro:types#code]] |Описание действий для события, возникающего единожды, после создания объекта. \\ Правила описания см. ([[intro:event_desc|"Описание событий в ApplicationXML"]]).| | ||
+ | |||
+ | |||
+ | |||
+ | ===== Атрибуты Menuitem ===== | ||
+ | |||
+ | ==== Основные атрибуты (R/W): ==== | ||
+ | |||
+ | ^ Название ^ Тип ^ Описание ^ | ||
+ | | **icon** | [[intro:types#path]] |Путь к пиктограмме.| | ||
+ | | **hotkey** | |Комбинация "горячих клавиш" для данного пункта меню.| | ||
+ | | **call-event** | [[intro:types#event-name]] |Эмулирует возникновение события: вызывает код, связанный с данным событием (см. Событийные атрибуты для данного тэга), как будто это событие реально произошло.| | ||
+ | |||
+ | ==== Событийные атрибуты (R/W): ==== | ||
+ | |||
+ | ^ Название ^ Тип ^ Описание ^ | ||
+ | | **onAction** | [[intro:types#code]] |Описание действий для события, типа, двойной щелчок мыши по объекту или нажатие Enter. Правила описания см. ([[intro:event_desc|"Описание событий в ApplicationXML"]]).| | ||
+ | |||
+ | |||
+ | |||
+ | ===== Описание ===== | ||
+ | |||
+ | Поля в menu описываются с помощью тэга <menuitem>. | ||
+ | |||
+ | Чтобы создать пункт-разделитель, нужно указать text="" или вообще не использовать атрибут text. | ||
+ | onAction можно указать только для пунктов второго и последующих уровней. Для пункта верхнего уровня такой возможности нет. | ||
+ | |||
+ | В appScript есть возможность обращения к пунктам меню через метод тэга menu components(), возвращющего хэш-массив с элементами меню. | ||
+ | |||
+ | ===== Примеры ===== | ||
+ | <code> | ||
+ | <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> | ||
+ | </code> |