view DOCS/xml/hu/skin.xml @ 32910:f34e21c5dc2f

Improve documentation on dlabel. Throughout the skin documentation 'width' is used, so use it instead of 'length' for the dlabel documentation, too. Additionally, the German translation has been revised.
author ib
date Wed, 02 Mar 2011 13:30:44 +0000
parents 3ce788bd776d
children 6fd8caca0f9c
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r31032 -->
<appendix id="skin">
<title><application>MPlayer</application> skin formátum</title>

<sect1 id="skin-overview">
<title>Áttekintés</title>

<!-- ********** -->

<sect2 id="skin-overview-components">
<title>Skin komponensek</title>

<para>
A Skin-ek eléggé szabad formátumúak (nem mint például a
<application>Winamp</application>/<application>XMMS</application>,
fix formátumú skin-jei), tehát csak rajtad múlik, hogy valami
igazán nagyot alkoss.
</para>

<para>
Jelenleg négy ablak van, amit dekorálni kell: a
<link linkend="skin-file-main">fő ablak</link>, az
<link linkend="skin-file-subwindow">alablak</link>, a
<link linkend="skin-file-main">playbar</link> és a
<link linkend="skin-file-menu">skin menü</link> (ami jobb kattintással
aktiválható).

<itemizedlist>
<listitem>
  <para>
  A <emphasis role="bold">fő ablak</emphasis> és/vagy a
  <emphasis role="bold">playbar</emphasis> az, ahol vezérelheted az
  <application>MPlayer</application>t. Az ablak háttere egy kép.
  Ebbe az ablakba különböző elemeket lehet (és kell) tenni:
  <emphasis>gombok</emphasis>, <emphasis>potméterek</emphasis> (csúszkák)
  és <emphasis>címkék</emphasis>.
  Minden egyes elemnek meg kell adnod a pozícióját és a méretét.
  </para>

  <para>
  Egy <emphasis role="bold">gomb</emphasis>nak három állása van (lenyomott,
  felengedett, letiltott), így a képe függőlegesen három részre van osztva.
  Lásd a <link linkend="skin-button">gomb</link> elemet a részletekért.
  </para>

  <para>
  Egy <emphasis role="bold">potmeter</emphasis>nek (főként a kereső sáv és a
  hangerő/balansz állító) bármennyi fázisa lehet a képének egymás alatti
  tetszőleges feldarabolásával. Lásd a
  <link linkend="skin-hpotmeter">hpotmeter</link>t és
  <link linkend="skin-potmeter">potmeter</link>t a részletekért.
  </para>

  <para>
  A <emphasis role="bold">címkék</emphasis> egy kicsit különlegesek: A
  megrajzolásukhoz szükséges karaktereket egy kép fájlból nyerjük és
  a képen lévő karaktereket egy
  <link linkend="skin-fonts">betű leíró fájl</link> írja le.
  Ez utóbbi egy sima szöveges fájl, ami megadja minden egyes betű
  x, y pozícióját és méretét a képen (a kép fájl és a hozzátartozó
  betű leíró fájl <emphasis>együtt</emphasis> alkot egy betűtípust).
  Lásd a <link linkend="skin-dlabel">dlabel</link>t
  és az <link linkend="skin-slabel">slabel</link>t a részletekért.
  </para>

  <note><para>
  Az összes kép lehet teljes transzparens is, amint az a
  <link linkend="skin-overview-formats">kép formátumokról</link> szóló
  részben le van írva. Ha az X szerver nem támogatja az XShape kiterjesztést,
  a transzparensként megjelölt részek feketék lesznek. Ha használni
  akarod ezt a tulajdonságot, a fő ablak háttérképének 8-cal oszthatónak
  kell lennie.
  </para></note>
</listitem>

<listitem><para>
  Az <emphasis role="bold">alablak</emphasis> az, ahol a film megjelenik. Egy
  megadott képet tud megjeleníteni, ha nincs film betöltve (elég unalmas egy
  üres ablak :-)) <emphasis role="bold">Megjegyzés:</emphasis> a transzparens
  kép <emphasis role="bold">nem megengedett</emphasis> itt.
</para></listitem>

<listitem>
  <para>
  A <emphasis role="bold">skin menü</emphasis> csak az
  <application>MPlayer</application> vezérlésének egy módja menüpontok
  segítségével. Két kép kell a menühöz: az egyik a legjobb kép, ami a
  menüt mutatja normál állapotában, a másik a kiválasztott pont
  megjelenítésére lesz felhasználva. Ha kinyitod a menüt, az első kép
  látszódik. Ha az egeret az egyik menüpont fölé viszed, az aktuálisan
  kiválasztott pont bemásolódik a második képről az egér mutató alatti
  területre (a második képet soha sem lehet látni egészében).
  </para>
  <para>
  Egy menüpontot a képen lévő poziciója és a mérete határoz meg (lásd a
  <link linkend="skin-file-menu">skin menü</link> részt).
  </para>
</listitem>
</itemizedlist>
</para>

<para>
Van egy fontos dolog, amiről eddig nem beszéltünk: a gombokhoz, potméterekhez
és menüpontokhoz tartozóan az <application>MPlayer</application> tudnia kell,
hogy mit csináljon, ha rákattintanak. Ez <link linkend="skin-gui">üzenetekkel</link>
(eseményekkel) van megvalósítva. Minden elemhez meg kell adnod, hogy milyen
üzenetet generál, amikor kattintanak rá.
</para>
</sect2>

<sect2 id="skin-overview-formats">
<title>Képformátumok</title>

<para>A képeknek truecolor-os (24 vagy 32 bpp) PNG-knek kell lenniük.</para>
<para>
A fő ablakban és a playbar-on (lásd lejjebb) használhatsz transzparens képeket:
Az #FF00FF (bíborvörös) színnel feltöltött területek teljesen
transzparensek lesznek, ha az <application>MPlayer</application>-rel
nézed. Ez azt jelenti, hogy formázott ablakjaid is lehetnek, ha az X
szerverednek van XShape kiterjesztése.
</para>
</sect2>

<!-- ********** -->

<sect2 id="skin-files">
<title>Fájlok</title>

<para>
A következő fájlokra lesz szükséges, hogy el tudj készíteni egy skin-t:
<itemizedlist>
<listitem><para>
  A konfigurációs fájl, aminek <link linkend="skin-file">skin</link> a neve,
  megmondja az <application>MPlayer</application>nek, hogyan rakja össze a
  skin különböző részeit és hogy mit tegyen ha valahol kattintanak az ablakban.
</para></listitem>
<listitem><para>
  A fő ablak háttérképe.
</para></listitem>
<listitem><para>
  A fő ablakban lévő elemek képe (beleértve egy vagy több betű leíró fájlt,
  ami a címkék megrajzolásához kell).
</para></listitem>
<listitem><para>
  Az alablakban megjelenítendő kép (opcionális).
</para></listitem>
<listitem><para>
  Két kép a skin menünek (csak akkor szükséges, ha menüt akarsz csinálni).
</para></listitem>
</itemizedlist>
  A skin konfigurációs fájl kivételével a többi fájlt úgy nevezed el, ahogy
  csak akarod (de jegyezd meg, hogy a betű leíró fájlnak
  <filename>.fnt</filename> kiterjesztéssel kell rendelkeznie).
</para>
</sect2>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="skin-file">
<title>A skin fájl</title>

<para>
Amint fentebb már említettem, ez a skin konfigurációs fájl. Sor-orientált;
a megjegyzést tartalmazó sorok egy '<literal>;</literal>' karakterrel kezdődnek
(csak szóközök és tab-ok lehetnek a '<literal>;</literal>' előtt).
</para>

<para>
A fájl szekciókból áll. Minden szekció a skin egy alkalmazását írja le a
következő formában:
<programlisting>
section = <replaceable>szekció neve</replaceable>
.
.
.
end
</programlisting>
</para>

<para>
Jelenleg csak egy alkalmazás van, vagyis csak egy szekciót kell készítened:
a neve <emphasis role="bold">movieplayer</emphasis>.
</para>

<para>
Ebben a szekcióban minden ablakot egy blokk ír le a következő formában:
<programlisting>
window = <replaceable>ablak neve</replaceable>
.
.
.
end
</programlisting>
</para>

<para>
Ahol az <replaceable>ablak neve</replaceable> ezen karakterláncok valamelyike lehet:
<itemizedlist>
<listitem><para>
  <emphasis role="bold">main</emphasis> - a főablak esetében
</para></listitem>
<listitem><para>
  <emphasis role="bold">sub</emphasis> - az alablak esetében
</para></listitem>
<listitem><para>
  <emphasis role="bold">menu</emphasis> - a skin menü esetében
</para></listitem>
<listitem><para>
  <emphasis role="bold">playbar</emphasis> - a playbar esetében
</para></listitem>
</itemizedlist>
</para>

<para>
(Az alablak és menü blokkok opcionálisak - nem kötelező menüt készítened
vagy kidekorálni az alablakot.)
</para>

<para>
Egy ablak blokkon belül az ablak minden elemét definiálhatod, egyet egy
sorban, ebbe a formában:
<programlisting>item = parameter</programlisting>
Ahol az <literal>item</literal> egy karakterlánc, ami azonosítja az adott
típusú GUI elemet, a <literal>parameter</literal> pedig egy numerikus vagy
szöveges érték (vagy értékek listája vesszővel elválasztva).
</para>

<para>
A fentieket összerakva a teljes fájl valahogy így néz ki:
<programlisting>
section = movieplayer
  window = main
  ; ... főablak elemei ...
  end

  window = sub
  ; ... alablak elemei ...
  end

  window = menu
  ; ... menü elemei ...
  end

  window = playbar
  ; ... playbar elemei ...
  end
end
</programlisting>
</para>

<para>
Egy kép fájl nevét a hozzá vezető útvonal nélkül kell megadni - a képeknek
a <filename class="directory">skins</filename> könyvtárban kell lenniük.
A fájl kiterjesztését megadhatod (de nem kötelező). Ha a fájl nem létezik,
az <application>MPlayer</application> megpróbálja betölteni a
<filename>&lt;filename&gt;.&lt;ext&gt;</filename> fájlt, ahol <literal>png</literal>
és <literal>PNG</literal> kerül az <filename>&lt;ext&gt;</filename> helyére
(ebben a sorrendben). Az első megtalált fájlt fogja használni.
</para>

<para>
Egy példa a tisztánlátáshoz. Tegyük fel, hogy van egy <filename>main.png</filename>
nevű fájlod, amit a fő ablakhoz használsz: <programlisting>base = main, -1, -1</programlisting>
Az <application>MPlayer</application> megpróbálja betölteni a <filename>main</filename>,
<filename>main.png</filename>, <filename>main.PNG</filename> fájlokat.
</para>

<para>
Végül pár szó a pozícionálásról. A fő ablak és az alablak a képernyő különböző
sarkaiba helyezhető az <literal>X</literal> és <literal>Y</literal> koordináták
megadásával. A <literal>0</literal> fent vagy bal oldalt van, a
<literal>-1</literal> középen és a <literal>-2</literal> jobb oldalt vagy lent,
ahogy az itt is látható:
<informalfigure>
<screen>
(0, 0)----(-1, 0)----(-2, 0)
  |          |          |
  |          |          |
(0,-1)----(-1,-1)----(-2,-1)
  |          |          |
  |          |          |
(0,-2)----(-1,-2)----(-2,-2)
</screen>
</informalfigure>
</para>

<!-- ********** -->

<sect2 id="skin-file-main">
<title>Fő ablak és a playbar</title>

<para>
A következő bejegyzések használhatóak a
'<literal>window = main</literal>' ... '<literal>end</literal>',
és a '<literal>window = playbar</literal>' ... '<literal>end</literal>'
blokkokban.
</para>

<variablelist>
<varlistentry>
  <term><literal>
  <anchor id="skin-main-base"/>base = image, X, Y
  </literal></term>
  <listitem>
  <para>
  Megadhatod vele a fő ablakban használt háttérképet.
  Az ablak a megadott <literal>X, Y</literal> pozícióban fog megjelenni
  a képernyőn. Az ablak mérete a kép méretével lesz azonos.
  </para>
  <note><para>
  Ezek a koordináták jelenleg nem működnek a megjelenítő ablak esetében.
  </para></note>
  <warning><para>A kép transzparens részei (#FF00FF színű) feketeként jelenik meg
  az XShape kiterjesztés nélküli X szerverek esetében. A kép szélességének 8-cal
  oszthatónak kell lennie.</para></warning>
  </listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-button"/>button = image, X, Y, width, height, message
  </literal></term>
  <listitem>
  <para>
  Egy <literal>width</literal> * <literal>height</literal> méretű gomb
  megjelenítése az <literal>X, Y</literal> pozícióban. A megadott
  <literal>message</literal> üzenet akkor generálódik, amikor a gombot
  megnyomják. Az <literal>image</literal> által megadott képnek három
  részt kell tartalmaznia egymás alatt (a gomb állapotainak megfelelően), így:
  </para>
  <informalfigure>
  <screen>
+-------------+
|  benyomott  |
+-------------+
| felengedett |
+-------------+
|  letiltott  |
+-------------+<!--
  --></screen>
  </informalfigure>
  </listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-decoration"/>decoration = enable|disable
  </literal></term>
  <listitem>
  <para>
  Engedélyezi vagy letiltja a főablakban az ablakkezelő dekorációját.
  Alapértelmezetten <emphasis role="bold">disable</emphasis>.
  </para>
  <note><para>
  Ez nem működik a megjelenítő ablakban, nincs rá szükség.
  </para></note>
  </listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-hpotmeter"/>hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message
  </literal></term>
  <listitem><para>
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-vpotmeter"/>vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message
  </literal></term>
  <listitem><para>
  Egy vízszintes (hpotmeter) vagy függőleges (vpotmeter) potméter megjelenítése
  <literal>width</literal> * <literal>height</literal> méretben az
  <literal>X, Y</literal> pozícióban. A kép több különböző részre osztható a
  potméter különböző fázisainak megfelelően (például lehet egy pot-od a hangerő
  szabályozásához, ami zöldből pirosba vált, ahogy az értéke változik a minimumtól
  a maximumig). A <literal>hpotmeter</literal>-nek lehet egy gombja is, amit
  vízszintesen lehet húzni. A paraméterek:
  <itemizedlist>
  <listitem><para>
    <literal>button</literal> - a gombként használt kép
    (három részt kell tartalmaznia egymás alatt, mint a
    <link linkend="skin-button">gomb</link> esetében)
  </para></listitem>
  <listitem><para>
    <literal>bwidth</literal>, <literal>bheight</literal> - a gomb
    mérete
  </para></listitem>
  <listitem><para>
    <literal>phases</literal> - a hpotmeter különböző fázisaiban
    használt kép neve. Speciális értékként a <literal>NULL</literal> is
    használható, ha nem akarsz ilyen képet. A képet függőlegesen
    <literal>numphases</literal> részre kell felosztani így:
    <informalfigure><screen>
+------------+
|  1. fázis  |
+------------+
|  2. fázis  |
+------------+
     ...
+------------+
|  n. fázis  |
+------------+<!--
    --></screen></informalfigure>
  </para></listitem>
  <listitem><para>
    <literal>numphases</literal> - a <literal>phases</literal> képen
    lévő fázisok száma
  </para></listitem>
  <listitem><para>
    <literal>default</literal> - a hpotmeter alapértelmezett értéke
    (<literal>0</literal> és <literal>100</literal> között)
  </para></listitem>
  <listitem><para>
    <literal>X</literal>, <literal>Y</literal> - a hpotmeter pozíciója
  </para></listitem>
  <listitem><para>
    <literal>width</literal>, <literal>height</literal> - a
    <literal>hpotmeter</literal> szélessége és magassága
  </para></listitem>
  <listitem><para>
    <literal>message</literal> - az üzenet, ami a
    <literal>hpotmeter</literal> értékének megváltozásakor generálódik
  </para></listitem>
  </itemizedlist>
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, width, height, message
  </literal></term>
  <listitem><para>
  Egy <literal>hpotmeter</literal> gomb nélkül. (Gondolom a megfordítása volt az
  eredeti cél, de csak a vízszintes vonszolásra reagál.) A paraméterek leírását
  lásd a <link linkend="skin-hpotmeter">hpotmeter</link>-nél.
  A <literal>phases</literal> lehet <literal>NULL</literal>, de ez eléggé haszontalan,
  mivel akkor nem látod, hogy a <literal>potmeter</literal> hova van állítva.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-font"/>font = fontfile, fontid
  </literal></term>
  <listitem><para>
  Egy betűt definiál. A <literal>fontfile</literal> a betű leíró fájl neve egy
  <filename>.fnt</filename> kiterjesztéssel (a kiterjesztést ne add meg itt).
  A <literal>fontid</literal>-t a betűre történő hivatkozásokhoz lehet használni
  (lásd <link linkend="skin-dlabel">dlabel</link> és
  <link linkend="skin-slabel">slabel</link>). 25 betűt lehet definiálni.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-slabel"/>slabel = X, Y, fontid, "text"
  </literal></term>
  <listitem><para>
  Egy statikus címkét tesz ki az <literal>X, Y</literal> pozícióba. A
  <literal>text</literal> szöveget jeleníti meg a <literal>fontid</literal>-vel
  azonosított betűtípussal. A szöveg egyszerű karakterlánc (az <literal>$x</literal>
  változók nem működnek) amit dupla idézőjelek közé kell írni (de a " karakter
  nem lehet a szöveg része). A címke a <literal>fontid</literal>-vel
  azonosított betűtípussal jelenik meg.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-dlabel"/>dlabel = X, Y, width, align, fontid, "text"
  </literal></term>
  <listitem>
  <para>
  Egy dinamikus címkét tesz ki az <literal>X, Y</literal> pozícióba. A
  címke azért dinamikus, mert a szövege periódikusan frissül. A címke
  maximum hosszát a <literal>width</literal> szabályozza (a magassága
  egy karakter magasságával egyezik meg). Ha a megjelenítendő szöveg
  szélesebb ennél, scrollozva lesz,
  különben az <literal>align</literal> paraméter által megadott módon
  pozícionálódik: <literal>0</literal> jobbra, <literal>1</literal>
  középre, <literal>2</literal> balra igazítva.
  </para>
  <para>
  A megjelenítendő szöveget a <literal>text</literal> adja meg: dupla
  idézőjelek közé kell írni (de a " karakter nem lehet része a
  szövegnek). A címke a <literal>fontid</literal> által meghatározott
  betűtípussal jelenik meg. A szövegben a következő változókat használhatod:
  </para>

  <informaltable>
  <tgroup cols="2">
  <thead>
    <row><entry>Változó</entry><entry>Jelentés</entry></row>
  </thead>
  <tbody>
  <row>
    <entry>$1</entry>
    <entry>lejátszási idő <emphasis>hh:mm:ss</emphasis> formátumban</entry>
  </row>
  <row>
    <entry>$2</entry>
    <entry>lejátszási idő <emphasis>mmmm:ss</emphasis> formátumban</entry>
  </row>
  <row>
    <entry>$3</entry>
    <entry>lejátszási idő <emphasis>hh</emphasis> formátumban (órák)</entry>
  </row>
  <row>
    <entry>$4</entry>
    <entry>lejátszási idő <emphasis>mm</emphasis> formátumban (percek)</entry>
  </row>
  <row>
    <entry>$5</entry>
    <entry>lejátszási idő <emphasis>ss</emphasis> formátumban (másodpercek)</entry>
  </row>
  <row>
    <entry>$6</entry>
    <entry>film hossza <emphasis>hh:mm:ss</emphasis> formátumban</entry>
  </row>
  <row>
    <entry>$7</entry>
    <entry>film hossza <emphasis>mmmm:ss</emphasis> formátumban</entry>
  </row>
  <row>
    <entry>$8</entry>
    <entry>film hossza <emphasis>h:mm:ss</emphasis> formátumban</entry>
  </row>
  <row>
    <entry>$v</entry>
    <entry>hangerő <emphasis>xxx.xx</emphasis>% formátumban</entry>
  </row>
  <row>
    <entry>$V</entry>
    <entry>hangerő <emphasis>xxx.xx</emphasis> formátumban</entry>
  </row>
  <row>
    <entry>$b</entry>
    <entry>balansz <emphasis>xxx.xx</emphasis>% formátumban</entry>
  </row>
  <row>
    <entry>$B</entry>
    <entry>balansz <emphasis>xxx.xx</emphasis> formátumban</entry>
  </row>
  <row>
    <entry>$$</entry>
    <entry>az $ karakter</entry>
  </row>
  <row>
    <entry>$a</entry>
    <entry>egy karakter az audió típusnak megfelelően (nincs: <literal>n</literal>,
    mono: <literal>m</literal>, sztereo: <literal>t</literal>)</entry>
  </row>
  <row>
    <entry>$t</entry>
    <entry>sáv száma (a lejátszási listában)</entry>
  </row>
  <row>
    <entry>$o</entry>
    <entry>fájlnév</entry>
  </row>
  <row>
    <entry>$f</entry>
    <entry>fájlnév kisbetűsen</entry>
  </row>
  <row>
    <entry>$F</entry>
    <entry>fájlnév nagybetűsen</entry>
  </row>
  <row>
    <entry>$T</entry>
    <entry>
    egy karakter a folyam típusnak megfelelően (file: <literal>f</literal>,
    Video CD: <literal>v</literal>, DVD: <literal>d</literal>,
    URL: <literal>u</literal>)
    </entry>
  </row>
  <row>
    <entry>$p</entry>
    <entry>a <keycap>p</keycap> karakter (ha a film lejátszás alatt van és a
    betűtípusban van <keycap>p</keycap> karakter)</entry>
  </row>
  <row>
    <entry>$s</entry>
    <entry>az <keycap>s</keycap> karakter (ha a film meg van állítva movie és
    a betűtípusban van <keycap>s</keycap> karakter)</entry>
  </row>
  <row>
    <entry>$e</entry>
    <entry>az <keycap>e</keycap> karakter (ha a lejátszás szünetel és a
    betűtípusban van <keycap>e</keycap> karakter)</entry>
  </row>
  <row>
    <entry>$x</entry>
    <entry>film szélessége</entry>
  </row>
  <row>
    <entry>$y</entry>
    <entry>film magassága</entry>
  </row>
  <row>
    <entry>$C</entry>
    <entry>használt codec neve</entry>
  </row>
  </tbody>
  </tgroup>
  </informaltable>

  <note><para>
  Az <literal>$a, $T, $p, $s</literal> és <literal>$e</literal>
  változók mind karakterekkel térnek vissza, amiket speciális szimbólumként kell
  megjeleníteni (például az <keycap>e</keycap> a pillanatállj szimbóluma, ami
  általában valami ilyesmi: ||). Szükséged lesz egy normál karaktereket
  tartalmazó betűtípusra és egy másikra a szimbólumokhoz. Lásd a
  <link linkend="skin-fonts-symbols">szimbólumokról</link> szóló részt a
  további információkért.
  </para></note>
  </listitem>
</varlistentry>
</variablelist>
</sect2>

<!-- ********** -->

<sect2 id="skin-file-subwindow">
<title>Alablak</title>

<para>
A következő bejegyzések használhatóak a
'<literal>window = sub</literal>' . . . '<literal>end</literal>' blokkban.
</para>

<variablelist>
<varlistentry>
  <term><literal>
  <anchor id="skin-sub-base"/>base = image, X, Y, width, height
  </literal></term>
  <listitem><para>
  Az ablakban megjelenítendő kép. Az ablak a megadott <literal>X, Y</literal>
  pozícióban jelenik meg a képernyőn (<literal>0,0</literal> a bal felső
  sarok). A <literal>-1</literal> a középre, a <literal>-2</literal>
  a jobbra (<literal>X</literal>) és le (<literal>Y</literal>) igazítást
  jelenti. Az ablak akkora lesz, amekkora a kép. A <literal>width</literal>
  és a <literal>height</literal> az ablak méretét írják elő, opcionálisak
  (ha hiányoznak, az ablak ugyan akkora méretű lesz, mint a kép).
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-background"/>background = R, G, B
  </literal></term>
  <listitem><para>
  Beállíthatod vele a háttér színét. Hasznos, ha a kép kisebb, mint az
  ablak mérete. Az <literal>R</literal>, <literal>G</literal> és
  <literal>B</literal> a szín vörös, zöld és kék komponensét adja meg
  (mindegyik decimális szám 0-tól 255-ig).
  </para></listitem>
</varlistentry>
</variablelist>
</sect2>

<!-- ********** -->

<sect2 id="skin-file-menu">
<title>Skin menü</title>

<para>
Amint korábban már említettem, a menü két kép segítségével kerül megjelenítésre.
A normál menü bejegyzések a <literal>base</literal> elemmel megadott képen
láthatóak, míg az épp aktuálisan kiválasztott elem megjelenítése a
<literal>selected</literal> elemről történik. Meg kell adnod minden egyes
menüpont pozícióját és méretét.
</para>

<para>
A következő bejegyzések használhatóak a
'<literal>window = menu</literal>'. . .'<literal>end</literal>' blokkban.
</para>

<variablelist>
<varlistentry>
  <term><literal>
  <anchor id="skin-menu-base"/>base = image
  </literal></term>
  <listitem><para>
  A normál menüpontokat tartalmazó kép.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-selected"/>selected = image
  </literal></term>
  <listitem><para>
  Az összes menüpontot kiválasztva ábrázoló kép.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><literal>
  <anchor id="skin-menu"/>menu = X, Y, width, height, message
  </literal></term>
  <listitem><para>
  Megadja egy menüelem <literal>X, Y</literal> pozícióját és a méretét a képen.
  A <literal>message</literal> egy üzenet, ami az egérgomb menüponton történő
  felengedésekor generálódik.
  </para></listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="skin-fonts">
<title>Betűk</title>
<para>
Amint azt már a skin elemeiről szóló részben is említettem, egy betűtípust
egy kép és egy leíró fájl alkot. A karaktereket bárhová teheted a képen,
de győződj meg róla, hogy a pozíciójuk és a méretük pontosan meg van adva
a leíró fájlban.
</para>

<para>
A betű leíró fájl (az <filename>.fnt</filename> kiterjesztéssel) tartalmazhat
megjegyzéseket, melyek '<literal>;</literal>'-vel kezdődő sorokban kapnak helyet.
A fájlban kell, hogy szerepeljenek az alábbi sorok:
<anchor id="skin-font-image"/>
<programlisting>image = <replaceable>image</replaceable></programlisting>
Ahol az <literal><replaceable>image</replaceable></literal> a betűhöz használt
kép fájl neve (nem kell megadnod a kiterjesztést).
<anchor id="skin-font-char"/>
<programlisting>"char" = X, Y, width, height</programlisting>
Itt az <literal>X</literal> és az <literal>Y</literal> a
<literal>char</literal> karakter pozícióját adja meg a képen (<literal>0,0</literal>
a bal felső sarok). A <literal>width</literal> és a <literal>height</literal>
a karakter méretei pixelben.
</para>

<para>
Ez a példa az A, B, C karaktereket definiálja a <filename>font.png</filename>
felhasználásával.
<programlisting>
; Lehet "font" is a "font.png" helyett.
image = font.png

; Három karakter elég a bemutatáshoz :-)
"A" =  0,0, 7,13
"B" =  7,0, 7,13
"C" = 14,0, 7,13
</programlisting>
</para>

<!-- ********** -->

<sect2 id="skin-fonts-symbols">
<title>Szimbólumok</title>

<para>
Néhány karakternek speciális jelentése van, ha <link linkend="skin-dlabel">dlabel</link>-ben
használva valamelyik változó tér vissza vele. Ezeket a karaktereket
szimbólumokként kell megjeleníteni, így például egy szép DVD logó jelenhet
meg a '<literal>d</literal>' karakter helyett egy DVD folyam esetén.
</para>

<para>
Az alábbi táblázat a szimbólumként megjeleníthető (és így külön betűtípust
igénylő) karaktereket tartalmazza.
</para>

<informaltable>
<tgroup cols="2">
<thead>
  <row><entry>Karakter</entry><entry>Szimbólum</entry></row>
</thead>
<tbody>
  <row><entry><keycap>p</keycap></entry><entry>lejátszás</entry></row>
  <row><entry><keycap>s</keycap></entry><entry>stop</entry></row>
  <row><entry><keycap>e</keycap></entry><entry>pillanatállj</entry></row>
  <row><entry><keycap>n</keycap></entry><entry>nincs hang</entry></row>
  <row><entry><keycap>m</keycap></entry><entry>mono hang</entry></row>
  <row><entry><keycap>t</keycap></entry><entry>sztereó hang</entry></row>
  <row><entry><keycap>f</keycap></entry><entry>a folyam egy fájl</entry></row>
  <row><entry><keycap>v</keycap></entry><entry>a folyam egy Video CD</entry></row>
  <row><entry><keycap>d</keycap></entry><entry>a folyam egy DVD</entry></row>
  <row><entry><keycap>u</keycap></entry><entry>a folyam egy URL</entry></row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="skin-gui">
<title>GUI üzenetek</title>

<para>
Az alábbi üzeneteket generálják a gombok, potméterek és menüpontok.
</para>

<variablelist>
<title>Lejátszás vezérlése:</title>
<varlistentry>
  <term><emphasis role="bold">evNext</emphasis></term>
  <listitem><para>
  ugrás a következő sávra a lejátszási listában.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evPause</emphasis></term>
  <listitem><para>
  Párt alkot az <literal>evPlaySwitchToPause</literal>-val. Egy általános
  lejátszás/szünet gomb készítéséhez használhatóak fel. Mind a két üzenetet
  egy olyan gombhoz kell hozzárendelni, ami teljesen ugyan ott jelenik meg az
  ablakban. Ez az üzenet megállítja a lejátszást és megjelenteti az
  <literal>evPlaySwitchToPause</literal> gombhoz tartozó képet (jelezve
  ezzel, hogy a gombot meg lehet nyomni a lejátszás folytatásához).
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evPlay</emphasis></term>
  <listitem><para>
  Lejátszás elindítása.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evPlaySwitchToPause</emphasis></term>
  <listitem><para>
  Az <literal>evPauseSwitchToPlay</literal> ellentéte. Ez az üzenet elkezdi a
  lejátszást és megjelenteti az <literal>evPauseSwitchToPlay</literal> gomb
  képét (jelezve ezzel, hogy a gombot meg lehet nyomni a lejátszás megállításához).
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evPrev</emphasis></term>
  <listitem><para>
  Az előző sávra ugrik a lejátszási listában.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evStop</emphasis></term>
  <listitem><para>
  Lejátszás megállítása.
  </para></listitem>
</varlistentry>
</variablelist>

<variablelist>
<title>Seeking:</title>
<varlistentry>
  <term><emphasis role="bold">evBackward10sec</emphasis></term>
  <listitem><para>
  Visszalépés 10 másodperccel.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evBackward1min</emphasis></term>
  <listitem><para>
  Visszalépés 1 perccel.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evBackward10min</emphasis></term>
  <listitem><para>
  Visszalépés 10 perccel.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evForward10sec</emphasis></term>
  <listitem><para>
  Előrelépés 10 másodperccel.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evForward1min</emphasis></term>
  <listitem><para>
  Előrelépés 1 perccel.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evForward10min</emphasis></term>
  <listitem><para>
  Előrelépés 10 perccel.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evSetMoviePosition</emphasis></term>
  <listitem><para>
  Ugrás a pozícióhoz (potméter tudja használni; a
  potméter relatív értékét (0-100%) használja).
  </para></listitem>
</varlistentry>
</variablelist>

<variablelist>
<title>Videó vezérlés:</title>
<varlistentry>
  <term><emphasis role="bold">evHalfSize</emphasis></term>
  <listitem><para>
  Film ablak méretének felezése.
  </para></listitem>
</varlistentry>
<varlistentry>
  <term><emphasis role="bold">evDoubleSize</emphasis></term>
  <listitem><para>
  Film ablak méretének duplázása.
  </para></listitem>
</varlistentry>
<varlistentry>
  <term><emphasis role="bold">evFullScreen</emphasis></term>
  <listitem><para>
  Teljes képernyős mód be-/kikapcsolása.
  </para></listitem>
</varlistentry>
<varlistentry>
  <term><emphasis role="bold">evNormalSize</emphasis></term>
  <listitem><para>
  Film ablak normál méretének beállítása.
  </para></listitem>
</varlistentry>
</variablelist>

<variablelist>
<title>Audió vezérlés:</title>
<varlistentry>
  <term><emphasis role="bold">evDecAudioBufDelay</emphasis></term>
  <listitem><para>
  Audió buffer késleltetésének csökkentése.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evDecBalance</emphasis></term>
  <listitem><para>
  Balansz csökkentése.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evDecVolume</emphasis></term>
  <listitem><para>
  Hangerő csökkentése.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evIncAudioBufDelay</emphasis></term>
  <listitem><para>
  Audió buffer késleltetésének növelése.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evIncBalance</emphasis></term>
  <listitem><para>
  Balansz növelése.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evIncVolume</emphasis></term>
  <listitem><para>
  Hangerő növelése.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evMute</emphasis></term>
  <listitem><para>
  Hang ki-/bekapcsolása.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evSetBalance</emphasis></term>
  <listitem><para>
  Balansz beállítása (potméter tudja használni; a
  potméter relatív értékét (0-100%) használja).
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evSetVolume</emphasis></term>
  <listitem><para>
  Hangerő beállítása (potméter tudja használni; a
  potméter relatív értékét (0-100%) használja).
  </para></listitem>
</varlistentry>
</variablelist>

<variablelist>
<title>Vegyes:</title>
<varlistentry>
  <term><emphasis role="bold">evAbout</emphasis></term>
  <listitem><para>
  Programinformációs ablak megnyitása.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evDropSubtitle</emphasis></term>
  <listitem><para>
  Aktuálisan használt felirat letiltása.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evEqualizer</emphasis></term>
  <listitem><para>
  Equalizer be-/kikapcsolása.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evExit</emphasis></term>
  <listitem><para>
  Kilépés a programból.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evIconify</emphasis></term>
  <listitem><para>
  Ablak összecsukása kis méretűvé.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evLoad</emphasis></term>
  <listitem><para>
  Fájl betöltése (a fájl böngésző ablak megnyitásával, ahol kiválaszthatod a fájlt).
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evLoadPlay</emphasis></term>
  <listitem><para>
  Ugyan azt csinálja, mint az <literal>evLoad</literal>, de automatikusan elkezdi
  lejátszani a fájlt, miután betöltötte.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evLoadSubtitle</emphasis></term>
  <listitem><para>
  Felirat fájl betöltése (a fájl választóval)
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evLoadAudioFile</emphasis></term>
  <listitem><para>
  Audió fájl betöltése (a fájl választóval)
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evNone</emphasis></term>
  <listitem><para>
  Üres üzenet, nincs hatása (kivéve talán a Subversion verziót :-)).
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evPlaylist</emphasis></term>
  <listitem><para>
  Lejátszási lista ablak megnyitása/becsukása.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evPlayDVD</emphasis></term>
  <listitem><para>
  Megpróbálja megnyitni az adott DVD-ROM meghajtóban lévő lemezt.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evPlayVCD</emphasis></term>
  <listitem><para>
  Megpróbálja megnyitni az adott CD-ROM meghajtóban lévő lemezt.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evPreferences</emphasis></term>
  <listitem><para>
  Megnyitja a beállítások ablakot.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evSetAspect</emphasis></term>
  <listitem><para>
  Beállítja a megjelenített kép arányát.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evSetURL</emphasis></term>
  <listitem><para>
  Megjeleníti az URL dialógus ablakot.
  </para></listitem>
</varlistentry>

<varlistentry>
  <term><emphasis role="bold">evSkinBrowser</emphasis></term>
  <listitem><para>
  Megnyitja a skin böngésző ablakot.
  </para></listitem>
</varlistentry>
</variablelist>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="skin-quality">
<title>Minőségi skin-ek készítése</title>

<para>
Tehát végigolvastad az <application>MPlayer</application> GUI-jához
történő skin készítés leírását, megtettél minden tőled telhetőt a
<application>Gimp</application>pel és el szeretnéd küldeni nekünk a skin-ed?
Olvass még egy kicsit tovább, hogy elkerüld a gyakori hibákat és
minőségi skin-t tudj készíteni.
</para>

<para>
Szeretnénk, ha a skin-ek, amit beveszünk a listánkba, megfelelnének
bizonyos minőségi elvárásoknak. Ezen kívül van még pár dolog, amivel
a mi életünket könnyítheted meg.
</para>

<para>
Példaként nézd meg a a <systemitem>Blue</systemitem> skin-t,
az teljesíti az összes lent felsorolt kritériumot az 1.5-ös verzió óta.
</para>

<itemizedlist>
<listitem><para>
  Minden skin-nek tartalmaznia kell egy
  <filename>README</filename> fájlt, ami tartalmazza az információkat
  rólad, a szerzőről, a szerzői jogi és licensz figyelmeztetéseket és
  bármi mást, amit még bele akarsz írni. Ha szeretnél changelog-ot,
  ez a fájl jó hely neki.
</para></listitem>

<listitem><para>
  Kell lennie egy <filename>VERSION</filename>
  fájlnak, melyben semmi más nincs, csak a skin verziószáma egyetlen
  egy sorban (pl. 1.0).
</para></listitem>

<listitem><para>
  A vízszintes és függőleges irányítókon (csúszkák a
  hangerőnek és a pozíciónak) a gombjuk középpontjának pontosan középen
  kell lennie, a csúszka felénél. A gombot mindkét irányban ki kell
  tudni húzni a csúszka végéig, de azon túl nem.
</para></listitem>

<listitem><para>
  A skin elemeit megfelelő méretűnek kell deklarálni
  a skin fájlban. Ha nem így van, akkor kattintani tudsz pl. a gombon
  kívül és mégis megnyomod vagy egy területen belül kattintasz és nem
  lesz hatása.
</para></listitem>

<listitem><para>
  A <filename>skin</filename> fájlnak jól formázottnak
  kell lennie és nem tartalmazhat tab-okat. A jól formázottság azt
  jelenti, hogy a számoknak szépen oszlopokban kell lenniük.
</para></listitem>
</itemizedlist>

</sect1>
</appendix>