mpv/DOCS/xml/cs/skin.xml

1155 lines
35 KiB
XML

<?xml version="1.0" encoding="iso-8859-2"?>
<!-- Synced with: 1.15 -->
<appendix id="skin">
<title>Formát skinù <application>MPlayer</application>u</title>
<sect1 id="skin-overview">
<title>Pøehled</title>
<para>
Nemá to sice nic spoleèného s formátem skinu, ale mìli byste vìdìt, ¾e
<application>MPlayer</application> <emphasis role="bold">nemá</emphasis>
vestavìný skin, tak¾e <emphasis role="bold">si musíte alespoò jeden skin
nainstalovat, chcete-li pou¾ívat GUI.</emphasis>
</para>
<sect2 id="skin-overview-directories">
<title>Adresáøe</title>
<para>
Adresáøe prohledávané na skiny jsou (v tomto poøadí):
<orderedlist>
<listitem><para>
<filename class="directory">$(DATADIR)/skins/</filename>
</para></listitem>
<listitem><para>
<filename class="directory">$(PREFIX)/share/mplayer/skins/</filename>
</para></listitem>
<listitem><para>
<filename class="directory">~/.mplayer/skins/</filename>
</para></listitem>
</orderedlist>
</para>
<para>
Poznamenejme, ¾e první z cest se mù¾e li¹it podle toho, jak je
<application>MPlayer</application> zkonfigurován (viz volby configure skriptu
<option>--prefix</option> a <option>--datadir</option>).
</para>
<para>
Ka¾dý skin je instalován do vlastního adresáøe v nìkterém z vý¹e uvedených.
Napøíklad:
<screen>$(PREFIX)/share/mplayer/skins/default/</screen>
</para>
</sect2>
<sect2 id="skin-overview-formats">
<title>Formáty obrázkù</title>
<para>Obrázky musí být truecolor (24 nebo 32 bpp) PNG.</para>
<para>
V hlavním oknì a v pøehrávaèi (viz ní¾) mù¾ete pou¾ít obrázky s 'prùhledností':
Oblasti vyplnìné barvou #FF00FF (magenta) jsou plnì prùhledné, pokud jsou
zobrazovány <application>MPlayer</application>em. To znamená, ¾e mù¾ete mít
tvarovaná okna, pokud má vá¹ X server XShape roz¹íøení.
</para>
</sect2>
<sect2 id="skin-overview-components">
<title>Souèásti skinu</title>
<para>
Skiny mají pomìrnì volný formát (narozdíl napøíklad od pevného formátu skinù
<application>Winamp</application>u/<application>XMMS</application>),
tak¾e je jen na vás, zda vytvoøíte nìco skvìlého.
</para>
<para>
V souèasnosti jsou zde ètyøi okna, která mù¾ete dekorovat:
<link linkend="skin-file-main">hlavní okno</link>,
<link linkend="skin-file-subwindow">podokno</link>,
<link linkend="skin-file-main">ovládací panel</link> a
<link linkend="skin-file-menu">nabidka</link> (tu lze aktivovat
pravým my¹ítkem).
<itemizedlist>
<listitem><para>
<application>MPlayer</application> je ovládán v
<emphasis role="bold">hlavním oknì</emphasis> a/nebo v
<emphasis role="bold">ovládacím panelu</emphasis>. Pozadím okna je obrázek.
Následující souèásti mohou (a musí) být umístìny v oknì:
<emphasis>tlaèítka</emphasis>, <emphasis>potenciometry</emphasis> (¹oupátka)
a <emphasis>popisky</emphasis>.
Ka¾dé souèásti musíte nastavit pozici a velikost.
</para><para>
A <emphasis role="bold">tlaèítko</emphasis> má tøi stavy (stisknuto, pu¹tìno a
zakázáno), proto musí být jeho obraz svisle rozdìlen do tøí èástí.
Detaily viz souèást <link linkend="skin-button">tlaèítko</link>.
</para><para>
A <emphasis role="bold">potenciometr</emphasis> (hlavnì pou¾ívaný pro
li¹tu pøevíjení a ovládání hlasitosti/stereováhy) mù¾e mít libovolný poèet
fází dìlících jeho obraz na jednotlivé èásti pod sebou. Detaily viz
<link linkend="skin-hpotmeter">hpotenciometr</link> a
<link linkend="skin-potmeter">potenciometr</link>.
</para><para>
<emphasis role="bold">Popisky</emphasis> jsou ponìkud zvlá¹tní: Znaky potøebné
pro jejich vykreslení jsou brány z obrazového souboru a znaky v obrázku jsou
popsány <link linkend="skin-fonts">souborem popisu fontu</link>.
Tento (druhý) soubor je prostý textový soubor, který popisuje pozici x,y a
velikost ka¾dého znaku v obrázku (obrázkový soubor a soubor popisu fontu
<emphasis>spolu</emphasis> tvoøí font). Detaily viz
<link linkend="skin-dlabel">dlabel</link>.
</para>
<note><para>V¹echny obrázky mohou mít plnou prùhlednost, jak je popsána v sekci
o <link linkend="skin-overview-formats">formátech obrázkù</link>. Pokud X
server nepodporuje roz¹íøení XShape, budou prùhledné èásti èerné. Pokud byste
chtìli vyu¾ít tuto vlastnost, musí být ¹íøka pozadí hlavního okna celoèíselnì
dìlitelná 8.
</para></note>
</listitem>
<listitem><para>
<emphasis role="bold">Podokno</emphasis> je to okno, kde se zobrazuje film.
Mù¾e v nìm být zobrazen urèený obrázek, pokud není naèten ¾ádný film (je
docela únavné, pokud zde není nic :-)).
<emphasis role="bold">Poznámka:</emphasis> prùhlednost zde
is <emphasis role="bold">není povolena</emphasis>.
</para></listitem>
<listitem><para>
<emphasis role="bold">Nabídka</emphasis> je jen zpùsob, jak ovládat
<application>MPlayer</application> polo¾kami menu. Vy¾adovány jsou dva
obrázky: jeden z nich jako menu v normálním stavu a druhý se zvýraznìnými
polo¾kami. Kdy¾ pak vyvoláte menu, je zobrazen první obrázek. Pøi pohybu my¹í
pøes polo¾ky, je zkopírována aktuálnì vybraná polo¾ka z druhého obrázku pøes
ten první pod kursorem (druhý obrázek není nikdy zobrazen celý).
</para><para>
Polo¾ka menu je definována svou pozicí a velikostí v obrázku (detaily viz
sekce <link linkend="skin-file-menu">nabídka</link>).
</para></listitem>
</itemizedlist>
</para>
<para>
Jednu dùle¾itou vìc jsme je¹tì nezmínili: Mají-li tlaèítka,
potenciometry a polo¾ky menu pracovat, musí <application>MPlayer</application>
vìdìt, co má udìlat, pokud je na nì kliknuto. To je zaji¹tìno pomocí
<link linkend="skin-gui">zpráv</link> (událostí). Pro tyto èleny tedy musíte
definovat zprávy, které budou pøi kliku generovány.
</para>
</sect2>
<sect2 id="skin-files">
<title>Soubory</title>
<para>
Pro výrobu skinu budete potøebovat následující:
<itemizedlist>
<listitem><para>
Konfiguraèní soubor jménem <link linkend="skin-file">skin</link> øekne
<application>MPlayer</application>u, jak má dát jednotlivé èásti skinu
dohromady a co udìlat, kliknete-li nìkde v oknì.
</para></listitem>
<listitem><para>
Obrázek pozadí hlavního okna.
</para></listitem>
<listitem><para>
Obrázky polo¾ek hlavního okna (vèetnì jednoho nebo více souborù s popisem
fontu pro vykreslování popisek).
</para></listitem>
<listitem><para>
Obrázek pro zobrazení v podoknì (volitelný).
</para></listitem>
<listitem><para>
Dva obrázky pro nabídku (ty jsou potøeba pouze pokud chcete vytvoøit menu).
</para></listitem>
</itemizedlist>
S výjimkou konfiguraèního souboru skinu si mù¾ete pojmenovat ostatní soubory
jak chcete (s tím, ¾e va¹e soubory s popisem fontu budou mít pøíponu
<filename>.fnt</filename>).
</para>
</sect2>
</sect1>
<sect1 id="skin-file">
<title>Soubor skin</title>
<para>
Jak jsme ji¾ øekli, je to konfiguraèní soubor skinu. Soubor je øádkovì
orientován; øádky s komentáøem zaèínají znakem '<literal>;</literal>' (pøed ním
jsou povoleny jen mezery a tabulátory).
</para>
<para>
Soubor je slo¾en ze sekcí. Ka¾dá sekce popisuje skin pro aplikaci a má
následující formu:
<programlisting>
section = <replaceable>název cekce</replaceable>
.
.
.
end
</programlisting>
</para>
<para>
Zatím máme jen jednu aplikaci, tak¾e potøebujete jen jednu sekci: její název je
<emphasis role="bold">movieplayer</emphasis>.
</para>
<para>
Uvnitø sekce je ka¾dé okno posáno blokem, který má následující formu:
<programlisting>
window = <replaceable>název okna</replaceable>
.
.
.
end
</programlisting>
</para>
<para>
kde <replaceable>název okna</replaceable> mù¾e být jeden z tìchto øetìzcù:
<itemizedlist>
<listitem><para><emphasis role="bold">main</emphasis> - pro hlavní okno</para></listitem>
<listitem><para><emphasis role="bold">sub</emphasis> - pro podokno</para></listitem>
<listitem><para><emphasis role="bold">menu</emphasis> - pro nabídku</para></listitem>
<listitem><para><emphasis role="bold">playbar</emphasis> - ovládací panel</para></listitem>
</itemizedlist>
</para>
<para>
(Bloky sub a menu jsou volitelné - nemusíte vytváøet nabídku nebo vyzdobit
podokno.)
</para>
<para>
Uvnitø window bloku mù¾ete definovat ka¾dou polo¾ku okna øádkem v tomto tvaru:
<programlisting>polo¾ka = parametr</programlisting>
Kde <literal>polo¾ka</literal> je øetìzec oznaèující typ polo¾ky GUI a
<literal>parametr</literal> je èíselná nebo textová hodnota (nebo seznam hodnot
oddìlených èárkami).
</para>
<para>
Dáte-li to v¹echno dohromady, celý soubor vypadá asi takto:
<programlisting>
section = movieplayer
window = main
; ... polo¾ky hlavního okna ...
end
window = sub
; ... polo¾ky podokna ...
end
window = menu
; ... polo¾ky menu ...
end
window = playbar
; ... polo¾ky ovládacího panelu ...
end
end
</programlisting>
</para>
<para>
Jméno souboru s obrázkem musí být zadáno bez úvodních adresáøù - obrázky jsou
vyhledávány v adresáøi <filename class="directory">skins</filename>.
Mìli byste (ale nemusíte) zadat pøíponu souboru. Pokud soubor neexistuje,
zkou¹í <application>MPlayer</application> naèíst soubor
<filename>&lt;jméno&gt;.&lt;pøíp&gt;</filename>, kdy jsou za
<filename>&lt;pøíp&gt;</filename> zkou¹eny pøípony <literal>png</literal>
a <literal>PNG</literal> (v tomto poøadí). Pou¾itý bude první vyhovující soubor.
</para>
<para>
Nakonec je¹tì pár slov k umís»ování. Hlavní okno a podokno mohou být umístìny
v rùzných rozích obrazovky zadáním souøadnic <literal>X</literal> a
<literal>Y</literal>. <literal>0</literal> je nahoøe nebo vlevo,
<literal>-1</literal> je støed a <literal>-2</literal> je vpravo nebo dole, jak
je vidìt na obrázku:
</para>
<informalfigure>
<screen>
(0, 0)----(-1, 0)----(-2, 0)
| | |
| | |
(0,-1)----(-1,-1)----(-2,-1)
| | |
| | |
(0,-2)----(-1,-2)----(-2,-2)
</screen>
</informalfigure>
<para>
Aby bylo v¹e jasné, uvádíme pøíklad. Øeknìme, ¾e máte obrázek jménem
<filename>main.png</filename>, který pou¾ijete pro hlavní okno:
<programlisting>base = main, -1, -1</programlisting>
<application>MPlayer</application> zkusí naèíst soubory <filename>main</filename>,
<filename>main.png</filename>, <filename>main.PNG</filename>.
</para>
<sect2 id="skin-file-main">
<title>Hlavní okno a ovládací panel</title>
<para>
Ní¾e uvádíme seznam polo¾ek, které mohou být pou¾ity v blocích
'<literal>window = main</literal>' ... '<literal>end</literal>',
a '<literal>window = playbar</literal>' ... '<literal>end</literal>'.
</para>
<variablelist>
<varlistentry>
<term><literal>
<anchor id="skin-main-base"/>base = obrázek, X, Y
</literal></term>
<listitem><para>
Umo¾òuje nastavit obrázek pozadí hlavního okna. Okno bude vykresleno na
zadaných souøadnicích <literal>X,Y</literal> na obrazovce a bude mít velikost
obrázku.
</para>
<note><para>Tyto koordináty zatím nefungují pro okno display.</para></note>
<warning><para>Prùhledné oblasti v obrázku (obarvené #FF00FF) budou èerné
na X serverech bez XShape roz¹íøení. ©íøka obrázku musí být celoèíselnì
dìlitelná 8.</para></warning>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-button"/>button = obrázek, X, Y, ¹íøka, vý¹ka, zpráva
</literal></term>
<listitem><para>
Umístí tlaèítko rozmìru <literal>¹íøka</literal> * <literal>vý¹ka</literal>
na pozici <literal>X,Y</literal>. Zadaná <literal>zpráva</literal> je
generována pøi kliku na tlaèítko. Zadaný <literal>obrázek</literal> musí
mít tøi èásti pod sebou (odpovídající mo¾ným stavùm tlaèítka) takto:
</para>
<informalfigure>
<screen>
+------------+
| stisknuto |
+------------+
| uvolnìno |
+------------+
| zakázáno |
+------------+
</screen>
</informalfigure>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-decoration"/>decoration = enable|disable
</literal></term>
<listitem><para>
Zapne (enable) nebo vypne (disable) dekoraci hlavního okna, produkovanou
okenním mana¾erem. Výchozí je <emphasis role="bold">disable</emphasis>.
</para>
<note><para>V oknì display to nefunguje, není to potøeba.</para></note>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-hpotmeter"/>hpotmeter = tlaèítko, t¹íøka, tvý¹ka, fáze, poèet_fází, výchozí, X, Y, ¹íøka, vý¹ka, zpráva
</literal></term>
<listitem><para>
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-vpotmeter"/>vpotmeter = tlaèítko, t¹íøka, tvý¹ka, fáze, poèet_fází, výchozí, X, Y, ¹íøka, vý¹ka, zpráva
</literal></term>
<listitem><para>
Umístí vodorovný (hpotmeter) nebo svislý (vpotmeter) potenciometr velikosti
<literal>¹íøka</literal> * <literal>vý¹ka</literal> na pozici
<literal>X,Y</literal>. Obrázek mù¾e být rozdìlen do rùzných èástí pro rùzné
fáze potenciometru (Napøíklad mù¾ete mít potenciometr pro nastavení hlasitosti,
jeho¾ dráha se barví ze zelené na èervenou, jak se jeho hodnota mìní od nejmen¹í
do nejvìt¹í.). <literal>hpotmeter</literal> mù¾e mít táhlo, které mù¾e být
vodorovnì ta¾eno. Význam parametrù:
</para>
<itemizedlist>
<listitem><para><literal>tlaèítko</literal> - obrázek, ktrý se pou¾ije pro
tlaèítko (musí mít tøi èásti pod sebou, stejnì jako v pøípadì tohoto
<link linkend="skin-button">tlaèítka</link>)
</para></listitem>
<listitem><para><literal>t¹íøka</literal>, <literal>tvý¹ka</literal> -
velikost tlaèítka
</para></listitem>
<listitem><para><literal>fáze</literal> - obrázek pou¾itý pro rùzné fáze
hpotmetru. Pokud ¾ádný obrázek nechcete, mù¾ete pou¾ít speciální hodnotu
<literal>NULL</literal>. Obrázek musí být rozdìlen svisle na
<literal>poèet_fází</literal> èástí takto:
</para>
<informalfigure>
<screen>
+------------+
| fáze #1 |
+------------+
| fáze #2 |
+------------+
...
+------------+
| fáze #n |
+------------+
</screen>
</informalfigure>
</listitem>
<listitem><para><literal>poèet_fází</literal> - poèet fází ulo¾ených v
obrázku <literal>fáze</literal>
</para></listitem>
<listitem><para><literal>výchozí</literal> - výchozí hodnota pro hpotmeter
(v rozsahu <literal>0</literal><literal>100</literal>)
</para></listitem>
<listitem><para><literal>X</literal>, <literal>Y</literal> - pozice pro hpotmeter
</para></listitem>
<listitem><para><literal>¹íøka</literal>, <literal>vý¹ka</literal> - ¹íøka a vý¹ka
<literal>hpotmeter</literal>u
</para></listitem>
<listitem><para><literal>zpráva</literal> - zpráva generovaná pøi zmìnì
hodnoty <literal>hpotmeter</literal>u
</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-potmeter"/>potmeter = fáze, poèet_fází, výchozí, X, Y, ¹íøka, vý¹ka, zpráva
</literal></term>
<listitem><para>
<literal>hpotmeter</literal> bez tlaèítka. (soudil bych, ¾e byl mínìn jako
otoèný, ale reaguje pouze na horizontální ta¾ení.) Popis parametrù je stejný
jako v <link linkend="skin-hpotmeter">hpotmeter</link>.
<literal>fáze</literal> mohou být <literal>NULL</literal>, ale je to vcelku
k nièemu, jeliko¾ nemù¾ete vidìt, jak je nastaven <literal>potmeter</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-font"/>font = soubor_fontu, id_fontu
</literal></term>
<listitem><para>
Definuje font. <literal>soubor_fontu</literal> je jméno souboru popisu fontu
s pøíponou <filename>.fnt</filename> (zde pøíponu nezadávejte).
<literal>id_fontu</literal> je pou¾it jako ukazatel na font
(viz <link linkend="skin-dlabel">dlabel</link>
a <link linkend="skin-slabel">slabel</link>). Definováno mù¾e být více ne¾ 25 fontù.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-slabel"/>slabel = X, Y, id_fontu, &quot;text&quot;
</literal></term>
<listitem><para>
Umístí statický popisek na pozici <literal>X,Y</literal>. <literal>text</literal>
je zobrazen fontem identifikovaným pomocí <literal>id_fontu</literal>. Text je
surový øetìzec (<literal>$x</literal> promìnné nefungují), který musí být uzavøen
ve dvojitých uvozovkách (ale znak &quot; nesmí být souèástí textu).
Popisek je zobrazen fontem identifikovaným pomocí <literal>id_fontu</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-dlabel"/>dlabel = X, Y, délka, zarovnání, id_fontu, &quot;text&quot;
</literal></term>
<listitem>
<para>
Umístí dynamický popisek na pozici <literal>X,Y</literal>. Popisek je
dynamický proto, ¾e je jeho text periodicky obnovován. Maximální délka
popisku je nastavena na <literal>délka</literal> (jeho vý¹kou je vý¹ka znaku).
Pokud je zobrazovaný text ¹ir¹í, pak bude rolován,
jinak bude zarovnán do urèeného prostoru podle hodnoty parametru
<literal>zarovnání</literal>: <literal>0</literal> je zarovnání vpravo,
<literal>1</literal> na støed, <literal>2</literal> vlevo.
</para>
<para>
Text k zobrazení je zadán parametrem <literal>text</literal>: Musí být uzavøen
do dvojitých uvozovek (ale znak &quot; nesmí být souèástí textu).
Popisek je zobrazen fontem identifikovaným pomocí <literal>id_fontu</literal>.
V textu mù¾ete pou¾ít tyto promìnné:
</para>
<informaltable>
<tgroup cols="2">
<thead>
<row><entry>Promìnná</entry><entry>Význam</entry></row>
</thead>
<tbody>
<row>
<entry>$1</entry>
<entry>èas pøehrávání ve formátu <emphasis>hh:mm:ss</emphasis></entry>
</row>
<row>
<entry>$2</entry>
<entry>èas pøehrávání ve formátu <emphasis>mmmm:ss</emphasis></entry>
</row>
<row>
<entry>$3</entry>
<entry>èas pøehrávání ve formátu <emphasis>hh</emphasis> (hodiny)</entry>
</row>
<row>
<entry>$4</entry>
<entry>èas pøehrávání ve formátu <emphasis>mm</emphasis> (minuty)</entry>
</row>
<row>
<entry>$5</entry>
<entry>èas pøehrávání ve formátu <emphasis>ss</emphasis> (sekundy)</entry>
</row>
<row>
<entry>$6</entry>
<entry>délka filmu ve formátu <emphasis>hh:mm:ss</emphasis></entry>
</row>
<row>
<entry>$7</entry>
<entry>délka filmu ve formátu <emphasis>mmmm:ss</emphasis></entry>
</row>
<row>
<entry>$8</entry>
<entry>èas pøehrávání ve formátu <emphasis>h:mm:ss</emphasis></entry>
</row>
<row>
<entry>$v</entry>
<entry>hlasitost ve formátu <emphasis>xxx.xx</emphasis>%</entry>
</row>
<row>
<entry>$V</entry>
<entry>hlasitost ve formátu <emphasis>xxx.xx</emphasis></entry>
</row>
<row>
<entry>$b</entry>
<entry>stereováha ve formátu <emphasis>xxx.xx</emphasis>%</entry>
</row>
<row>
<entry>$B</entry>
<entry>stereováha ve formátu <emphasis>xxx.xx</emphasis></entry>
</row>
<row>
<entry>$$</entry>
<entry>znak $</entry>
</row>
<row>
<entry>$a</entry>
<entry>znak podle typu audia (¾ádné: <literal>n</literal>,
mono: <literal>m</literal>, stereo: <literal>t</literal>)</entry>
</row>
<row>
<entry>$t</entry>
<entry>èíslo stopy (v playlistu)</entry>
</row>
<row>
<entry>$o</entry>
<entry>název souboru</entry>
</row>
<row>
<entry>$f</entry>
<entry>název souboru malými písmeny</entry>
</row>
<row>
<entry>$F</entry>
<entry>název souboru velkými písmeny</entry>
</row>
<row>
<entry>$T</entry>
<entry>znak podle typu datového proudu (soubor: <literal>f</literal>,
Video CD: <literal>v</literal>, DVD: <literal>d</literal>, URL: <literal>u</literal>)</entry>
</row>
<row>
<entry>$p</entry>
<entry>znak <keycap>p</keycap> (pokud pøehráváte soubor a font obsahuje
znak <keycap>p</keycap>)</entry>
</row>
<row>
<entry>$s</entry>
<entry>znak <keycap>s</keycap> character (pokud pøehráváte soubor a font obsahuje
znak <keycap>s</keycap>)</entry>
</row>
<row>
<entry>$e</entry>
<entry>znak <keycap>e</keycap> (pokud je pøehrávání pozastaveno a font obsahuje
znak <keycap>e</keycap>)</entry>
</row>
<row>
<entry>$x</entry>
<entry>¹íøka filmu</entry>
</row>
<row>
<entry>$y</entry>
<entry>vý¹ka filmu</entry>
</row>
<row>
<entry>$C</entry>
<entry>název pou¾itého kodeku</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</listitem>
</varlistentry>
</variablelist>
<note><para>
Promìnné <literal>$a, $T, $p, $s</literal> a <literal>$e</literal>
vracejí znaky, které by se mìly zobrazit jako speciální symboly (napøíklad
<keycap>e</keycap> je symbol pro pauzu, který obvykle vypadá asi takto
||). Mìli byste mít font pro normální znaky a jiný font pro
symboly. Pro více informací viz sekci
<link linkend="skin-fonts-symbols">symboly</link>.
</para></note>
</sect2>
<sect2 id="skin-file-subwindow">
<title>Ovládací panel</title>
<para>
Následující vstupy mohou být pou¾ity v bloku
'<literal>window = sub</literal>' . . . '<literal>end</literal>'.
</para>
<variablelist>
<varlistentry>
<term><literal>
<anchor id="skin-sub-base"/>base = obrázek, X, Y, ¹íøka, vý¹ka
</literal></term>
<listitem><para>
Obrázek, který bude zobrazen v oknì. Okno se zobrazí na pozici zadané
souøadnicemi <literal>X,Y</literal> na obrazovce (<literal>0,0</literal> je
levý horní roh). Mù¾ete nastavit <literal>-1</literal> pro støed a <literal>-2</literal>
pro vpravo (<literal>X</literal>) a dole (<literal>Y</literal>). Okno bude
stejnì velké jako obrázek. <literal>¹íøka</literal> a <literal>vý¹ka</literal>
udávají velikost okna; jsou volitelné (pokud chybí, má okno rozmìry shodné
s obrázkem).
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-background"/>background = R, G, B
</literal></term>
<listitem><para>
Umo¾òuje nastavit barvu pozadí. To je u¾iteèné, pokud je obrázek men¹í ne¾
okno. <literal>R</literal>, <literal>G</literal> a <literal>B</literal>
oznaèují èervenou, zelenou a modrou slo¾ku barvy (ka¾dá z nich je dekadická
hodnota 0 a¾ 255).
</para></listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="skin-file-menu">
<title>Nabídka</title>
<para>
Jak ji¾ bylo døíve øeèeno, nabídka je zobrazena pomocí dvou obrázkù. Normální
polo¾ky nabídky jsou brány z obrázku urèeného polo¾kou <literal>base</literal>,
zatímco aktuálnì zvolený vstup je brán z obrázku urèeného polo¾kou
<literal>selected</literal>. Musíte definovat pozici a rozmìr ka¾dé polo¾ky
nabídky.
</para>
<para>
Následující vstupy mohou být pou¾ity v bloku
'<literal>window = menu</literal>'. . .'<literal>end</literal>'.
</para>
<variablelist>
<varlistentry>
<term><literal>
<anchor id="skin-menu-base"/>base = obrázek
</literal></term>
<listitem><para>
Obrázek normálních polo¾ek nabídky.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-selected"/>selected = obrázek
</literal></term>
<listitem><para>
Obrázek nabídky kde jsou v¹echny polo¾ky vybrány.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-menu"/>menu = X, Y, ¹íøka, vý¹ka, zpráva
</literal></term>
<listitem><para>
Definuje pozici <literal>X,Y</literal> a rozmìr polo¾ky nabídky v obrázku.
<literal>zpráva</literal> je zpráva, generovaná jakmile je uvolnìno tlaèítko
my¹i nad polo¾kou.
</para></listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
<sect1 id="skin-fonts">
<title>Fonty</title>
<para>
Jak jsme ji¾ zmínili v sekci o èástech skinu, font je definován obrázkem a
souborem popisu. Mù¾ete rozmístit znaky v obrázku libovolnì, ale ujistìte se, ¾e
je jejich velikost a pozice je uvedena v souboru popisu pøesnì.
</para>
<para>
Soubor popisu fontu (s pøíponou <filename>.fnt</filename>) mù¾e obsahovat
øádky s komentáøem zaèínající '<literal>;</literal>'. Soubor musí obsahovat
øádek ve formì
<anchor id="skin-font-image"/>
<programlisting>image = <replaceable>obrázek</replaceable></programlisting>
Kde <literal><replaceable>obrázek</replaceable></literal> je název obrázku
pou¾itého pro font (nemusíte zadávat pøíponu).
<anchor id="skin-font-char"/>
<programlisting>&quot;char&quot; = X, Y, ¹íøka, vý¹ka</programlisting>
Zde <literal>X</literal> a <literal>Y</literal> udávají pozici
<literal>char</literal> znaku v obrázku (<literal>0,0</literal> je levý
horní roh). <literal>¹íøka</literal> a <literal>vý¹ka</literal> jsou
rozmìry znaku v pixelech.
</para>
<para>
Tento pøíklad definuje znaky A, B, C s pou¾ítím <filename>font.png</filename>.
<programlisting>
; Zde mù¾e být jen &quot;font&quot; místo &quot;font.png&quot;.
image = font.png
; Tøi znaky pro ilustraci staèí :-)
&quot;A&quot; = 0,0, 7,13
&quot;B&quot; = 7,0, 7,13
&quot;C&quot; = 14,0, 7,13
</programlisting>
</para>
<sect2 id="skin-fonts-symbols">
<title>Symboly</title>
<para>
Nìkteré znaky mají speciální význam, jsou-li vráceny nìkterou z promìnných
pou¾itých v <link linkend="skin-dlabel">dlabel</link>. Tyto znaky mají být
zobrazovány jako symboly, tak¾e mohou být zobrazeny vìci jako pìkné DVD logo
místo znaku '<literal>d</literal>' pro DVD datový proud.
</para>
<para>
Následující tabulka obsahuje znaky, které mohou být pou¾ity k zobrazení
symbolù (a tudí¾ vy¾adují odli¹ný font).
</para>
<informaltable>
<tgroup cols="2">
<thead>
<row><entry>Znak</entry><entry>Symbol</entry></row>
</thead>
<tbody>
<row><entry><keycap>p</keycap></entry><entry>play</entry></row>
<row><entry><keycap>s</keycap></entry><entry>stop</entry></row>
<row><entry><keycap>e</keycap></entry><entry>pause</entry></row>
<row><entry><keycap>n</keycap></entry><entry>bez zvuku</entry></row>
<row><entry><keycap>m</keycap></entry><entry>mono zvuk</entry></row>
<row><entry><keycap>t</keycap></entry><entry>stereo zvuk</entry></row>
<row><entry><keycap>f</keycap></entry><entry>datový proud je soubor</entry></row>
<row><entry><keycap>v</keycap></entry><entry>datový proud je Video CD</entry></row>
<row><entry><keycap>d</keycap></entry><entry>datový proud je DVD</entry></row>
<row><entry><keycap>u</keycap></entry><entry>datový proud je URL</entry></row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>
<sect1 id="skin-gui">
<title>GUI zprávy</title>
<para>
Tyto zprávy mohou být generovány tlaèítky, potenciometry a polo¾kami
nabídky.
</para>
<note><para>
Nìkteré zpráva nemusí pracovat podle oèekávání (nebo vùbec).
Jak víte, GUI je ve vývoji.
</para></note>
<variablelist>
<title>Ovládání pøehrávání:</title>
<varlistentry>
<term><emphasis role="bold">evNext</emphasis></term>
<listitem><para>
Skoèí na následující stopu v playlistu.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPause</emphasis></term>
<listitem><para>
Tvoøí pøepínaè spoleènì s <literal>evPlaySwitchToPause</literal>. Ty mohou
být pou¾ity k vytvoøení tradièního play/pauza tlaèítka. Obì zprávy by mìly
být pøiøazeny tlaèítkùm umístìným na stejné pozici. Tato zpráva pozastaví
pøehrávání a zobrazen bude obrázek pro <literal>evPlaySwitchToPause</literal>
talèítko (pro indikaci, ¾e tlaèítko mù¾e být stisknuto pro obnovení pøehrávání).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlay</emphasis></term>
<listitem><para>
Zahájí pøehrávání.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlaySwitchToPause</emphasis></term>
<listitem><para>
Protiklad <literal>evPauseSwitchToPlay</literal>. Tato zpráva zahájí pøehrávání
a zobrazí obrázek pro tlaèítko <literal>evPauseSwitchToPlay</literal>
(pro indikaci, ¾e tlaèítko mù¾e být stisknuto pro pozastavení pøehrávání).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPrev</emphasis></term>
<listitem><para>
Skoèí na pøedchozí stopu v playlistu.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evStop</emphasis></term>
<listitem><para>
Zastaví pøehrávání.
</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Pøevíjení:</title>
<varlistentry>
<term><emphasis role="bold">evBackward10sec</emphasis></term>
<listitem><para>
Pøevine zpìt o 10 sekund.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evBackward1min</emphasis></term>
<listitem><para>
Pøevine zpìt o 1 minutu.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evBackward10min</emphasis></term>
<listitem><para>
Pøevine zpìt o 10 minut.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evForward10sec</emphasis></term>
<listitem><para>
Pøevine vpøed o 10 sekund.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evForward1min</emphasis></term>
<listitem><para>
Pøevine vpøed o 1 minutu.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evForward10min</emphasis></term>
<listitem><para>
Pøevine vpøed o 10 minut.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetMoviePosition</emphasis></term>
<listitem><para>
Pøevine na danou pozici (mù¾e být pøiøazeno potenciometru; pou¾ije se
relativní hodnota (0-100%) potenciometru).
</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Ovládání videa:</title>
<varlistentry>
<term><emphasis role="bold">evHalfSize</emphasis></term>
<listitem><para>
Nastaví velikost okna filmu na polovièní velikost.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evDoubleSize</emphasis></term>
<listitem><para>
Nastaví velikost okna filmu na dvojnásobnou velikost.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evFullScreen</emphasis></term>
<listitem><para>
Pøepíná do celoobrazovkového re¾imu a zpìt.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evNormalSize</emphasis></term>
<listitem><para>
Nastaví velikost okna na normální velikost.
</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Ovládání zvuku:</title>
<varlistentry>
<term><emphasis role="bold">evDecAudioBufDelay</emphasis></term>
<listitem><para>
Sní¾í zpo¾dìní vyrovnávací pamìti zvuku.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evDecBalance</emphasis></term>
<listitem><para>
Sní¾í hodnotu stereováhy.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evDecVolume</emphasis></term>
<listitem><para>
Sní¾í hlasitost.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evIncAudioBufDelay</emphasis></term>
<listitem><para>
Zvý¹í zpo¾dìní vyrovnávací pamìti zvuku.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evIncBalance</emphasis></term>
<listitem><para>
Zvý¹í hodnotu stereováhy.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evIncVolume</emphasis></term>
<listitem><para>
Zvý¹í hlasitost.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evMute</emphasis></term>
<listitem><para>
Vypne/zapne zvuk.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetBalance</emphasis></term>
<listitem><para>
Nastaví stereováhu (mù¾e být sdru¾eno s potenciometrem; pou¾ije se
relativní hodnota potenciometru (0-100%)).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetVolume</emphasis></term>
<listitem><para>
Nastaví hlasitost (mù¾e být sdru¾eno s potenciometrem; pou¾ije se
relativní hodnota potenciometru (0-100%)).
</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Rùzné:</title>
<varlistentry>
<term><emphasis role="bold">evAbout</emphasis></term>
<listitem><para>
Otevøe okno o aplikaci.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evDropSubtitle</emphasis></term>
<listitem><para>
Vypne aktuálnì pou¾ité titulky.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evEqualizer</emphasis></term>
<listitem><para>
Zapne/vypne ekvalizér.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evExit</emphasis></term>
<listitem><para>
Ukonèí program.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evIconify</emphasis></term>
<listitem><para>
Minimalizuje okno.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoad</emphasis></term>
<listitem><para>
Otevøe soubor (otevøením okna prohlí¾eèe souborù, kde si soubor vyberete).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoadPlay</emphasis></term>
<listitem><para>
Stejné jako <literal>evLoad</literal>, ale navíc se okam¾itì spustí pøehrávání
otevøeného souboru.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoadSubtitle</emphasis></term>
<listitem><para>
Otevøe soubor s titulky (pomocí prohlí¾eèe souborù)
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoadAudioFile</emphasis></term>
<listitem><para>
Otevøe soubor se zvukem (pomocí prohlí¾eèe souborù)
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evNone</emphasis></term>
<listitem><para>
Prázdná zpráva, nemá ¾ádný efekt (mo¾ná s výjimkou CVS verzí :-)).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlaylist</emphasis></term>
<listitem><para>
Otevøe/zavøe okno playlistu.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlayDVD</emphasis></term>
<listitem><para>
Zkusí otevøít disk v zadané DVD-ROM mechanice.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlayVCD</emphasis></term>
<listitem><para>
Zkusí otevøít disk v zadané CD-ROM mechanice.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPreferences</emphasis></term>
<listitem><para>
Otevøe okno pøedvoleb.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetAspect</emphasis></term>
<listitem><para>
Nastaví pomìr stran zobrazovaného obrázku.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetURL</emphasis></term>
<listitem><para>
Zobrazí dialogové okno pro volbu URL.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSkinBrowser</emphasis></term>
<listitem><para>
Otevøe okno volièe skinù.
</para></listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="skin-quality">
<title>Tvorba kvalitních skinù</title>
<para>
Co kdy¾ jste si pøeèetli o skinech pro GUI
<application>MPlayer</application>u, odvedli to nejlep¹í s
<application>Gimp</application>em a chcete nám poslat svùj skin?
Pøeètìte si pár návodù, abyste se vyhnuli bì¾ným omylùm a vytvoøili
vysoce kvalitní skin.
</para>
<para>
Chceme, aby skiny, které pøidáme do na¹eho repozitáøe odpovídaly
urèitým standardùm kvality. Je zde také mnoho vìcí, které mù¾ete
udìlat, abyste nám ulehèili práci.
</para>
<para>
Za pøíklad si vemte skin <systemitem>Blue</systemitem>.
Ten splòuje v¹echna kritéria od verze 1.5.
</para>
<itemizedlist>
<listitem><para>Ke ka¾dému skinu by mìl být soubor
<filename>README</filename>, obsahující informace o vás jako autorovi,
o copyrightu a licenci a v¹e ostatní, co chcete dodat.
Chcete-li mít changelog, tento soubor je dobrým místem.
</para></listitem>
<listitem><para>Mel by tu být soubor <filename>VERSION</filename>
neobsahující nic jiného, ne¾ èíslo verze na jediném øádku (napø. 1.0).
</para></listitem>
<listitem><para>Horizontální a vertikální ovládání (posuvníky jako hlasitost
nebo pozice) by mìly mít støed knoflíku správnì zarovnán na stred posuvníku.
Mìlo by být mo¾né posouvat knoflík na oba konce posuvníku, ale ne za nì.
</para></listitem>
<listitem><para>Jednotlivé souèásti skinu by mìly mít správné rozmìry
deklarované v souboru skin. Pokud to tak není, mù¾ete kliknout mimo napø.
tlaèítko a to se stejnì stiskne, nebo kliknout na jeho plochu a nestisknout
jej.
</para></listitem>
<listitem><para>Soubor <filename>skin</filename> by mìl být srovnán na znaky
a neobsahovat tabulátory. Srovnán na znaky znamená, ¾e se èísla budou rovnat
do úhledných sloupcù.
</para></listitem>
</itemizedlist>
</sect1>
</appendix>