Окно приложения. Может быть обычным или мультидокументным (MDI).
<window window-attributes> [<toolbar> ... <toolbar/>] [<menu> ... <menu/>] прочие appxml-тэги <window/>
^ Название ^ Тип ^ Описание ^
id | id_name | Уникальный, в рамках приложения, идентификатор объекта. Доступ к объекту с помощью AppScript выполняется через этот идентификатор. Если id не задан, то интерпретатор автоматически заполнит его некоторым случайным в момент запуска приложения. В этом случае appxml-программист лишается возможности обращаться к объекту. |
menu | tag or link2object | Описание меню для обычного или дочернего окна приложения. Описание может находиться как во вложенном тэге (тогда menu - это должно быть имя тэга, а не атрибута), так и в отдельно стоящем тэге (тогда menu - это имя атрибута, содержащего id отдельно стоящего тэга). При этом отдельно стоящий тэг должен находиться внутри тэга <common> |
toolbar | tag or link2object | Описание тулбара для обычного или дочернего окна приложения, а также для панели. Описание может находиться как во вложенном тэге (тогда toolbar - это должно быть имя тэга, а не атрибута), так и в отдельно стоящем тэге (тогда toolbar - это имя атрибута, содержащего id отдельно стоящего тэга). При этом отдельно стоящий тэг должен находиться внутри тэга <common> |
hideOnClose | boolean | Управляет действием над окном при закрытии: удалять или скрывать. По умолчанию - удаляет (hideOnClose=false). |
Название | Тип | Описание |
---|---|---|
mdi | boolean | Тип окна: MDI или обычное. |
title | string | Заголовок объекта. Атрибут имеет силу только при создании объекта. Изменение значения атрибута после создания объекта не будет иметь эффекта. Имеет дополнительные атрибуты: title-before, title-after, title-visible. |
notitle | boolean | Создает объект без заголовка. В том смысле, что не скрывает заголовок, а не рисует даже место под заголовок. |
x | ext-number | Координата объекта по оси X. Если объектом является панель, то атрибут работает только если панель размещается в контейнере с layout=null. Для прочих layout атрибут не поддерживается. |
y | ext-number | Координата объекта по оси Y. Если объектом является панель, то атрибут работает только если панель размещается в контейнере с layout=null. Для прочих layout атрибут не поддерживается. |
height | ext-number | Высота объекта. |
width | ext-number | Ширина объекта. |
visible | boolean | Видимость объекта |
enable | boolean | Разрешение/запрещение возможности для пользователя взаимодействовать с объектом. |
background-color | color-name | Цвет фона объекта |
icon | path | Имя пиктограммы. |
resize | boolean | Разрешение/запрет на изменение пользователем размеров окна. |
location | location | Располагает окно в соответствующей части экрана. |
position | location | Располагает окно в соответствующей части экрана. Синоним location. |
opacity | float | установка прозрачности окна. |
Название | Тип | Описание |
---|---|---|
close | boolean | Команда «закрыть окно». Окно уничтожается. |
alwaysOnTop | boolean | Управление способностью для окна быть поверх всех окон. Не тестировалось. |
select | boolean | Передача фокуса объекту. |
toBack | boolean | Принудительная потеря фокуса с отправкой окна на задний план. |
toFront | boolean | Передача фокуса окну с отправкой окна на передний план. |
call-event | event-name | Эмулирует возникновение события: вызывает код, связанный с данным событием (см. Событийные атрибуты для данного тэга), как будто это событие реально произошло. |
state | minimized | maximized| normal | Состояние размеров окна. maximazed - развернуть на весь экран, minimazed - свернуть, normal - нормальное состояние. |
Название | Тип | Описание |
---|---|---|
onCreated | code | Описание действий для события, возникающего единожды, после создания объекта. Правила описания см. (Описание событий в ApplicationXML). |
onClosed | code | @onClosed Правила описания см. (Описание событий в ApplicationXML). |
onBeforeClosed | code | @onBeforeClosed Правила описания см. (Описание событий в ApplicationXML). |
onEnter | code | Описание действий для события, возникающего при получении объектом фокуса. Правила описания см. (Описание событий в ApplicationXML). |
onExit | code | Описание действий для события, возникающего при потере объектом фокуса. Правила описания см. (Описание событий в ApplicationXML). |
Название | Тип | Описание |
---|---|---|
visual | panel | mdi | Поддерживаются визуальные атрибуты тэга <panel>, поскольку он является составной частью объекта. Для случая mdi-окна поддерживаются атрибуты тэга <mdi> |
Первое окно приложения считается главным. Если его закрыть (window.close=«true»), то будет закрыто все приложение.
Cоздание окна c параметрами по умолчанию.
<AppXML> <main> <window/> </main> </AppXML>
Cоздание окна с меню и тулбаром
<AppXML> <main> <window id="mainWindow" location="center"> <menu id="mainMenu"> <menuitem text="File"> <menuitem id="mnuMsg" text="Message" onAction="msg(this.id + ' button clicked')"/> <menuitem id="mnuExit" text="Exit" background-color="green" onAction="mainWindow.close='true'"/> </menuitem> </menu> <toolbar> <toolbaritem text="Message" onAction="mainMenu.getElementById('mnuMsg').callEvent('onAction')"/> <toolbaritem text="Exit" onAction="mainMenu.getElementById('mnuExit').callEvent('onAction')"/> </toolbar> <label text="Программируйте на AppXML!" align="center"/> </window> </main> </AppXML>
Cоздание окна без заголовка и с ссылками на внешнее описание меню и тулбара
<AppXML> <main> <window id="mainWindow" menu="mainMenu" toolbar="mainToolbar" location="center" notitle="true" border="line:gray"> <label text="Программируйте на AppXML!" align="center"/> </window> </main> <common> <menu id="mainMenu" border="line:gray" background-color="lightgray"> <menuitem text="File" background-color="lightgray"> <menuitem id="mnuMsg" text="Message" onAction="msg(this.id + ' button clicked')"/> <menuitem id="mnuExit" text="Exit" background-color="green" onAction="mainWindow.close='true'"/> </menuitem> </menu> <toolbar id="mainToolbar"> <toolbaritem text="Message" onAction="mainMenu.getElementById('mnuMsg').callEvent('onAction')"/> <toolbaritem text="Exit" onAction="mainMenu.getElementById('mnuExit').callEvent('onAction')"/> </toolbar> </common> </AppXML>
Cоздание MDI-окна
<AppXML> <main> <window id="mainWindow" mdi="true"> <toolbar> <toolbaritem text="Добавить дочернее окно" onAction="mainWindow.locate(cw1)"/> </toolbar> </window> </main> <common> <childwindow id="cw1" title="Оп-па!" notitle="true"> <label text="Привет! Я - дочернее окно." align="center"/> </childwindow> </common> </AppXML>
Cоздание окна с двумя MDI-зонами
<AppXML> <main> <window id="mainWindow"> <toolbar> <toolbaritem text="Добавить окно слева" onAction="mainMdi1.locate(cw1)" /> <toolbaritem text="Добавить окно справа" onAction="mainMdi2.locate(cw2)" /> </toolbar> <splitter a-id="split1" b-id="split2"> <mdi id="mainMdi1" position="split1.center"/> <mdi id="mainMdi2" position="split2.center"/> </splitter> </window> </main> <common> <childwindow id="cw1" title="Оп-па!" notitle="true" width="200"> <label text="Привет! Я - дочернее окно слева." align="center"/> </childwindow> <childwindow id="cw2" title="Оп-па!" notitle="true" width="200"> <label text="Привет! Я - дочернее окно справа." align="center"/> </childwindow> </common> </AppXML>