Окно приложения. Может быть обычным или мультидокументным (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>