Двухбуквенное обозначение языка в соответствии с ISO 639 (ISO 639-1).
[имя объекта]
Строковое значение идентификатора.
Идентификатор не должен начинаться с цифры, а также содержать пробелы и некоторые символы: . , : ; $ =
Кроме этого существуют зарезервированные слова, запрещенные к использованию в качестве идентификатора: this, global, color, loginInfo.
В любом случае интерпретатор будет контролировать правильность идентификатора и в случае проблем выдаст сообщение.
Рекомендуемые варианты написания идентификаторов:
[обычное целое числовое значение]
Абсолютное (положительное или отрицательное) целое числовое значение.
[целое числовое значение c расширенными возможностями]
Абсолютное или относительное целое числовое значение.
Для указания относительного значения поддерживаются знаки математических действий: + - / *
Примеры:
// абсолютная позиция, например, окна <window id="mainWindow" x="100" y="150" /> // изменение позиции окна относительно текущей <fn id="moveWindow"> mainWindow.set("x=+50 y=-10"); // сдвинуть вправо на 50 пикселей и вверх на 10 пикселей </fn>
[строковое значение]
Строковое значение. Допускаются любые символы.
[логическое значение]
Допустимые значения: «true», «false»
Примеры:
visible="true" enable="false"
[путь к объекту]
Абсолютный или относительный путь к объекту, находящемуся на диске.
Для объекта, находящего внутри zip-архива указывается префикс «zip:«, путь к архиву и путь внутри архива. В качестве архива можно использовать также jar-файлы.
Примеры:
icon="./img/world.png" // пиктограмма world.png находится в подкаталоге img текущего каталога icon="zip:./skins/vista.zip/main/world.png /* пиктограмма world.png находится в архиве vista.zip в заархивированном каталоге main, архив находится в подкаталоге skins текущего каталога. */ icon="zip:./skins/vista.skin/main/world.png /* пиктограмма world.png находится в архиве vista.skin в заархивированном каталоге main, архив находится в подкаталоге skins текущего каталога. */
[программный код]
Программный код, записываемый или в атрибуте или во вложенном тэге с таким же именем. Программный код пишется на языке AppScript.
Подробнее об использовании AppScript и Java в AppXML-приложениях написано в соответствующем разделе документации.
Примеры:
// Вариант 1 onCreated="msg('Hello, World!')" // Вариант 2 <onCreated> // Поскольку код великоват для записи в атрибуте, пишем его в отдельном тэге с именем атрибута // объявляем переменные var a="Hello, World!", max=3; // выводим сообщение max раз for(i=0; i<max; i++) msg(a + " (" + i + ")"); </onCreated>
[местоположение объекта]
Допустимые значения: top-left, top-right, center, bottom-left, bottom-right
Примеры:
location="center"
[либо тэг, либо атрибут. Здесь описывается не только тип значения элемента, но и использование самого элемента]
Название элемента может использоваться либо как имя атрибут, либо как имя тэга.
Если оно используется как имя атрибута, то его значение интерпретируется как ссылка на id объекта, который описан в тэге <common>.
Пример c описанием меню окна:
// Вариант1: описание меню окна во вложенном тэге(!) с именем menu <main> <window id="mainWindow"> <menu id="mainMenu"> <menuitem text="File"> <menuitem text="Open" onAction="msg(this.text + ' item clicked')"/> <menuitem/> <menuitem text="Exit" onAction="mainWindow.close='true'" /> </menuitem </menu> <menuitem text="Help"> <menuitem text="User's Guide" onAction="msg(this.text + ' item clicked')"/> <menuitem/> <menuitem text="About" onAction="msg(this.text + ' item clicked')"/> </menu> <window id="mainWindow" /> </main> // Вариант2: ссылка, указываемая в атрибуте(!) с именем menu, на внешнее описание меню окна <main> <window id="mainWindow" menu="mainMenu" /> </main> <common> <menu id="mainMenu"> <menuitem text="File"> <menuitem text="Open" onAction="msg(this.text + ' item clicked')"/> <menuitem/> <menuitem text="Exit" onAction="mainWindow.close='true'" /> </menuitem </menu> <menuitem text="Help"> <menuitem text="User's Guide" onAction="msg(this.text + ' item clicked')"/> <menuitem/> <menuitem text="About" onAction="msg(this.text + ' item clicked')"/> </menu> </common>
[имя события]
Совпадает именем событийного атрибута. Например, «onCreated», «onAction», «onChanged»
[цвет]
Цвет задается следующими способами:
А также поддерживается «прозрачный» цвет фона - transparent
Примеры:
color="123645789" color="#996699" color="25, 126, 209" color="SystemColor.textHighlight" background-color="transparent"
{перечень визуальных атрибутов]
Использование атрибутов зависит от контекста и иногда может быть бессмысленным. Например, при использовании атрибута x в семействе атрибутов field-* координата X элемента поля ввода изменяться не будет, т.к. элемент поля ввода является неотъемлимой частью всего поля ввода и атрибут x имеет смысл использовать только для всего поля ввода. Например, для string: (<string x=«50» id=«name» text=«User name»>)
Атрибут | Описание |
---|---|
x | Координата объекта по оси X. Если объектом является панель, то атрибут работает только если панель размещается в контейнере с layout=null. Для прочих layout атрибут не поддерживается |
y | Координата объекта по оси Y. Если объектом является панель, то атрибут работает только если панель размещается в контейнере с layout=null. Для прочих layout атрибут не поддерживается |
height | Высота объекта |
width | Ширина объекта |
visible | Видимость объекта |
hint | Всплывающая подсказка |
enable | Разрешение/запрещение возможности для пользователя взаимодействовать с объектом |
color | Цвет переднего плана объекта. Обычно имеется ввиду цвет текста. Т.е., например, для панели атрибут color не имеет смысла |
background-color | Цвет фона объекта |
border | border=«compound | lowered | raised | outer | windows | title:title_string | empty | null | line:color | {color} » - тип визуальной границы объекта. Синонимы: raised и outer . line подразумевает тонкую линию цвета color вокруг объекта. Кроме этого поддерживаются line-top, line-bottom, line-left, line-right, line-h (горизонтальные полосы сверху и снизу), line-v (верикальные полосы слева и справа) |
layout | layout=«border | flow | null | row:n | col:n» - тип менеджера компоновки (в терминах Java). border расставляет поступающие объекты по местам top, left, right, bottom, center . Координаты (x, y) игнорируются. flow расставляет объекта в порядке их поступления (добавления) друг за другом. Координаты (x, y) игнорируются. null расставляет объекты в соответствии с их координатами (x, y) . row создает строку из n ячеек и располагает объекты друг за другом слева направо в порядке их поступления (добавления). col создает колонку из n ячеек и располагает объекты друг за другом сверху вниз в порядке их поступления (добавления) |
font-name | Имя шрифта. Поддерживается, вне зависимости от ОС, «Serif», «SansSerif», «Monospaced», «Dialog» и «DialogInput» . Остальные - зависят от наличия в ОС |
font-style | Стиль начертания шрифта. Поддерживаются значения «plain», «bold», «italic», «bold+italic» . Пустое значение эквивалентно значению «plain» |
font-size | Размер шрифта (кегль) |
align | align=«left | center | right» - выравнивание текста по горизонтали |
valign | valign=«top | middle | bottom» - выравнивание текста по вертикали |
cursor | cursor=»[default | hand | wait]» - внешний вид курсора в пределах визуального объекта. Пустое значение эквивалентно значению «default» |
[положение объекта относительно другого объекта]
Допустимые значения: «top», «left», «bottom», «right», «center»
Использование значений зависит от контекста ситуации и иногда это может быть бессмысленным. Например, значение «center» для поля ввода, атрибут text-position.
Примеры:
<string text="User name" text-position="top" /> <panel position="center" />
[выравнивание объекта по горизонтали]
Допустимые значения: «left», «right», «center»
[выравнивание объекта по вертикали]
Допустимые значения: «top», «bottom», «center»