Файл хранится в кодировке UTF-8. Корневой элемент файла имеет тег gui
с атрибутами version
и orientation
. Необязательный атрибут orientation
задаёт ориентацию экрана, в которой может работать скин. Возможные значения: land, port, hor, vert
.
Дочерние элементы описывают окна интерфейса.
Особую роль играет раздел declaration
: описанные здесь элементы не приводят к созданию объектов, а лишь задают атрибуты «по умолчанию». Элементы этого раздела могут быть двух видов: без атрибута id
и с атрибутом id
(«шаблоны»). В первом случае атрибуты элемента распространяются на все объекты данного типа, а во втором – на те объекты, у которых значение атрибута sourceId
такое же, как значение id
у данного элемента. Например:
<button bgColor=”red”/> <button id=”TextButton” fontColor=”white”/> <button id=”OKButton” sourceId=”TextButton”/>
В примере объект TextButton
наследует атрибут bgColor=”red”
, а объект OKButton
наследует атрибуты bgColor=”red”
и fontColor=”white”
.
Если с помощью sourceId
наследуется контейнер, содержащий несколько элементов внутри, эти внутренние элементы можно изменить, указав их идентификаторы. Например:
<group id="Group1"> <button id="Button1" text="Старый текст"/> </group> ... <group sourceId="Group1"> <button id="Button1" text="Новый текст"/> </group>
Специальный тег template
описывает шаблон, не относящийся к какому-либо типу объектов. Его можно использовать не только в разделе declaration
, но и внутри форм, диалогов и списков.
В разделе declaration
может присутствовать один или несколько разделов const
с произвольным количеством атрибутов, которые задают значение констант. Константы можно указывать в качестве значений атрибутов, а также в тегах bbCode, color
и size
.
Помимо обычных тегов, есть метатеги include
, if
, ifnot
.