Mercurial > mplayer.hg
view DOCS/xml/hu/skin.xml @ 28287:dbebb78dda3c
Add VDPAU hardware accelerated decoding for MPEG1 and MPEG2 which will
be used by MPlayer.
Original patch by NVIDIA corporation.
author | cehoyos |
---|---|
date | Fri, 16 Jan 2009 02:14:25 +0000 |
parents | 04655a6c01d4 |
children | 9372863cd1ea |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <!-- synced with r26990 --> <appendix id="skin"> <title><application>MPlayer</application> skin formátum</title> <sect1 id="skin-overview"> <title>Áttekintés</title> <para> Igazából ennek nincs köze a skin formátumához, de tudnod kell, hogy az <application>MPlayer</application>nek <emphasis role="bold">nincs</emphasis> beépített skin-je, így <emphasis role="bold">legalább egy skin-nek telepítve kell lennie, hogy használni tudd a GUI-t.</emphasis> </para> <!-- ********** --> <sect2 id="skin-overview-directories"> <title>Könyvtárak</title> <para> Az alábbi könyvtárak kerülnek átvizsgálásra (sorrendben): <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> Figyelj rá, hogy az első elérési út változhat az <application>MPlayer</application> konfigurációjának megfelelően (lásd a <command>configure</command> script <option>--prefix</option> és <option>--datadir</option> kapcsolóit). </para> <para> Minden skin a saját könyvtárába kerül telepítésre a fent felsorolt könyvtárakon belül, például: <screen>$(PREFIX)/share/mplayer/skins/default/</screen> </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-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-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><filename>.<ext></filename> fájlt, ahol <literal>png</literal> és <literal>PNG</literal> kerül az <filename><ext></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>