Как описано выше, это файл конфигурации скина. он строчно-орентирован:
строки комментариев начинаются с символа ';
' в начале
строки (только пробелы и табуляция допускается перед символом ';
').
Файл создается из разделов. Каждый описывает скин для приложения и имеет следующую форму:
section = название раздела
.
.
.
end
В данный момент приложение одно, так что вам потребуется только один раздел: его название movieplayer.
В пределах раздела каждое окно описывается блоком следующей структуры:
window = название окна
.
.
.
end
где название окна
может быть одной из этих строк:
main - главное окно
sub - вспомогательное окно
menu - меню со скинами
playbar - полоса воспроизведения
(Блоки sub и menu опциональные - необязательно создавать меню или оформлять вспомогательное окно.)
В пределах блока window вы можете описать каждый элемент окна строкой в следующем формате:
item = parameter
Где item
- это строка, определяющая тип элемента GUI,
parameter
- числовое или текстовое значение (или список значений, разделенных
запятой).
Если собрать все вместе, файл целиком будет выглядеть примерно так:
section = movieplayer window = main ; ... items for main window ... end window = sub ; ... items for subwindow ... end window = menu ; ... items for menu ... end window = playbar ; ... items for playbar ... end end
Название файла с изображением должно указываться без лидирующих каталогов -
изображения ищутся в каталоге skins.
Вы можете (но не обязаны) указать расширение файла. Если файл не существует,
MPlayer пытается загрузить файл
<filename>.<ext>, где png
и PNG
пробуются вместо <ext>
(в этом порядке). Будет использоваться первый найденный файл.
Вот пример, чтобы было понятнее. Предположим вы имеете изображение, называющееся main.png, которое используете для главного окна:
base = main, -1, -1
MPlayer пытается загрузить файлы main, main.png, main.PNG.
И наконец несколько слов о позиционировании. Главное и вспомогательное окна могут
быть размещены в разных углах экрана указанием X
и
Y
координат. 0
- это верхний и левый край,
-1
- центр и -2
- правый или нижний, как
указано на иллюстрации:
(0, 0)----(-1, 0)----(-2, 0) | | | | | | (0,-1)----(-1,-1)----(-2,-1) | | | | | | (0,-2)----(-1,-2)----(-2,-2)
Ниже - список элементов, которые можно указывать в
'window = main
' ... 'end
',
и 'window = playbar
' ... 'end
'
блоках.
base = image, X, Y
Позволяет вам указать фоновое изображение, используемое в главном окне.
Окно будет появляться в указанной X,Y
позиции на экране и
иметь размер изображения.
Эти координаты пока не работают для окна отображения.
Прозрачные регионы в изображении (цвет #FF00FF) станут черными на X сервере без расширения XShape. Ширина картинки должна делиться на 8.
button = image, X, Y, width, height, message
Размещает кнопку размера width
* height
на
позиции X,Y
. Указанное сообщение message
генерируется при щелчке на кнопку. Изображение image
,
должно иметь три части одна ниже другой (в соответствии с возможными состояниями
кнопки), как здесь:
+------------+ | нажата | +------------+ | отпущена | +------------+ | отключена | +------------+
decoration = enable|disable
Включает или выключает декорации главного окна, осуществляемые window manager . По-умолчанию disable.
Это не работает для окна отображения, в этом нет надобности.
hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message
vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message
Размещает горизонтальный (hpotmeter) или вертикальный (vpotmeter) ползунок размера
width
* height
на позиции
X,Y
. Изображение может быть разделено на разные части для
указания различных положений ползунка (например, вы можете иметь регулятор для
управления громкостью звука, изменяющийся с красного на зеленый при изменении его
уровня с минимального на максимальный.). hpotmeter
может иметь
кнопку, которую можно таскать горизонтально. Параметры:
button
- изображение, используемое для
кнопки (должно иметь три части одна под другой, как в случае
кнопки)
bwidth
, bheight
- размер кнопки
phases
- изображение, используемое для
различных положений hpotmeter. Специальное значение NULL
может использоваться, если подобное изображение вам не нужно. Изображение
должно быть разделено вертикально на
numphases
частей, как указано ниже:
+--------------+ | положение #1 | +--------------+ | положение #2 | +--------------+ ... +--------------+ | положение #n | +--------------+
numphases
- количество положений в изображении
phases
default
- положение hpotmeter по-умолчанию
(в диапазоне от 0
до 100
)
X
, Y
- позиция hpotmeter
width
, height
- ширина и высота
hpotmeter
message
- сообщение, генерируемое при изменении значения
hpotmeter
potmeter = phases, numphases, default, X, Y, width, height, message
hpotmeter
без кнопки.
(Я предполагаю, что это означает повернутый вокруг,
но он реагирует только на перетаскивание по горизонтали.) Для описания параметров смотрите
hpotmeter.
phases
может быть равен NULL
, но это совершенно
бесполезно, поскольку вы не сможете определить в каком положении
находится potmeter
.
font = fontfile, fontid
Определяет шрифт. fontfile
- это название файла описания шрифта
с расширением .fnt (не указывайте расширение здесь).
fontid
используется для ссылки на шрифт
(смотрите dlabel и
slabel). Может быть определено до 25 шрифтов.
slabel = X, Y, fontid, "text"
Размещает статическую метку на позиции X,Y
. text
отображается, используя шрифт, определенный по fontid
.
Текст - просто обычная строка ($x
переменные не работают), которая должна
быть заключена в двойные кавычки (но символ " не может быть частью текста).
Метка отображается, используя шрифт определенный по fontid
.
dlabel = X, Y, length, align, fontid, "text"
Размещает динамическую метку на позиции X,Y
. Метка зовется
динамической, потому что ее текст периодически обновляется. Максимальная длина
метки задается параметром length
(ее высота равна высоте символа).
Если отображаемый текст шире этого значения, он будет скроллироваться,
иначе он выравнивается в пределах указанного пространства в соответствии со
значением параметра
align
: 0
- вправо,
1
- по центру, 2
- влево.
Отображаемый текст задается параметром text
: Он должен быть
заключен в двойные кавычки (но символ " не может быть частью текста).
Метка отображается, используя шрифт, определяемый по fontid
.
Вы можете использовать следующие переменные в тексте:
Переменная | Значение |
---|---|
$1 | время воспроизведения в формате чч:мм:сс |
$2 | время воспроизведения в формате мммм:сс |
$3 | время воспроизведения формате чч(часы) |
$4 | время воспроизведения в формате мм(минуты) |
$5 | время воспроизведения в формате сс(секунды) |
$6 | длительность фильма в формате чч:мм:сс |
$7 | длительность фильма в формате мммм:сс |
$8 | время воспроизведения формате ч:мм:сс |
$v | кромкость в формате xxx.xx% |
$V | кромкость в формате xxx.xx |
$b | баланс в формате xxx.xx% |
$B | баланс в формате xxx.xx |
$$ | символ $ |
$a | символ ,соответствующий типу звука (нет: n ,
моно: m , стерео: t ) |
$t | номер дорожки (в плейлисте) |
$o | имя файла |
$f | имя файла в нижнем регистре |
$F | имя файла в верхнем регистре |
$T |
символ, соответствующий типу потока (файл: f ,
Video CD: v , DVD: d ,
URL: u )
|
$p | символ p (если фильм воспроизводится и шрифт имеет символ p) |
$s | символ s (если фильм остановлен и шрифт имеет символ s) |
$e | символ e (если фильм на паузе и шрифт имеет символ e) |
$x | ширина фильма |
$y | высота фильма |
$C | название используемого кодека |
Переменные $a, $T, $p, $s
и $e
все
возвращают символы, которые должны быть отображены в качестве специальных значков
(например, e - для значка паузы, который обычно выглядит как ||).
Вы должны иметь шрифт для обычных символов и отличающийся шрифт для значков.
Смотрите раздел о значках
для дополнительной информации.
Следующие элементы могут быть использованы в блоке
'window = sub
' . . . 'end
' .
base = image, X, Y, width, height
Изображение, отображаемое в окне. Окно будет появляться в указанной позиции
X,Y
экрана (0,0
- верхний левый угол).
Вы можете указать -1
для центра и -2
для правого (X
) и нижнего (Y
) края.
Окно будет того же размера, что и изображение. width
и
height
означают размер окна; они необязательны
(если отсутствуют, окно будет иметь те же размеры, что и изображение).
background = R, G, B
Позволяет указать цвет фона. Это полезно, если изображение меньше окна.
R
, G
и B
указывают красную, зеленую и синюю составляющие цвета (каждое из них -
десятичное число от 0 до 255).
Как было описано выше, меню отображается при помощи двух картинок. Нормальные
элементы меню берутся из изображения, указанного элементом base
,
в то время как выделенный в данный момент элемент берется из изображения,
указанного элементом selected
. Вы должны определить позицию и
размер каждого элемента меню.
Следующие элементы можно использовать в блоке
'window = menu
'. . .'end
'.
base = image
Изображение для нормальных элементов меню.
selected = image
Изображение, показывающее меню со всеми выделенными элементами.
menu = X, Y, width, height, message
Определяет позицию X,Y
и размер элемента меню в изображении.
message
- это сообщение, генерируемое, когда кнопка мыши будет отпущена
над элементом меню.