Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

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>
 
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS