C.1. Обзор

На самом деле с форматом скинов уже нет необходимости что-либо делать, но вам следует знать, что MPlayer не имеет встроенного скина, так что как минимум один скин должен быть установлен, для возможности использовать GUI.

C.1.1. Каталоги

Скины ищутся в следующих каталогах (по порядку):

  1. $(DATADIR)/skins/

  2. $(PREFIX)/share/mplayer/skins/

  3. ~/.mplayer/skins/

Имейте в виду, что первый путь может меняться в соответствии с конфигурацией MPlayer (смотрите аргументы скрипта configure --prefix и --datadir).

Каждый скин устанавливается в его собственный подкаталог, в одном из указанных выше каталогов, например:

$(PREFIX)/share/mplayer/skins/default/

C.1.2. Форматы изображений

Изображениями должны быть truecolor (24 или 32 бит/пиксел) PNG.

В главном окне и полосе воспроизведения (смотрите ниже) можно использовать изображения с 'прозрачностью': Области, заполненные цветом #FF00FF (magenta) полностью прозрачны при просмотре программой MPlayer. Это значит, что если ваш X сервер поддерживает расширение XShape, вы сможете получить даже окна произвольной формы.

C.1.3. Компоненты скина

Скины имеют достаточно свободный формат (в отличие,например, от скинов Winamp/XMMS, имеющих формат фиксированный), так что зависит исключительно от вас, выйдет ли у вас что-то грандиозное.

В данный момент могут быть оформлены четыре окна: главное окно, вспомогательное окно, полоса воспроизведения, and the меню со скинами (активирующееся правым щелчком мыши).

  • Главное окно и/или полоса воспроизведения - те, через которые вы управляете MPlayer. Фон окна - это изображение. Различные элементы могут (и должны) размещаться в окне: кнопки, ползунки и надписи. Для каждого элемента должен быть задан размер и положение.

    Кнопка имеет три состояния (нажата, отпущена, отключена), таким образом, ее изображение должно быть разделено вертикально на три части. Смотрите элемент кнопка для подробностей.

    Ползунок (в основном используется для полосы перемещения и управления громкостью/балансом) может иметь любое количество положений, задаваемых делением его изображения на различные части одна под другой. Смотрите hpotmeter и potmeter для подробностей.

    Надписи чуть особеннее: Символы, необходимые для их отрисовки, берутся из графического файла, и задаются файлом описания шрифта. Последний - это текстовый файл, указывающий x,y положения и размер каждого символа в файле с изображением (файл изображения и файл описания шрифта вместе формируют шрифт). Смотрите dlabel и slabel для подробностей.

    Замечание

    Все изображения могут быть полностью прозрачными, как описано в разделе, посвященном форматам изображений. Если X сервер не поддерживает расширение XShape, части, помеченные как прозрачные, будут черными. Если вам нравится использовать эту возможность, ширина фона главного окна должна делиться на 8.

  • Вспомогательное окно - это то, где появляется фильм. Оно может отображать указанную картинку, если никакого фильма не загружено (пустое окно немного надоедает :-)) Замечание: прозрачность здесь не допускается.

  • Меню со скинами - всего лишь способ управлять MPlayer в понятиях элементов меню. Для меню требуются два изображения: одно из них - основное, показывает меню в обычном режиме, другое используется для отображения выбранных элементов. Когда появляется меню, отображается первое. Если вы перемещаете мышь над элементами меню, выбранный элемент копируется из второго изображения поверх элемента меню под указателем мыши (второе изображение никогда не отображается целиком).

    Элемент меню определяется его позицией и размером изображения (смотрите раздел, посвященный меню со скинами для подробностей).

Важная вещь, не упомянутая выше: Чтобы работали кнопки, ползунки и элементы меню, MPlayer должен знать, что делать, если на них щелкнули мышью. Это делается при помощи сообщений (событий). Для этих элементов вы должны определить сообщения, генерируемые, когда на них щелкают мышью.

C.1.4. Файлы

Вам нужны следующие файлы для создания скина:

  • Файл конфигурации, называющийся skin говорит MPlayer как совместить разные части скина воедино, и что делать, если производится щелчок где-нибудь в окне.

  • Фоновое изображение главного окна.

  • Изображения элементов главного окна (включая один или более файлов описания шрифтов, необходимых для отрисовки надписей.

  • Изображение, показываемое во вспомогательном окне (необязательно).

  • Два изображения для меню со скинами (нужны, только если вы хотите создавать меню).

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