view DOCS/xml/hu/skin.xml @ 32366:3a6a61ffbb34

Add fallback values to aspect_save_screenres to avoid division by 0 if screen dimensions are not known.
author reimar
date Sat, 09 Oct 2010 01:31:52 +0000
parents 3ce788bd776d
children f34e21c5dc2f
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, length, 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>length</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>