# HG changeset patch # User voroshil # Date 1158494762 0 # Node ID b7314f750a02530e9cbc9d3b9f61875fb2629384 # Parent 4fce64943ac0d698c29b74f18140a929c35a64b8 translation by Vladimir Voroshilov, voroshil gmail com diff -r 4fce64943ac0 -r b7314f750a02 DOCS/xml/ru/skin.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/ru/skin.xml Sun Sep 17 12:06:02 2006 +0000 @@ -0,0 +1,1156 @@ + + + +Формат скинов <application>MPlayer</application> + + +Обзор + +На самом деле с форматом скинов уже нет неоходимости что-либо делать, но вам +следует знать, что MPlayer +не имеет встроенного скина, так что +как минимум однин скин должнен быть установлен, для +возможности использовать GUI. + + + +Каталоги + +Скины ищутся в следующих каталогах (по порядку): + + +$(DATADIR)/skins/ + + +$(PREFIX)/share/mplayer/skins/ + + +~/.mplayer/skins/ + + + + + +Имейте в виду, что первый путь может меняться в соответствии с конфигурацией +MPlayer (смотрите аргументы скрипта +configure и ). + + + +Каждый скин устанавливается в его собственный подкаталог, в одном из указанных выше +каталогов, например: +$(PREFIX)/share/mplayer/skins/default/ + + + + +Форматы изображений +Изображениями должны быть truecolor (24 или 32 бит/пиксел) PNG. + +В главном окне и полосе воспроизведения (смотрите ниже) можно использовать +изобрадения с 'прозрачностью': Области, заполненные цветом #FF00FF (magenta) полностью +прозрачны при просмотре программой MPlayer. Это значит, что +если ваш X сервер поддерживает расширение XShape, вы сможете получить даже +окна произвольной формы. + + + + +Компоненты скина + +Скины имеют достаточно свободный формат (в отличие,например, от скинов +Winamp/XMMS, +имеющих формат фиксированный), так что зависит исключительно от вас, выйдет ли +у вас что-то грандиозное. + + + +В данный момент могут быть оформлены четыре окна: +главное окно, +вспомогательное окно, +полоса воспроизведения, and the +меню со скинами (активирующееся правым щелчком +мыши). + + + + Главное окно и/или + полоса воспроизведения - те, через которые вы + управляете MPlayer. Фон окна - это изображение. + Различные элементы могут (и должны) размещаться в окне: кнопки, + ползунки и надписи. + Для каждого элемента должен быть задан размер и положение. + + Кнопка имеет три состояния (нажата, отпущена, + отключена), таким образом, ее изображение должно быть разделено вертикально на три части. + Смотрите элемент кнопка для подробностей. + + Ползунок (в основном используется для полосы перемещения + и управления громкостью/балансом) может иметь любое количество положений, задаваемых делением + его изображения на различные части одна под другой. Смотрите + hpotmeter и + potmeter для подробностей. + + Надписи чуть особеннее: Символы, необходимые для их + отрисовки, берутся из графического файла, и задаются + файлом описания шрифта. + Последний - это текстовый файл, указывающий x,y положения и размер каждого символа + в файле с изображением (файл изображения и файл описания шрифта + вместе формируют шрифт). Смотрите dlabel + и slabel для подробностей. + +Все изображения могут быть полностью прозрачными, как описано в разделе, + посвященном форматам изображений. Если X + сервер не поддерживает расширение XShape, части, помеченные как прозрачные, будут черными. + Если вам нравится использовать эту возможность, ширина фона главного окна должна + делиться на 8. + + + + + Вспомогательное окно - это то, где появляется фильм. + Оно может отображать указанную картинку, если никакого фильма не загружено (пустое окно + немного надоедает :-)) Замечание: прозрачность здесь + не допускается. + + + + Меню со скинами - всего лишь способ управлять + MPlayer в понятиях елементов меню. Для меню требуются + два изображения: одно из них - основное, показывает меню в обычном режиме, + другое используется для отображения выбранных элементов. Когда появляется меню, + отображается первое. Если вы перемещаете мышь над элементами меню, + выбранный элемент копируется из второго изображения поверх элемента меню под указателем мыши + (второе изображение никогда не отображается целиком). + + Элемент меню определяется его позицией и размером изображения (смотрите раздел, + посвященный меню со скинами для подробностей). + + + + + + Важная вешь, не упомянутая выше: Чтобы работали кнопки, ползунки и элементы меню, + MPlayer должен знать, что делать, если на них + щелкнули мышью. Это делается при помощи сообщений + (событий). Для этих элементов вы должны определить сообщения, генерируемые, когда + на них щелкают мышью. + + + + +Файлы + +Вам нужны следующие файлы для создания скина: + + + Файл конфигурации, называющийся skin говорит + MPlayer как совместить разные части скина воедино, + и что делать, если производится щелчок где-нибудь в окне. + + + Фоновое изображение главного окна. + + + Изображения элементов главного окна (включая один или более файлов описания шрифтов, + необходимых для отрисовки надписей. + + + Изображение, показываемое во вспомогательном окне (необязательно). + + + Два изображения для меню со скинами (нужны, только если вы хотите создавать меню). + + + Все файлы, за исключением skin, могут быть названы так, как вам захочется + (но заметьте, что файлы описания шрифтов дожны иметь расширение + a .fnt). + + + + +Файл skin + +Как описано выше, это файл конфигурации скина. он строчно-орентирован: +строки комментариев начинаются с символа ';' в начале +строки (только пробелы и табуляция допускается перед символом ';'). + + + +Файл создается из разделов. Каждый описывает скин для приложения и +имеет следующую форму: + +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>, где pngPNG пробуются вместо <ext> +(в этом порядке). Будет использоваться первый найденный файл. + + + +И наконец несколько слов о позиционировании. Главное и вспомогательное окна могут +быть размещены в разных углах экрана указанием X и +Y координат. 0 - это верхний и левый край, +-1 - центр и -2 - правый или нижний, как +указано на иллюстрации: + + + +(0, 0)----(-1, 0)----(-2, 0) + | | | + | | | +(0,-1)----(-1,-1)----(-2,-1) + | | | + | | | +(0,-2)----(-1,-2)----(-2,-2) + + + + +Вот пример, чтобы было понятнее. Предположим вы имеете изображение, называющееся +main.png, которое используете для главного окна: +base = main, -1, -1 +MPlayer пытается загрузить файлы main, +main.png, main.PNG. + + + +Главное окно и полоса воспроизведения + +Ниже - список элементов, которые можно указывать в +'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 - это сообщение, генерируемое, когда кнопка мыши будет отпущена +над элементом меню. + + + + + + + +Шрифты + +Как описано в разделе, посвященому частям скина, шрифт определяется +изображением и файлом описания. Вы можете поместить символы в любое место изображения, +но будьте уверены, что их позоция и размер точно указаны в файле описания. + + + +Файл описания шрифта (с расширением .fnt) может иметь комментарии, +начинающиеся с ';'. Файл должен иметь строку вида + +image = image, +где image - это название +файла с изображением, используемым для шрифта (расширение указывать необязательно). + +"char" = X, Y, width, height +Здесь X и Y указывают позицию символа +char в изображении (0,0 - верхний левый угол), +width и height - размеры символа в пикселах. + + + +Этот пример определяет символы A, B, C, используя font.png. + +; Can be "font" instead of "font.png". +image = font.png + +; Three characters are enough for demonstration purposes :-) +"A" = 0,0, 7,13 +"B" = 7,0, 7,13 +"C" = 14,0, 7,13 + + + + +Значки + +Некоторые символы иеют специальное значение, когда возвращаются некоторыми переменными, +используемыми в dlabel. Подразумевается, что эти символы +должны отображаться в виде значков, так для DVD потока можно отображать значок +красивого логотипа DVD вместо символа 'd'. + + +Следующая таблица содержит список всех символов, которые могут использоваться для +отображения значков (и поэтому требуют другой шрифт). + + + + + + СимволЗначок + + +pвоспроизведение +sстоп +eпауза +nбез звука +mзвук моно +tзвук стерео +fфайл +vVideo CD +dDVD +uURL + + + + + + + +GUI сообщения + +Это сообщения, которые могут генерировться кнопками, ползунками и элементами меню. + + + +Управление воспроизведением: + + evNext + +Переход к следующему элементу списка воспроизведения. + + + + + evPause + +Вместе с evPlaySwitchToPause формирует переключатель паузы. +Может быть использовано для общей кнопки воспроизведение/пауза. Оба сообщения +должны быть назначены кнопкам, находящимся практически в одной точке окна. +Это сообщение ставит воспроизведение на паузу и показывает изображение кнопки с +назначенным сообщением evPlaySwitchToPause +(чтобы показать, что кнопка может быть нажата для продолжения воспроизведения). + + + + + evPlay + +Старт воспроизведения. + + + + + evPlaySwitchToPause + +Противоположность evPauseSwitchToPlay. Это сообщение +запускает воспроизведение и показывает изображение кнопки с +назначенным сообщением evPauseSwitchToPlay +(чтобы показать, что кнопка может быть нажата для включения паузы). + + + + + evPrev + +Переход к предыдущему элементу списка воспроизведения. + + + + + evStop + +Останавливает воспроизведение. + + + + + +Перемещение: + + evBackward10sec + +Перемещение назад на 10 секунд. + + + + + evBackward1min + +Перемещение назад на 1 минуту. + + + + + evBackward10min + +Перемещение назад на 10 минут. + + + + + evForward10sec + +Перемещение вперед на 10 секунд. + + + + + evForward1min + +Перемещение вперед на 1 минуту. + + + + + evForward10min + +Перемещение вперед на 10 минут. + + + + + evSetMoviePosition + +Перемещается к позиции (может использоваться ползунком; +используется относительное (0-100%) положение ползунка). + + + + + +Управление видео: + + evHalfSize + +Установить половинный размер окна. + + + + evDoubleSize + +Установить двойной размер окна. + + + + evFullScreen + +Включить/выключить полноэкранный режим. + + + + evNormalSize + +Установить нормальный размер окна. + + + + + +Управление звуком: + + evDecAudioBufDelay + +Уменьшить задержку буфера звука. + + + + + evDecBalance + +Уменьшить баланс. + + + + + evDecVolume + +Уменьшить громкость. + + + + + evIncAudioBufDelay + +Увеличить задержку буфера звука. + + + + + evIncBalance + +Увеличить баланс. + + + + + evIncVolume + +Увеличить громкость. + + + + + evMute + +Выключить/включить звук. + + + + + evSetBalance + +Установить баланс (может использоваться ползунком; +используется относительное (0-100%) значение ползунка), + + + + + evSetVolume + +Установить громкость (может использоваться ползунком; +используется относительное (0-100%) значение ползунка), + + + + + +Разное: + + evAbout + +Открыть окно 'О программе'. + + + + + evDropSubtitle + +Отключает субтитры, использующиеся в данный момент. + + + + + evEqualizer + +Включает/выключает эквалайзер. + + + + + evExit + +Выход из программы. + + + + + evIconify + +Сворачивает окно в иконку. + + + + + evLoad + +Открывает файл (открывая окно навигации, в котором вы можете выбрать файл). + + + + + evLoadPlay + +Делает то же, что и evLoad, но запускает вопроизведение файла автоматически +после его загрузки. + + + + + evLoadSubtitle + +Загружает файл с субтитрами (с диалогом выбора файла). + + + + + evLoadAudioFile + +Загружает звуковой файл (с диалогом выбора файла). + + + + + evNone + +Пустое сообщение, не имеет действий (за исключением, возможно, Subversion версий :-)). + + + + + evPlaylist + +Открывае/закрывает окно со списком воспроизведения. + + + + + evPlayDVD + +Пытается открыть диск в указанном устройстве DVD-ROM. + + + + + evPlayVCD + +Пытается открыть диск в указанном устройстве CD-ROM. + + + + + evPreferences + +Открывает окно с настройками. + + + + + evSetAspect + +Включает показ пропорций изображения. + + + + + evSetURL + +Отображает диалог ввода URL. + + + + + evSkinBrowser + +Открывает окно навигации по скинам. + + + + + + + +Создание качественного скина + + +Итак, вы прочитали о создании скина для +MPlayer GUI, прекрасно нарисовали все в +Gimp и желаете отправить скин нам? +Прочтите некоторые руководства для избежания основных ошибок и +создания высококачественного скина. + + + +Мы хотим, чтобы скины, добавляемые нами в репозиторий, удовлетворяли +некоторым стандартам качества. Есть также несколько вещей, +сделающих вашу жизнь проще. + + + +В качестве примера можете посмотреть на скин Blue, +начиная с версии 1.5, он удовлетворяет всем критериям, указанным ниже. + + + + Каждый скин должна идти с файлом + README, содержащим информацию о вас, авторе, + правах на копирование, лицензионным уведомлением и всем другим, + что вам захочется добавить. Если хотите иметь историю изменений, то + этот файл - хорошее место для нее. + + Должен быть файл VERSION, + содержащийт только номер версии скина в одной строке + (например 1.0). + + Горизондальные и вертикальные элементы управления + (такие как ползунки громкости или положения) должны иметь + кнопку-ползунок точно отцентрированную по центру самого ползунка. + Должно быть возможно двигать кнопку к обоим концам ползунка, + но не выходить за них. + + Элементы скина должны иметь правильные размеры, + указанные в файле skin. Если это не так, вы сможете щелкнуть, например, + мимо кнопки и все равно она сработает, или наоборот кликнуть на нее, + не вызвав никакого действия. + + Файл skin должен быть набран аккуратно + и не должен содержать символов табуляции. Аккуратно набран означает, + что числа должны выравниваться стройно в столбцы. + + + + +