# Шкурки. Справочник - Справка Light Alloy

Вся информация по шкуркам в виде справочника.

Структура шкурки
Структура файла SkinInfo.txt
Структура файла Interface.xml
Перечень тегов Interface.xml
Перечень атрибутов тегов Interface.xml
Типы элементов шкурки
Перечень всех элементов шкурки

## Структура шкурки

Файл | Функция | Требования
--- | --- | ---
Шкурка.las | Объединяет все файлы шкурки в один непонятный файл, который неподготовленный пользователь не станет распаковывать |

1. Имя файла: любое.las (в личных целях можно использовать zip или вообще неупакованную шкурку);
2. архив в формате ZIP;
3. алгоритм сжатия DEFLATE (используется архиваторами по умолчанию);
4. метод сжатия (скоростной/нормальный/максимальный и т.п.) - любой, но рекомендуется максимальный.

SkinInfo.txt | Информация о шкурке в окне настроек |

1. Имя файла: "SkinInfo.txt";
2. Кодировка: UTF-8 with signature (она же - UTF-8 BOM).

Preview.png | Предпросмотр шкурки в окне настроек |

1. Имя файла: "Preview.png";
2. Параметры сохранения в PNG: любые;
3. Размеры изображения: 200х150.

Interface.xml | Описывает, что, где и как будет расположено |

1. Имя файла: "Interface.xml";
2. Кодировка: UTF-8 with signature (она же - UTF-8 BOM).

Skin.png (.png) | Источник всей графики шкурки | Изображения:

1. необходимо избегать оставлять много свободного места (но не в ущерб удобству);
2. необходимо разделять все изображения в файле отступами в 1 пиксель (в том числе состояния кнопки между собой) для удобства восприятия и последующей разметки.

PNG:

1. имя файла: любое на латинице;
2. цветовое пространство: любое (24 бит/256/2 цветов);
3. прозрачность не поддерживается;
4. если изначально PNG-файл был создан в Photoshop, рекомендуется пересохранение с помощью FastStone Image Viewer (бесплатен для домашнего пользования), - это может в 2-4 раза уменьшить размер файла.

BMP:

1. имя файла: любое на латинице;
2. цветовое пространство: любое (24 бит/256/16/2 цветов);
3. сжатие в RLE не рекомендуется, т.к. это ослабит сжатие всей шкурки, и она будет больше.

## Структура файла SkinInfo.txt

Параметры:

- имя файла: "skinInfo.txt" (менять нельзя);
- кодировка: UTF-8 with signature (она же - UTF-8 BOM);
- язык заполнения: английский (по крайней мере буквы английские).

Файл SkinInfo.txt состоит из 6-и строк. Ограничение каждой строки - не более 45 символов. Переносы не допускаются.

Строка | Значение
--- | ---
SkinTitle | Название шкурки
SkinAuthor | Автор шкурки (имя или псевдоним)
SkinVer | версия шкурки
SkinWWW | вебсайт шкурки; рекомендуется таковым именовать тему на официальном форуме, но не обязательно.
SkinCmt | Комментарий к шкурке любого содержания
SkinAudio | Если "0", то шкурка будет доступна только в обычном режиме; если "1", то шкурка будет доступна только в аудиорежиме.

Пример:

SkinTitle=Dub Audio SkinAuthor=Gilorn, Dvigok SkinVer=4.7.5.2 SkinWWW=http://www.light-alloy.ru/forum/ru_skins/dub_audio/ SkinCmt=Dub skin for audio SkinAudio=1

## Структура файла Interface.xml

<SKIN minsize="," type="standart">

Определение графических констант (подблоки можно располагать в произвольном порядке)

<IMAGE id="Logo" file="logo.png"> константа логотипа

<IMAGE id="HD" file="Header.png"> константы верхней панели (заголовка)

<IMAGE id="FT" file="Footer.png"> константы нижней панели (панели управления)

<IMAGE id="PL" file="Playlist.png"> константы панели списка

<IMAGE id="Menu" file="Menu.png"> константы контекстного меню

<IMAGE id="Hint" file="Hint.png"> константы хинтов

<IMAGE id="Color" file="Color.png"> константы наборов цветов

Каждый "IMAGE" состоит из отдельных элементов - AREA.

блок распознавания графических шрифтов <FONT id="Digits" img="FT.Digits" chars=" 0123456789:"/>

Применение контролов (подблоки можно располагать в произвольном порядке)

<CTLDEF id="WndBorder" type="Panel" bg="HD.brd" size="29,52" bgsplit="14,24"/> рамка

<CTLDEF id="Caption" type="Panel" bg="HD.bg" size="400,21" bgsplit="14,10"> верхняя панель (заголовок)

<CTLDEF id="CtlPanel" type="Panel" bg="FT.bg" size="400,84" bgsplit="10,10"> нижняя панель (панель управления)

<CTLDEF id="PListPanel" type="Panel" bg="PL.bg" size="29,46" bgsplit="7,23"> панель списка

Каждый "CTLDEF" (кроме CTLDEF id="WndBorder") состоит из отдельных элементов - CONTROL.

Параметр "id" менять в большинстве случаев нельзя (исключения: IMAGE id="HD", IMAGE id="FT", IMAGE id="PL", но для удобства восприятия даже их не рекомендуется менять).

## Перечень тегов Interface.xml

Тег | Назначение | Доступные атрибуты
--- | --- | ---
SKIN | Контейнер для всех остальных тегов | minsize, type
IMAGE | Именной блок констант со ссылкой на файл-источник | id, file
AREA | Создаёт графическую константу | id, pos, size
FONT | Создаёт графический шрифт на основе константы | id, img, chars
CTLDEF | Именной блок контролов. Представляет одну из жёстко заданных панелей | id, type, bg, size, bgsplit, bgsplit_lt, bgsplit_rb
CONTROL | Создаёт контрол. Контрол типа "панель" может содержать другие контролы | type, align, pos, size, bgsplit, img, link, font, fontsz, top_delta, bold, bg, bgsplit, variable, text, bgfill, chapter, chapter_pos, digits_ypos, thumb, ticks_ypos, lotick, hitick, OpeningPos, OpeningHeight

## Перечень атрибутов тегов Interface.xml

Атрибут | Функция | Синтаксис | Доступен для тегов
--- | --- | --- | ---
alignопциональный | Располагает контрол горизонтально по центру. При этом игнорируется значение позиции по горизонтали. Рекомендуется для размещения по центру панелей, в которых будут расположены другие контролы. | align="center" только так и никак иначе | CONTROL type = Panel | GfxBtn
bg | Определяет изображение фона контролов и группы контролов (кроме кнопок) | bg="(IMAGE id).(AREA id)" Например, bg="HD.bg" | CTLDEF, CONTROL (кроме кнопок)
bgfill | Определяет изображение фона пройденного участка контролов "громкость" и "шкала времени" | bgfill="(IMAGE id).(AREA id)" Например, bgfill="FT.VolBGF" | CONTROL type = slider | seeker
bgsplit | Определяет пиксель по которому произойдёт растягивание контрола (кроме кнопок). | bgsplit="x,y" x,y - целые, больше нуля Например: bgsplit="5,19" | CTLDEF, CONTROL (кроме кнопок)
bgsplit_lt, bgsplit_rb | Определяет левый верхний (bgsplit_lt) и правый нижний (bgsplit_rb) пиксели, определяющие прямоугольник, по которому произойдёт растягивание бордюра. | bgsplit_lt="x,y" bgsplit_rb="x,y" x,y - целые, больше нуля Например: bgsplit_lt="6,26" bgsplit_rb="6,6" | CTLDEF id="WndBorder"
bold | Определяет жирность текстовой строки, если она задаётся обычным шрифтом | bold="x" где x= 0 или 1. Если 1, то жирный, если 0, то нет. Например, bold="0" | CONTROL type = text
border_sizeопциональный | Параметр, определяющий толщину рамки окна. Рамка есть всегда, даже когда её толщина составляет 0 пикселей. | border_size="x1,y1,x2,y2" где x1,y1,x2,y2 - это четыре целых числа в порядке "слева,сверху,справа,снизу". По умолчанию "4,3,4,5" Например, border_size="3,2,3,4" | CTLDEF id="WndBorder"
chapter | определяет изображение маркера закладки на шкале времени | chapter="(IMAGE id).(AREA id)" Например, chapter="Ft.SeekChapter" | CONTROL type=Seeker
chapter_pos | определяет позицию изображения маркера закладки на шкале времени. | chapter_pos="x,y" где x - целое неположительное число (0 - левый пиксель маркера указывает на нужную позицию), y - целое неотрицательное число (0 - касается верхней границы шкалы времени) Например, chapter_pos="-1,12" | CONTROL type=Seeker
chars | задаёт последовательность, в соответствии с которой будет распознаваться графический шрифт | chars="abcd" где abcd должен содержать " 0123456789:" для Часов и Длительности и дополнительно "<" для Позиции. Порядок символов любой. Возможно наличие любых дополнительных символов. | FONT
digits_ypos | определяет вертикальное смещение цифр на шкале времени. | digits_ypos="y" где y - целое неотрицательное число (0 - касается верхней границы шкалы времени) Например, digits_ypos="4" | CONTROL type=Seeker
file | определяет файл изображения, на основе которого будут создаваться вложенные графические константы. | file="filename.ext" где filename.ext - имя файла, включая расширение. Напимер: file="main.png" | IMAGE
font | определяет шрифт (системный или графический) для текстового контрола | font="anyfont" где anyfont - название шрифта Например font="Verdana", font="Digits" | CONTROL type=Text
fontsz | определяет размер системного шрифта | fontsz="x" где x - целое число больше нуля. Например fontsz="10" | CONTROL type=Text
hitick | определяет основную (высокую) насечку на шкале времени | hitick="(IMAGE id).(AREA id)" Например hitick="FT.SeekHiTick" | CONTROL type=Seeker
id | Имя собственное элемента, используемое в дальнейшем для обращения к нему | id="TypName" где TypName - уникальное имя (см. справочник дальше) Например id="btSubs" | IMAGE, AREA, FONT, CTLDEF
img | определяет графическую константу для формирования кнопки | img="(IMAGE id).(AREA id)" Например img="FT.btPlay" | CONTROL type=GfxBtn
link | определяет функцию кнопки или текстовой строки | link="fx" где fx - это одна из предопределённых функций Например link="App.SuperPlay" | CONTROL type=GfxBtn | Text
lotick | определяет дополнительную (низкую) насечку на шкале времени | lotick="(IMAGE id).(AREA id)" Например lotick="FT.SeekLoTick" | CONTROL type=Seeker
minsize | Определяет минимальный размер окна проигрывателя, если используется эта шкурка. Используется, чтобы кнопки не наезжали одна на другую. | minsize="x,y" где x,y - ширина и высота соответственно Например minsize="500,250" | SKIN
openingHeight | определяет высоту полосы автопромотки на шкале времени | openingHeight="x" где x - целое положительное число Например openingHeight="6" | CONTROL type=Seeker
openingPos | определяет отступ от верхнего края шкалы времени для полосы автопромотки | openingPos="y" где y - расстояние от верха шкалы времени до верха автопромотки Например openingPos="14" | CONTROL type=Seeker
pos | определяет позицию графической константы на рисунке или контрола на панели | pos="x,y" где x,y - расстояние от левого и верхнего краёв соответственно. У контролов значения могут быть отрицательными. Отрицательность говорит о том, что отсчёт будет происходить не от левого или верхнего краёв, а от правого или нижнего Например pos="50,67" | AREA, CONTROL
size | определяет размер графической константы или контрола | size="x,y" где x,y - расстояние от левого и верхнего краёв описываемого элемента соответственно. У контролов значения могут быть отрицательными. Отрицательность говорит о том, что отсчёт будет происходить не от левого или верхнего краёв элемента, а от правого или нижнего краёв панели
Например size="24,28"
AREA, CONTROL
text | определяет текстовое содержимое контрола соответствующего типа | text="any" где any - это произвольный текст. Помимо всего прочего, можно вставить переменные {TITLE},{POS},{DUR},{TIME}, обозначающие Заголовок, Позицию, Длительность и Время соответственно Например text="{TIME}" | CONTROL type=Text
thumb | определяет изображение бегунка в громкости и шкале времени | thumb="(IMAGE id).(AREA id)" Например thumb="FT.VolThumb" | CONTROL type = slider | seeker
ticks_ypos | определяет вертикальное смещение насечек на шкале времени. | ticks_ypos="y" где y - целое неотрицательное число (0 - касается верхней границы шкалы времени) Например, ticks_ypos="0" | CONTROL type=Seeker
top_delta | определяет сдвиг текста в неграфической текстовой строке по вертикали; фон остаётся неподвижным | top_delta="y" где y - это величина сдвига текста по вертикали. Плюс - вниз, минус - вверх Например top_delta="-2" | CONTROL type=Text
type | определяет тип контрола. От этого зависят все остальные параметры. | type="t" где t - это Panel (панель), GfxBtn (кнопка), Text (текст), Seeker (шкала времени), Slider (громкость) Например type="Text" | CTLDEF, CONTROL
| type (внутри SKIN) | Определяет тип шкурки: обычная, полноэкранная или аудио. | type="t" где t - это standart (по умолчанию), audio (аудиорежим), fullscreen (пока не используется) Например type="audio" | SKIN
variableопциональный | объявляет, что содержимое текстовой строки произвольное (иначе строка всегда выводит {title}) | variable="x" где x = 0 или 1. По умолчанию "0". Если 1, то будет выведено любое содержимое, если 0, выводится {title}. Рекомендуется всегда использовать variable="1" Например variable="1" | CONTROL type=Text

## Типы элементов шкурки

Тип | Элементы | Характеристика
--- | --- | ---
Контур | Контур окна | Рамка вокруг окна проигрывателя. Особенность: не разрезается по точке, а растягивается по прямоугольнику.
Панель | Верхняя панель (заголовок) Нижняя панель (панель управления) Панель списка Плавающие панели | Панель располагает в себе все контролы. По сути это - контейнер. Положение трёх предопределённых панелей (верхней, нижней, панели списка) определено жёстко. В шкурке можно менять только их высоту. Плавающие панели могут располагаться где угодно внутри предопределённых панелей.
Тем не менее ширина важна даже для предопределённых панелей. Она должна быть больше, чем ширина с учётом каждого отдельно взятого контрола (с учётом его позиции и размера), иначе шкурка не будет корректно отображаться до перезагрузки проигрывателя.
Кнопка | Открыть файл Воспроизведение / Пауза с фиксацией и пр. Полный перечень ниже. | Кнопка - это основной контрол шкурки. Задача кнопки - выполнить функцию при нажатии на неё. Кнопки имеют три состояния:

- обычная
- под курсором
- нажимаемая

Некоторые кнопки имеют фиксацию: после нажатия они переходят не в обычное состояние, а в дополнительное обычное состояние. Соответственно, такие кнопки имеют уже шесть состояний. Для кнопок с фиксацией необходимо использовать анимацию по принципу "срабатывает при отпускании кнопки".
Текстовая строка | Текст заголовка Позиция Длительность Время Любой текст | Текстовая строка предназначена для отображения информации. Информации в заголовке файла. В текстовой строке можно написать любой текст, но есть всего 4 вида интерактивной информации:

1. {TITLE} - информация заголовка
2. {POS} - позиция воспроизводимого файла
3. {DUR} - длительность воспроизводимого файла
4. {TIME} - системное время

Можно комбинировать простой текст и интерактивный.
Выравнивание текста в текстовой строке выполняется по центру.
Так же как и кнопка, текстовая строка способна выполнять функцию (без анимации)
Графическая текстовая строка | Позиция Длительность Время | Отличие от предыдущего типа состоит в том, что используемый шрифт нарисован. А это многое упрощает: нет нужды выставлять гарнитуру и размер шрифта, его жирность, если всё это является рисунком. Графические шрифты используются для интерактивной информации с ограниченным набором символов - для позиции, длительности и времени.
Выравнивание текста в графической текстовой строке выполняется по левому краю.
Так же как и кнопка, графическая текстовая строка способна выполнять функцию (без анимации)
Слайдер | Громкость | Единственным представителем слайдера является громкость. Слайдер использует не одну а сразу три графические константы:

- фон
- фон заполненный (слева от бегунка)
- бегунок

Бегунок громкости поддерживает битовую прозрачность. Прозрачность должна быть выражена зелёным цветом: #00ff00 или RGB{0,255,0}.
Шкала времени | Шкала времени | Как и громкость, шкала времени является единственным представителем своего типа. Но шкала времени сложнее. Помимо того, что есть в громкости, шкала времени также имеет два вида насечек (основные и промежуточные), маркер закладок и шрифт для обозначения позиции.
Ползунок шкалы времени, насечки и маркер поддерживает битовую прозрачность. Прозрачность должна быть выражена зелёным цветом: #00ff00 или RGB{0,255,0}.
Важный нюанс: шкала начинается раньше нуля и заканчивается после окончания.
Декоративные изображения | Логотип Иконки контекстного меню Галка контекстного меню Закладка в списке Мышка в хинтах | Декоративные изображения не имеют функций. Они просто есть. Их задача - только украшать окно Light Alloy. Одна из особенностей декоративных изображений - место их применения заложено в программу, поэтому они только объявляются. Иконки контекстного меню, Галка контекстного меню и Закладка в списке поддерживают битовую прозрачность. Прозрачность должна быть выражена зелёным цветом (#00ff00 или RGB{0,255,0})
Набор цветов | Цвета текста в заголовке окна Цвета OSD и видеообласти Цвета списка Цвета автопромотки Цвета хинтов
Цвета контекстного меню
Цвета полноэкранной загрузки файлов и субтитров (два одинаковых блока).
Наборы цветов представляют собой блоки изображений шириной в 1 пиксель и высотой в соответствии с количеством цветов. Цвета соответствующих пикселей используются для заливки фонов и текстовых строк.
Наборы цветов только объявляются. Их применение определяется программой.

## Перечень всех элементов шкурки

Все элементы, из которых строится шкурка, делятся на необходимые и опциональные. Без первых шкурка попросту невозможна. К тому же они жёстко привязаны к своим местам. Наличие или отсутствие вторых является определяется только автором шкурки.

### Необходимые элементы шкурки

Id в части применения менять нельзя. Если части применения нет, то нельзя менять все Id в части объявления.

Название | Тип | Объявление | Применение | Описание
--- | --- | --- | --- | ---
Логотип | Декоративное изображение | <IMAGE id="Logo" file="logo.png"> <AREA id="Splash" pos="0,0" size="262,230"/> </IMAGE> | - | Отображается в видеообласти при отсутствии видео
Контур окна | Контур | <IMAGE id="HD" file="Header.png"> <AREA id="brd" pos="0,0" size="210,128"/> </IMAGE> | <CTLDEF id="WndBorder" type="Panel" bg="HD.brd" size="29,127" border_size="3,2,3,4" bgsplit_lt="6,26" bgsplit_rb="6,6" | Рамка вокруг окна проигрывателя
Верхняя панель | Панель | <IMAGE id="HD" file="header.png"> <AREA id="bg" pos="10,4" size="10,21"/> </IMAGE> | <CTLDEF id="Caption" type="Panel" bg="HD.bg" size="400,21" bgsplit="14,10"> </CTLDEF> | Панель вверху окна
Нижняя панель | Панель | <IMAGE id="FT" file="footer.png"> <AREA id="bg" pos="0,0" size="224,104"/> </IMAGE> | <CTLDEF id="CtlPanel" type="Panel" bg="FT.bg" size="400,104" bgsplit="110,103"> </CTLDEF> | Панель внизу окна
Панель списка | Панель | <IMAGE id="PL" file="playlist.png"> <AREA id="bg" pos="0,0" size="14,34"/> </IMAGE> | <CTLDEF id="PListPanel" type="Panel" bg="PL.bg" size="300,34" bgsplit="7,23"> </CTLDEF> | Панель внизу области списка
Контекстное меню | Декоративное изображение | <IMAGE id="Menu" file="Rclick.png"> <AREA id="bg" pos="0,0" size="20,23"/> <AREA id="pics" pos="0,24" size="33,84"/> <AREA id="Checked" pos="0,109" size="16,16"/> <AREA id="Bookmark" pos="22,0" size="11,11"/> </IMAGE> | - | Значки в контекстном меню, маркер контекстного меню, закладка списка
Значки мышки в хинтах | Декоративное изображение | <IMAGE id="Hint" file="main.png"> <AREA id="Lclick" pos="0,235" size="22,22"/> <AREA id="Rclick" pos="23,235" size="22,22"/> </IMAGE> | - | Изображения мышек в хинтах
Наборы цветов | Наборы цветов | <IMAGE id="Color" file="Color.png"> <AREA id="LACaption" pos="1,1" size="1,2"/> <AREA id="OSD" pos="141,18" size="1,5"/> <AREA id="Timeline" pos="71,83" size="1,2"/> <AREA id="Hint" pos="71,119" size="1,3"/> <AREA id="PL" pos="1,18" size="1,12"/> <AREA id="Menu" pos="71,18" size="1,7"/> <AREA id="FOD_TV" pos="1,83" size="1,18"/> <AREA id="SOD_TV" pos="1,83" size="1,18"/> </IMAGE> | - | Все цвета по цвету на пиксель (сверху вниз): Цвета текста в заголовке окна

1. Текст, когда окно Light Alloy активно
2. Текст, когда окно Light Alloy неактивно

Цвета OSD и видеообласти

1. текст OSD
2. фон OSD
3. тень текста OSD
4. контур текста OSD
5. фон видеообласти

Цвета списка

1. фон
2. текст видеоэлемента (видео и IPTV)
3. проигрываемый сейчас файл
4. курсор
5. повторяемый файл
6. удалённый/недоступный файл
7. прошлый проигрываемый файл при запуске проигрывателя
8. закладки
9. закладки проигрываемого сейчас файла
10. разделитель списка и видеообласти
11. текст крупных цифр на шкале времени
12. текст аудиоэлемента (музыка и радио)

Цвета автопромотки

1. автопромотка, сделанная ранее
2. автопромотка во время отмечания её мышью

Цвета хинтов

1. фон
2. контур и разделитель
3. текст

Цвета контекстного меню

1. фон
2. обычный пункт меню
3. недоступный пункт меню
4. рамка курсора
5. текст под курсором
6. фон курсора
7. горизонтальный разделитель

Цвета полноэкранной загрузки файлов

1. текст под курсором
2. текст папок
3. текст файлов
4. курсор активный
5. курсор неактивный
6. фон активной панели файлов
7. фон активной панели дисков
8. фон неактивной панели файлов
9. фон неактивной панели дисков
10. общий фон
11. фон кнопок
12. тект кнопок
13. фон кнопок при наведении
14. фон заголовка
15. текст заголовка
16. текст жёстких дисков
17. текст сменных дисков (флешек)
18. текст оптических дисков

Цвета полноэкранной загрузки субтитров
набор цветов полностью аналогичен предыдущему блоку

### Опциональные элементы шкурки

Все опциональные элементы шкурки условно можно разделить на кнопки и остальные элементы (не кнопки). Все кнопки строятся по единому принципу, по сути отличаются только функцией и собственным именем. Не кнопки характеризуются уникальными правилами для каждого отдельно взятого элемента.

#### Кнопки

Кнопки характеризуются единым подходом к синтаксису, анимацией, постоянным содержанием и одинаковой реакцией по всей площади. Синтаксис кнопок таков:

<IMAGE ...> <AREA id="btPlay" pos="10,10" size="20,60"/> </IMAGE> <CTLDEF ...> <CONTROL type="GfxBtn" pos="30,30" size="20,20" img="FT.btPlay" link="App.SuperPlay"/> </CTLDEF>

Здесь надо помнить три вещи:

1. AREA id может быть любая, но есть разработанный удобочитаемый набор имён. Рекомендуется пользоваться в первую очередь им для дальнейшей удобочитаемости шкурки как автором, так и любыми заинтересованными людьми. В случае самостоятельного создания id необходимо использовать латиницу и избегать точек.
2. CONTROL img составной. Он состоит из "IMAGE id" и "AREA id", написанных через точку.
3. CONTROL link обозначает функцию кнопки (а также графической и обычной тестовой строки). Если указанная функция не существует, проигрыватель просто проигнорирует нажатие кнопки. Существует лишь ограниченное число функций. Попытка назначить функцию не из нижеприведенного перечня методом аналогии не сработает.

Название | Тип | Рекомендуемый AREA id | CONTROL link
--- | --- | --- | ---
Файл
Открыть файл | Обычная кнопка | btOpen | PlayList.OpenFiles
Информация о файле | Обычная кнопка | btInfo | Window.FileInfo
Воспроизвести DVD-диск | Обычная кнопка | btDVD | File.PlayDVD
Открыть папку с DVD | Обычная кнопка | btFolderDVD | File.OpenDVD
Информация о файле в OSD | Обычная кнопка | btOSDInfo | File.OSDInfo
Полноэкранное меню открытия файлов | Обычная кнопка | btOpenFS | File.OpenFile_Fullscr
Радио
Каталог интернет радиостанций | Обычная кнопка | btOpenIRE | File.OpenIRE
Радио: начать/остановить запись | Кнопка с фиксацией | btRec | Player.RadioRecord
Воспроизведение
Воспроизведение / Пауза | Кнопка с фиксацией | btPlay | App.SuperPlay
Стоп (выгрузка файла) | Обычная кнопка | btStop | Playback.RealStop
Кадр вперёд | Обычная кнопка | btFStep | Player.FrameStep
Сделать закладку на шкале времени | Обычная кнопка | btBookmark | Seek.SetBookmark
Изменение скорости | Кнопка с фиксацией | btFF | Player.SpeedPlay
Увеличить скорость воспроизведения | Обычная кнопка | btSpdUp | Playback.SpeedUp
Уменьшить скорость воспроизведения | Обычная кнопка | btSpdDown | Playback.SpeedDown
Прямой/обратный отсчёт времени воспроизведения | Кнопка с фиксацией | btSwitchPos | Position.Switch
Окно
Поверх всех окон | Кнопка с фиксацией | btTop | App.StayOnTop
Окно/Весь экран | Кнопка с фиксацией | btFullScr | Window.FullScreen
Первоначальный размер | Обычная кнопка | btOrigSize | Window.Original
Максимизировать (развернуть) | Кнопка с фиксацией | btMax | App.Maximize
Минимизировать (свернуть) | Обычная кнопка | btMin | App.Minimize
Список
Менеджер списков | Обычная кнопка | btPlManager | PList.Manager
Предыдущий по списку | Обычная кнопка | btPlPrev | PlayList.Prev
Список | Кнопка с фиксацией | btPlist | Window.PlayList
Следующий по списку | Обычная кнопка | btPlNext | PlayList.Next
Проиграть выбранный | Обычная кнопка | btPlay | PList.Play
Добавить файл(ы) в список | Обычная кнопка | btAdd | PList.AddFiles
Добавить папку в список | Обычная кнопка | btAddDir | PList.AddDir
Удалить из списка | Обычная кнопка | btRem | PList.Remove
Очистить список | Обычная кнопка | btClear | PList.Clear
Переместить выше | Обычная кнопка | btUp | PList.MoveUp
Переместить ниже | Обычная кнопка | btDown | PList.MoveDown
Случайный порядок воспроизведения | Кнопка с фиксацией | btShuffle | PList.Shuffle
Закладки в списке | Кнопка с фиксацией | btMarks | PList.ShowMarks
Повтор списка | Кнопка с фиксацией | btRepeat | PList.Repeat
Таблица по списку | Обычная кнопка | btReport | PList.Report
Сохранить список | Обычная кнопка | btSave | PList.Save
Перейти к файлу (поиск в списке) | Обычная кнопка | btJump | PList.Jump
Отсортировать список | Обычная кнопка | btSort | PList.Sort
Перемешать список | Обычная кнопка | btVisShuffle | PList.VisShuffle
Показать файл в проводнике | Обычная кнопка | btShow | PList.Search
Звук
Отключить звук | Кнопка с фиксацией | btMute | Audio.Mute
Переключить аудио-дорожку | Обычная кнопка | btASwitch | Sound.Switch
Опции звука | Обычная кнопка | btAProps | Window.AudioProps
Субтитры
Показать/скрыть субтитры | Кнопка с фиксацией | btSubs | Subtitles.Show
Переключить субтитры | Обычная кнопка | btSSwitch | Subtitles.Switch
Переключить субтитры №2 | Обычная кнопка | btSSwitch2 | Subtitles.Switch2
Увеличить размер субтитров | Обычная кнопка | btSSizeUp | Subtitles.SizeUp
Уменьшить размер субтитров | Обычная кнопка | btSSizeDown | Subtitles.SizeDown
Опции субтитров | Обычная кнопка | btSProps | Window.SubProps
Полноэкранное меню загрузки субтитров | Обычная кнопка | btSAddFS | Subtitles.Open_Fullscr
Видео
Переключить пропорции | Обычная кнопка | btVRatio | Video.RatioSwitch
Опции видео | Обычная кнопка | btVProps | Window.VideoProps
Сохранить кадр | Обычная кнопка | btSShot | Player.ScreenShot
Сохранить кадр в буфер обмена | Обычная кнопка | btSShotCB | Video.ScreenshotCB
Сохранить миниатюры | Обычная кнопка | btSaveThumbs | Video.SaveThumbs
Сохранить пакет полноразмерных скриншотов | Обычная кнопка | btSaveScreensPack | Video.SaveScreensPack
Открыть папку со снимками с экрана | Обычная кнопка | btOpenScrFolder | Application.OpenScrFolder
Программа
Настройки | Обычная кнопка | btPrefs | App.Prefs
Планировщик | Кнопка с фиксацией | btSheduler | Application.Scheduler
Дерево фильтров | Обычная кнопка | btFlt | Window.Filters
О программе | Обычная кнопка | btAbout | App.About
Выход | Обычная кнопка | btExit | App.Exit
Система
Выключить монитор | Обычная кнопка | btMonitorOff | Application.MonitorOff
Вызов диалога выключения компьютера | Обычная кнопка | btPowerOff | Application.PowerOff
Перевести компьютер в спящий режим | Обычная кнопка | btHibernate | Application.Hibernate

#### Не кнопки

Название | Тип | Объявление | Применение | Описание
--- | --- | --- | --- | ---
Шкала времени | Шкала времени | <AREA id="SeekBGfill" pos="33,1" size="24,14"/> <AREA id="SeekThumb" pos="64,1" size="14,14"/> <AREA id="SeekBG" pos="79,1" size="24,14"/> <AREA id="SeekHiTick" pos="58,1" size="1,3"/> <AREA id="SeekLoTick" pos="59,1" size="1,3"/> <AREA id="SeekChapter" pos="58,13" size="3,2"/> | <CONTROL type="Seeker" pos="0,0" size="-1,14" bgsplit="12,6" OpeningPos="0" OpeningHeight="14" bg="Ft.SeekBG" bgfill="Ft.SeekBGfill" thumb="Ft.SeekThumb" lotick="Ft.SeekLoTick" hitick="Ft.SeekHiTick" digits_ypos="4" ticks_ypos="0" chapter="Ft.SeekChapter" chapter_pos="-1,12" /> | Шкала времени служит для перемотки файла. Её атрибуты:

- size="-4,24" - отрицательная длина; это значит, что длина отсчитывается от правого края панели;
- bgfill="FT.SeekBGfill" - фон пройденного участка;
- thumb="FT.SeekThumb" - бегунок;
- hitick="FT.SeekHiTick" - основные насечки;
- lotick="FT.SeekLoTick" - дополнительные насечки;
- OpeningPos="14" - высота от верхнего края шкалы времени до автопромотки;
- OpeningHeight="6" - высота самой автопромотки.
- digits_ypos="4" - вертикальный сдвиг цифр на шкале времени.
- ticks_ypos="0" - вертикальный сдвиг насечек на шкале времени.
- chapter="Ft.SeekChapter" - маркер закладок.
- chapter_pos="-1,12" - сдвиг маркера закладок.

Громкость | Слайдер | <AREA id="VolBGF" pos="226,40" size="9,13"/> <AREA id="VolThumb" pos="236,40" size="10,13"/> <AREA id="VolBG" pos="247,40" size="9,13"/> | <CONTROL type="Slider" pos="45,40" size="92,13" bg="FT.VolBG" bgsplit="5,19" bgfill="FT.VolBGF" thumb="FT.VolThumb"/> | Громкость говорит сама за себя.
Заголовок | Текстовая строка | <AREA id="TitleBG" pos="10,8" size="10,16"/> | <CONTROL type="Text" pos="100,3" size="-100,17" font="Verdana" fontsz="10" top_delta="-2" bold="0" bg="HD.TitleBG" bgsplit="8,5" variable="1" text="{TITLE}"/> | Заголовок предназначен для отображения имени файла и некоторой информации о состоянии проигрывателя. Атрибуты:

- font="Verdana" - гарнитура.
- fontsz="10" - размер шрифта;
- top_delta="-2" - смещение текста по вертикали. Минус - вверх, плюс - вниз;
- bold="0" - жирность шрифта: 0 - обычный, 1 - жирный;
- bg="HD.TitleBG" - фон под текстом;
- text="{TITLE}" - собственно текст.
- link="" - функция, которая будет выполнена при нажатии на текстовую строку; необязательный параметр.

Помимо этого, в наборах цветов указываются цвета текста при активном и неактивном окне. Однако, эти цвета действуют на все текстовые строки, поэтому создание обычной текстовой строки с позицией, длительностью или временем, хоть о возможно, но будет иметь ограничения по цвету и сопутствующие проблемы.
Позиция Длительность Время | Графическая текстовая строка | <AREA id="Digits" pos="326,6" size="114,15"/> <FONT id="Digits" img="FT.Digits" chars="0123456789:/ -"/> | <CONTROL type="Text" pos="3,1" size="69,14" font="Digits" text=" {POS} / {DUR}" link=" Position.Switch"/> | Позиция, Длительность и Время обозначаются такими значениями соответственно:

1. {POS} - позиция воспроизводимого файла
2. {DUR} - длительность воспроизводимого файла
3. {TIME} - системное время

Для корректного отображения информации необходимы следующие символы:

- {POS} - "0123456789: -" (двоеточие разделяет часы, минуты, секунды; пробел и дефис участвуют в отображении прямого и обратного отсчёта)
- {DUR} - "0123456789:"
- {TIME} - "0123456789: " (двоеточие ежесекундно заменяется пробелом и наоборот)

Кроме этих значений можно использовать любые символы на своё усмотрение. Также можно комбинировать простой текст и интерактивный.
Для того, чтобы щелчок по позиции левой кнопкой мыши переключал прямой обратный отсчёт, контрол должен быть снабжён таким атрибутом: link=" Position.Switch"
Изображения делятся на символы на основании нижнего ряда пикселей: изменился цвет - значит начался новый символ. Пример (масштаб 200%):