Amint fentebb már említettem, ez a skin konfigurációs fájl. Sor-orientált; a megjegyzést tartalmazó sorok egy ';' karakterrel kezdődnek (csak szóközök és tab-ok lehetnek a ';' előtt).
A fájl szekciókból áll. Minden szekció a skin egy alkalmazását írja le a következő formában:
section = szekció neve . . . end
Jelenleg csak egy alkalmazás van, vagyis csak egy szekciót kell készítened: a neve movieplayer.
Ebben a szekcióban minden ablakot egy blokk ír le a következő formában:
window = ablak neve . . . end
Ahol az ablak neve ezen karakterláncok valamelyike lehet:
main - a főablak esetében
sub - az alablak esetében
menu - a skin menü esetében
playbar - a playbar esetében
(Az alablak és menü blokkok opcionálisak - nem kötelező menüt készítened vagy kidekorálni az alablakot.)
Egy ablak blokkon belül az ablak minden elemét definiálhatod, egyet egy sorban, ebbe a formában:
item = parameter
Ahol az item egy karakterlánc, ami azonosítja az adott típusú GUI elemet, a parameter pedig egy numerikus vagy szöveges érték (vagy értékek listája vesszővel elválasztva).
A fentieket összerakva a teljes fájl valahogy így néz ki:
section = movieplayer window = main ; ... főablak elemei ... end window = sub ; ... alablak elemei ... end window = menu ; ... menü elemei ... end window = playbar ; ... playbar elemei ... end end
Egy kép fájl nevét a hozzá vezető útvonal nélkül kell megadni - a képeknek a skins 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 MPlayer megpróbálja betölteni a <filename>.<ext> fájlt, ahol png és PNG kerül az <ext> helyére (ebben a sorrendben). Az első megtalált fájlt fogja használni.
Egy példa a tisztánlátáshoz. Tegyük fel, hogy van egy main.png nevű fájlod, amit a fő ablakhoz használsz:
base = main, -1, -1
Az MPlayer megpróbálja betölteni a main, main.png, main.PNG fájlokat.
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 X és Y koordináták megadásával. A 0 fent vagy bal oldalt van, a -1 középen és a -2 jobb oldalt vagy lent, ahogy az itt is látható:
(0, 0)----(-1, 0)----(-2, 0) | | | | | | (0,-1)----(-1,-1)----(-2,-1) | | | | | | (0,-2)----(-1,-2)----(-2,-2)
A következő bejegyzések használhatóak a 'window = main' ... 'end', és a 'window = playbar' ... 'end' blokkokban.
Megadhatod vele a fő ablakban használt háttérképet. Az ablak a megadott X, Y pozícióban fog megjelenni a képernyőn. Az ablak mérete a kép méretével lesz azonos.
Ezek a koordináták jelenleg nem működnek a megjelenítő ablak esetében.
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.
Egy width * height méretű gomb megjelenítése az X, Y pozícióban. A megadott message üzenet akkor generálódik, amikor a gombot megnyomják. Az image által megadott képnek három részt kell tartalmaznia egymás alatt (a gomb állapotainak megfelelően), így:
+-------------+ | benyomott | +-------------+ | felengedett | +-------------+ | letiltott | +-------------+
Engedélyezi vagy letiltja a főablakban az ablakkezelő dekorációját. Alapértelmezetten disable.
Ez nem működik a megjelenítő ablakban, nincs rá szükség.
Egy vízszintes (hpotmeter) vagy függőleges (vpotmeter) potméter megjelenítése width * height méretben az X, Y 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 hpotmeter-nek lehet egy gombja is, amit vízszintesen lehet húzni. A paraméterek:
button - a gombként használt kép (három részt kell tartalmaznia egymás alatt, mint a gomb esetében)
bwidth, bheight - a gomb mérete
phases - a hpotmeter különböző fázisaiban használt kép neve. Speciális értékként a NULL is használható, ha nem akarsz ilyen képet. A képet függőlegesen numphases részre kell felosztani így:
+------------+ | 1. fázis | +------------+ | 2. fázis | +------------+ ... +------------+ | n. fázis | +------------+
numphases - a phases képen lévő fázisok száma
default - a hpotmeter alapértelmezett értéke (0 és 100 között)
X, Y - a hpotmeter pozíciója
width, height - a hpotmeter szélessége és magassága
message - az üzenet, ami a hpotmeter értékének megváltozásakor generálódik
Egy hpotmeter 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 hpotmeter-nél. A phases lehet NULL, de ez eléggé haszontalan, mivel akkor nem látod, hogy a potmeter hova van állítva.
Egy betűt definiál. A fontfile a betű leíró fájl neve egy .fnt kiterjesztéssel (a kiterjesztést ne add meg itt). A fontid-t a betűre történő hivatkozásokhoz lehet használni (lásd dlabel és slabel). 25 betűt lehet definiálni.
Egy statikus címkét tesz ki az X, Y pozícióba. A text szöveget jeleníti meg a fontid-vel azonosított betűtípussal. A szöveg egyszerű karakterlánc (az $x 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 fontid-vel azonosított betűtípussal jelenik meg.
Egy dinamikus címkét tesz ki az X, Y pozícióba. A címke azért dinamikus, mert a szövege periódikusan frissül. A címke maximum hosszát a length 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 align paraméter által megadott módon pozícionálódik: 0 jobbra, 1 középre, 2 balra igazítva.
A megjelenítendő szöveget a text adja meg: dupla idézőjelek közé kell írni (de a " karakter nem lehet része a szövegnek). A címke a fontid által meghatározott betűtípussal jelenik meg. A szövegben a következő változókat használhatod:
Változó | Jelentés |
---|---|
$1 | lejátszási idő hh:mm:ss formátumban |
$2 | lejátszási idő mmmm:ss formátumban |
$3 | lejátszási idő hh formátumban (órák) |
$4 | lejátszási idő mm formátumban (percek) |
$5 | lejátszási idő ss formátumban (másodpercek) |
$6 | film hossza hh:mm:ss formátumban |
$7 | film hossza mmmm:ss formátumban |
$8 | film hossza h:mm:ss formátumban |
$v | hangerő xxx.xx% formátumban |
$V | hangerő xxx.xx formátumban |
$b | balansz xxx.xx% formátumban |
$B | balansz xxx.xx formátumban |
$$ | az $ karakter |
$a | egy karakter az audió típusnak megfelelően (nincs: n, mono: m, sztereo: t) |
$t | sáv száma (a lejátszási listában) |
$o | fájlnév |
$f | fájlnév kisbetűsen |
$F | fájlnév nagybetűsen |
$T | egy karakter a folyam típusnak megfelelően (file: f, Video CD: v, DVD: d, URL: u) |
$p | a p karakter (ha a film lejátszás alatt van és a betűtípusban van p karakter) |
$s | az s karakter (ha a film meg van állítva movie és a betűtípusban van s karakter) |
$e | az e karakter (ha a lejátszás szünetel és a betűtípusban van e karakter) |
$x | film szélessége |
$y | film magassága |
$C | használt codec neve |
Az $a, $T, $p, $s és $e változók mind karakterekkel térnek vissza, amiket speciális szimbólumként kell megjeleníteni (például az e 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 szimbólumokról szóló részt a további információkért.
A következő bejegyzések használhatóak a 'window = sub' . . . 'end' blokkban.
Az ablakban megjelenítendő kép. Az ablak a megadott X, Y pozícióban jelenik meg a képernyőn (0,0 a bal felső sarok). A -1 a középre, a -2 a jobbra (X) és le (Y) igazítást jelenti. Az ablak akkora lesz, amekkora a kép. A width és a height az ablak méretét írják elő, opcionálisak (ha hiányoznak, az ablak ugyan akkora méretű lesz, mint a kép).
Beállíthatod vele a háttér színét. Hasznos, ha a kép kisebb, mint az ablak mérete. Az R, G és B 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).
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 base elemmel megadott képen láthatóak, míg az épp aktuálisan kiválasztott elem megjelenítése a selected elemről történik. Meg kell adnod minden egyes menüpont pozícióját és méretét.
A következő bejegyzések használhatóak a 'window = menu'. . .'end' blokkban.