summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
authormpt <mpt@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-03-22 17:33:06 +0000
committermpt <mpt@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-03-22 17:33:06 +0000
commitf3e98ee6f0867ab04b7730fd0d2ac3c7773a9d01 (patch)
treeecbdd4729184be6e9e68cdc1e3b0a3bd46fc022c /DOCS
parent4190369ce1b6917b84dc9bbf88e23edeeceeb336 (diff)
downloadmpv-f3e98ee6f0867ab04b7730fd0d2ac3c7773a9d01.tar.bz2
mpv-f3e98ee6f0867ab04b7730fd0d2ac3c7773a9d01.tar.xz
new wersion, some fixes, synced to rc4 version
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9652 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/pl/skin.html1584
1 files changed, 659 insertions, 925 deletions
diff --git a/DOCS/pl/skin.html b/DOCS/pl/skin.html
index 6a030e2de6..83a103857a 100644
--- a/DOCS/pl/skin.html
+++ b/DOCS/pl/skin.html
@@ -1,1064 +1,798 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
+
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
- <title>MPlayer skin format</title>
-<style type="text/css">
-em.note {color: green}
-em.warn {color: red}
-</style>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
+ <title>Tworzenie Skórek - MPlayer - Odtwarzacz Filmów dla Linuksa</title>
+ <link rel="stylesheet" type="text/css" href="../default.css">
+ <style type="text/css">
+ em.note {color: green;
+ font-style: normal;}
+ em.warn {color: red;
+ font-style: normal;}
+ </style>
</head>
-<body text="#000000" bgcolor="#FFFFFF">
-<center>
-<h1>
-Format skór MPlayera</h1></center>
+<body>
-<center>
-<h1>
+<h1>Dodate D - Format skórek MPlayera</h1>
-<hr></h1></center>
+<p>Celem tej dokumentacji jest opisanie formatu skór MPlayera. Informacje zawarte
+ w tym dokumencie mogą być błędne, ponieważ:</p>
-<h2>
-Zawartość</h2>
+<ol type="a">
+ <li>To nie ja napisałem GUI.</li>
+ <li>GUI nie jest skończone.</li>
+ <li>Mogę się mylić.</li>
+</ol>
-<ul type=disc>
-<li>
-<a href="#intro">1 Wstęp</a></li>
+<p>Więc nie bądź zaskoczony jeżeli coś nie będzie działało w sposób w jaki zostało tutaj opisane.</p>
-<li>
-<a href="#overview">2 Omówienie</a></li>
+<p>Podziękowania dla <em>Zoltán Ponekker</em> za jego pomoc.</p>
-<ul type=circle>
-<li>
-<a href="#dirs">2.1 Katalogi</a></li>
+<p><em>András Mohari &lt;mayday@freemail.hu&gt;</em></p>
-<li>
-<a href="#images">2.2 Obrazki</a></li>
-<li>
-<a href="#parts">2.3 Części skóry</a></li>
+<h2><a name="overview">D.1 Przedmowa</a></h2>
-<li>
-<a href="#files">2.4 Pliki</a></li>
-</ul>
+<p>To nie ma tak naprawdę żadnego związku z formatem skór, ale powinieneś wiedzieć,
+ że MPlayer <B>nie</B> ma wbudowanej skórki, więc musisz <B>mieć zainstalowaną chociaż
+ jedną skórę, aby mieć możliwość używania GUI.</B></p>
-<li>
-<a href="#skin">3 Plik <tt>skin</tt></a></li>
-<ul type=circle>
-<li>
-<a href="#mainwin">3.1 Główne okno</a></li>
+<h3><a name="directories">D.1.1 Katalogi</a></h3>
-<li>
-<a href="#subwindow">3.2 Okno ekranu</a></li>
+<p>Katalogi przeszukiwane przez MPlayera w poszukiwaniu skór to (w kolejności szukania):</p>
-<li>
-<a href="#skinmenu">3.3 Menu skóry</a></li>
-</ul>
+<pre>
+ $(DATADIR)/Skin/
+ $(PREFIX)/share/mplayer/Skin/
+ ~/.mplayer/Skin/
+</pre>
-<li>
-<a href="#fonts">4 Fonty</a></li>
+<p>Zauważ, że pierwsza ścieżka może być zależna od tego, jak MPlayer został skonfigurowany
+ podczas kompilacji (zobacz argumenty <code>--prefix</code> i <code>--datadir</code>
+ skryptu <code>configure</code>).</p>
-<ul type=circle>
-<li>
-<a href="#symbols">4.1 Symbole</a></li>
-</ul>
+<p>Każda skórka jest zainstalowana w swoim własnym katalogu znajdującym się w jednym
+ z folderów wymienionych powyżej, na przykład:</p>
-<li>
-<a href="#guimsg">Dodatek A: sygnały GUI</a></li>
-</ul>
+<pre>
+ $(PREFIX)/share/mplayer/Skin/default/
+</pre>
-<hr>
-<center>Ostatnia modyfikacja: Sep 10, 2001
-<br>Ostatnia modyfikacja w języku polskim: 29 marca 2002</center>
-
-<hr>
-<h2>
-<a NAME="intro"></a>1 Wstęp</h2>
-Celem tej dokumentacji jest opisanie formatu skór MPlayera. Informacje zawarte
-w tym dokumencie mogą być błędne, ponieważ:
-<br><i>a)</i> to nie ja napisałem GUI
-<br><i>b)</i> Gui nie jest skończony
-<br><i>c)</i> Mogę się mylić, więc nie bądź zaskoczony jeżeli coś nie będzie
-działało w sposób w jaki zostało tutaj opisane.
-<p>Podziękowania dla <i>Zoltán Ponekker</i> za pomoc.
-<p><i>András Mohari &lt;mayday@freemail.hu></i>
-<p><i>Tłumaczenie na język polski:</i>
-<br><i>CyberPe &lt;cyberp@silesianet.pl></i>
-<br>Wszystkie uwagi i pomysły dotyczące tego tłumaczenia są mile widziane.
-W temacie proszę podać "Mplayer".
-<h2>
-<a NAME="overview"></a>2 Omówienie</h2>
-To nie ma tak naprawdę żadnego związku z formatem skór, ale powinieneś
-wiedzieć, że MPlayer <b>nie ma</b> wbudowanej skórki, więc <b>musisz mieć
-zainstalowaną chociaż jedną skórę, aby mieć możliwość używania GUII</b>.
-<h3>
-<a NAME="dirs"></a>2.1 Katalogi</h3>
-Katalogi przeszukiwane przez MPlayera w poszukiwaniu skór to (w kolejności
-szukania):
-<pre>&nbsp;&nbsp;&nbsp; /usr/local/share/mplayer/Skin/
-&nbsp;&nbsp;&nbsp; ~/.mplayer/Skin/</pre>
-Zauważ, że pierwsza ścieżka może być zależna od tego, jak MPlayer został
-skonfigurowany podczas kompilacji (zobacz argument "<tt>--datadir" skryptu
-konfiguracyjnego</tt>).
-<p>Każda skórka jest zainstalowana w swoim własnym katalogu znajdującym
-się w jednym z folderów zwymienionych powyżej, na przykład:
-<pre>&nbsp;&nbsp;&nbsp; /usr/local/share/mplayer/Skin/default/</pre>
-
-<h3>
-<a NAME="images"></a>2.2 Formaty plików graficznych</h3>
-Obrazki muszą być w formacie truecolor (24, albo 32 bity) i mogą być zapisane
-jako BMP, PNG i TGA (z tym, że obrazki zapisane jako TGA nie mogą być skompresowane).
-Preferowany format to PNG, ponieważ ma on bardzo dobry współczynnik kompresji,
-a co za tym idzie, obrazki zajmują mniej miejsca.
-<p>W głównym oknie (zobacz niżej) możesz używać obrazków z 'przeźroczystością':
-obszary wypełnione przy użyciu koloru #FF00FF (<font color="#FF00FF">magenta</font>)
-są dla MPlayera w pełni przeźroczyste. Oznacza to, że możesz używać dowolnych
-kształtów okna głównego (np. okrągłych), jeżeli tylko twój X serwer posiada
-rozszerzenie XShape.
-<h3>
-<a NAME="parts"></a>2.3 Części skóry</h3>
-Skórki są całkowicie konfigurowalne (w przeciwieństwie np. do skór Winampa/XMMS)
-(chodzi o to, że możesz umieścić dowolny przycisk np. 'play' w dowolnym
-miejscu swojej skóry, format XMMSa i Winampa ma z góry ustalone położenie
-każdego elementu i nie można tego zmienić - przyp. tłumacza), więc tylko
-od ciebie zależy czy stworzysz coś naprawdę fajnego.
-<p>Na dzień dzisiejszy są trzy okna do skonfigurowania: <a href="#mainwin">okno
-główne</a> (main window), <a href="#subwindow">okno ekranu</a> (subwindow)
-oraz <a href="#skinmenu">menu skóry</a> (skin menu), które może zostać
-uaktywnione poprzez naciśnięcie prawego przycisku myszy.
-<ul>
-<li>
-<b>okno główne</b> - to okno w którym kontrolujesz MPlayera. Tło tego okna
-jest obrazkiem. Wszystkie elementy muszą być umieszczone w tym oknie: przyciski
-(buttons), potencjometry (albo suwaki, jeżeli bardziej ci odpowiada ta
-nazwa) oraz etykiety (labels). Dla każdego elementu musisz określić jego
-pozycję oraz rozmiar.</li>
-
-<p>Każdy <b>przycisk</b> ma trzy fazy (wciśnięty, uwolniony oraz nieaktywny),
-więc ich obrazki muszą być podzielone na trzy części w pionie. Zobacz sekcję
-<a href="#main.button">przyciski</a>,
-aby uzyskać więcej informacji.
-<p><b>potencjometry </b>(zazwyczaj używane do określania pozycji filmu
-(seek bar) oraz do kontroli głośności, balansu dźwięku) mogą posiadać dowolną
-liczbę faz poprzez umieszczenie każdej następnej fazy pod poprzednią (w
-obrazku) <font size=-1>(to nie jest za dobrze przetłumaczone-przyp. tłumacz)</font>.Zobacz
-sekcję
-<a href="#main.hpotmeter">hpotmeter</a> i <a href="#main.potmeter">potmeter</a>,
-aby dowiedzieć się więcej na ten temat.
-<p><b>Etykiety </b>są bardzo specyficzne: znaki służące do ich opisania
-są brane z osobnego obrazka, a litery, które są w nim zawarte (w pliku
-graficznym) są opisane przez <a href="#fonts">plik opisujący fonty</a>.
-Jest to plik tekstowy, który określa pozycję x, y oraz rozmiar każdego
-symbolu znajdującego się w obrazku. (a więc "plik graficzny z fontami"
-i "plik opisujący fonty" tworzą razem fonty). Zobacz <a href="#main.dlabel">dlabel</a>
-i <a href="#main.slabel">slabel</a>, po więcej szczegółów
-<p><i><b>Uwaga:</b> wszystkie obrazki mogą posiadać przeźroczystość tak,
-jak opisano to w sekcji <a href="#images">formaty plików graficznych</a>.</i>
-<br>&nbsp;
-<li>
-<b>okno ekranu</b> <font size=-1>(niezbyt szczęśliwe tłumaczenie - przyp.
-tłumacz)</font> - tutaj pojawia się film podczas odtwarzania. Może ono wyświetlać
-określony obrazek jeżeli nie jest w danym momencie odgrywany żaden film
-(to strasznie denerwujące mieć puste okno:-)) <i><b>Uwaga</b>: przeźroczystość
-</i>jest tutaj <i><b>niedostępna</b>.</i></li>
-
-<br>&nbsp;
-<li>
-<b>menu skóry</b>- to po prostu jeden ze sposobów do kontrolowania MPlayera
-poprzez polecenia z menu. Wymagane są tutaj dwa obrazki: pierwszy z nich
-jest podstawowym obrazkiem pokazującym menu w "normalnym" stanie, drugi
-natomiast jest używany do wyświetlania wybranych elementów. Kiedy aktywujesz
-menu (poprzez prawe kliknięcie myszy) pokazywany jest pierwszy obrazek.
-Kiedy najeżdżasz kursorem na którąś z pozycji, jej zaznaczenie jest kopiowane
-z drugiego obrazka na obszar menu znajdujący się pod wskaźnikiem myszy
-(a więc drugi obrazek nigdy nie jest pokazany w całości).</li>
-
-<br>&nbsp;</ul>
-
-<ul>Obszar menu znajdujący się pod kursorem jest zdefiniowany poprzez jego
-pozycję i rozmiar w obrazku (zobacz sekcję <a href="#skinmenu">menu skóry</a>
-aby dowiedzieć się więcej na ten temat)</ul>
-Jest jeszcze jedna ważna rzecz, która nie została jeszcze wspomniana: dla
-przycisków, potencjometrów i obszarów menu, MPlayer musi wiedzieć co ma
-zrobić jeżeli zostaną one kliknięte. Zajmują się tym <a href="#guimsg">sygnały</a>
-(zdarzenia). Dla wszystkich tych elementów muszą być zdefiniowane sygnały,
-które mają zostać wywołane po naciśnięciu przycisku myszy.
-<h3>
-<a NAME="files"></a><i>2.4 Pliki</i></h3>
-Aby stworzyć skórę będziesz potrzebował następujących plików.
-<ul>
-<li>
-Plik konfiguracyjny o nazwie <a href="#skin">skin</a>, który informuje
-MPlayera w jaki sposób łączyć ze sobą poszczególne części skóry i co ma
-zrobić kiedy klikasz gdziesz w obszarze okna.</li>
-<li>
-Obrazek Tła do głównego okna.</li>
+<h3><a name="images">D.1.2 Formaty obrazków</a></h3>
-<li>
-Obrazki dla elementów okna głównego (włączając w to jeden, albo więcej
-plików opisujących fonty potrzebnych do wyświetlania etykiet)</li>
+<p>Obrazki muszą to być PNG z głębią kolorów truecolor (24, albo 32 bity).</p>
-<li>
-Obrazek który ma być wyświetlony w oknie ekranu (opcjonalnie)</li>
+<p>W głównym oknie i w pasku odtwarzania (zobacz niżej) możesz używać obrazków
+ z 'przeźroczystością': obszary wypełnione przy użyciu koloru #FF00FF
+ (<font color="#FF00FF">magenta</font>) są dla MPlayera w pełni przeźroczyste.
+ Oznacza to, że możesz używać dowolnych kształtów okna głównego, jeżeli
+ twój X serwer posiada rozszerzenie XShape.</p>
-<li>
-Dwa obrazki do menu skóry (są one potrzebne tylko jeśli chcesz stworzyć
-takie menu)</li>
-</ul>
-Poza plikiem konfiguracyjnym skóry, możesz nazwać wszystkie inne pliki
-jak tylko chcesz (ale pamiętaj, że plik opisujący fonty musi mieć rozszerzenie
-.fnt).
-<h2>
-<a NAME="skin"></a>3 The <b><tt>skin</tt></b> file</h2>
-Jak wspomniano powyżej jest to plik konfigurujący skórę. Potrafi on rozpoznawać
-typy wierszy: wiersze komentarza rozpoczyna średnik, czyli ';' (przed nim
-mogą znajdować się tylko spacje, lub "taby")
-<p>Plik podzielony jest na sekcję. Każda z nich opisuje poszczególny element
-skóry dla każdej z aplikacji i ma następującą postać:
-<table BORDER WIDTH="100%" >
-<tr BGCOLOR="#C0C0C0">
-<td>
-<pre>section = section<i> name
-</i>.
-.
-.
-end</pre>
-</td>
-</tr>
-</table>
-<p>Na dzień dzisiejszy istnieje tylko jedna aplikacja, więc potrzebujesz
-tylko jednej sekcji: jej nazwa to <b>movieplayer</b> (odtwarzacz filmów)
-<p>W tej sekcji każde z okien jest opisane poprzez dany blok w taki sposób:
-<table BORDER WIDTH="100%" >
-<tr BGCOLOR="#C0C0C0">
-<td>
-<pre>window = <i>window name
-</i>.
-.
-.
-end</pre>
-</td>
-</tr>
-</table>
-gdzie<i> window name </i>może być jednym z następujących bloków:
-<ul>
-<li>
-<b>main</b> - dla głównego okna</li>
+<h3><a name="components">D.1.3 Części skórki</a></h3>
-<li>
-<b>sub</b> - dla okna ekranu</li>
+<p>Skórki są całkowicie konfigurowalne (w przeciwieństwie np. do skór Winampa/XMMS)
+ (chodzi o to, że możesz umieścić dowolny przycisk np. 'play' w dowolnym miejscu
+ swojej skóry, format XMMSa i Winampa ma z góry ustalone położenie każdego elementu
+ i nie można tego zmienić - przyp. tłumacza), więc tylko od ciebie zależy,
+ czy stworzysz coś naprawdę fajnego.</p>
-<li>
-<b>menu</b> - dla menu skóry.</li>
-</ul>
-(Blok sub i menu są opcjonalne-nie musisz tworzyć menu, ani dekorować okna
-ekranu jeżeli nie chcesz.)
-<p>W każdym z bloków możesz zdefiniować poszczególne elementy (items) dla
-danego okna w sposób przedstawiony poniżej:
-<blockquote>
-<pre>item = parameter</pre>
-</blockquote>
-Gdzie <i>item </i>jest blokiem identyfikującym typ danego elementu GUI,
-<i>parametr</i>
-jest numeryczną, lub tekstową wartością (lub lstą wartości oddzieloną przecinkami).
-<p>Łącząc to wszystko ze sobą, uzyskujemy plik wyglądający mniej więcej
-tak:
-<table BORDER WIDTH="100%" >
-<tr BGCOLOR="#C0C0C0">
-<td>
-<pre>section = movieplayer
-&nbsp; window = main
-&nbsp; ; ... elementy dla okna głównego ...
-&nbsp; end
-&nbsp;&nbsp;
-&nbsp; window = sub
-&nbsp; ; ... elementy dla okna ekranu ...
-&nbsp; end
-&nbsp;&nbsp;
-&nbsp; window = menu
-&nbsp; ; ... elementy dla menu skóry ...
-&nbsp; end
-end</pre>
-</td>
-</tr>
-</table>
+<p>Na dzień dzisiejszy są trzy okna do skonfigurowania: <a href="#mainwin">okno główne</a>
+ (main window), <a href="#subwindow">okno ekranu</a> (subwindow),
+ <a href="#mainwin">pasek odtwarzania</a> (playbar) oraz <a href="#skinmenu">menu skóry</a>
+ (skin menu) (które może zostać uaktywnione poprzez naciśnięcie prawego przycisku myszy).</p>
-<p>Na koniec kila słów o specyfice obrazków dla różnych elementów.
-<br>Nazwa obrazk musi być podana bez żadnych głównych katalogów---obrazki
-są poszukiwane w katalogu ze skórką. Możesz (ale nie musisz) podać rozszerzenie
-plików. Jeżeli plik nie istnieje, MPlayer próbuje załadować plik <i>&lt;nazwa
-pliku>.&lt;rozszerzenie></i> gdzie <i>tga, TGA, bmp, BMP, png i PNG</i>
-są próbowane jako <i>&lt;rozszerzenie></i> (w tej kolejności)
-<br>Wykorzystany zostanie pierwszy pasujący plik.
-<table BORDER CELLPADDING=5 WIDTH="100%" >
-<tr BGCOLOR="#FFFFCC">
-<td>Tutaj jest przykład, który powinien to wyjaśnić. Przypuśćmy, że masz
-obrazek o nazwie <i>main.png</i>, który używasz do głównego okna:
-<blockquote>
-<pre>&nbsp;&nbsp;&nbsp; base = main, -1, -1</pre>
-</blockquote>
-MPlayer próbuje załadować <i>main, main.tga, main.TGA, main.BMP</i>, itd.,
-więc <i>main.png</i> zostanie znaleziony.
-<br>Jeżeli (przez przypadek) napiszesz:
-<blockquote>
-<pre>&nbsp;&nbsp;&nbsp; base = main.bmp, -1, -1</pre>
-</blockquote>
-wtedy <i>main.bmp</i>, <i>main.bmp.tga</i>, <i>main.bmp.TGA</i>,
-<i>main.bmp.bmp</i>
-będą wyszukiwane i MPlayer w końcu się podda, ponieważ nie ma pliku <b>main.bmp</b>
-w katalogu, ale <i>main.png.</i></td>
-</tr>
-</table>
-
-<h3>
-<a NAME="mainwin"></a>3.1 Główne okno</h3>
-Poniżej możesz zobaczyć listę elementów, które mogą być użyte w bloku '<tt>window
-= main</tt>' . . . '<tt>end</tt>'.
-<dl>
-<dt>
-<a NAME="main.base"></a><b>base = <i>obrazek, x, y</i></b></dt>
+<ul>
+ <li><p><b>Okno główne</b> i/lub <b>pasek odtwarzania</b> to okno w którym kontrolujesz
+ MPlayera. Tło tego okna jest obrazkiem. Różne elementy mogą (i muszą) być umieszczone
+ w tym oknie: <em>przyciski</em> (buttons), <em>potencjometry</em> (suwaki, ang. potmeters, sliders)
+ i <em>etykiety</em> (labels). Dla każdego elementu musisz określić jego pozycję oraz rozmiar.</p>
+
+ <p><b>Przycisk</b> ma trzy fazy (wciśnięty, uwolniony oraz nieaktywny), więc ich obrazki
+ muszą być podzielone na trzy części w pionie. Zobacz sekcję <a href="#main.button">przyciski</a>,
+ aby uzyskać więcej informacji.</p>
+
+ <p><b>Potencjometry</b> (zazwyczaj używane do określania pozycji filmu (seek bar) oraz do
+ kontroli głośności/balansu dźwięku) mogą posiadać dowolną liczbę faz poprzez podzielenie
+ jego obrazka na części, gdzie następna faza jest poniżej poprzedniej.
+ Zobacz sekcję <a href="#main.hpotmeter">hpotmeter</a> i <a href="#main.potmeter">potmeter</a>,
+ aby dowiedzieć się więcej na ten temat.</p>
+
+ <p><b>Etykiety</b> są bardzo specyficzne: znaki służące do ich opisania są
+ brane z poliku graficznego, a litery, które są w nim zawarte w pliku graficznym
+ są opisane przez <a href="#fonts">plik opisujący fonty</a>. Jest to plik tekstowy,
+ który określa pozycję x, y oraz rozmiar każdego symbolu znajdującego się w obrazku
+ (a więc "plik graficzny z fontami" i "plik opisujący fonty" tworzą <em>razem</em> fonty).
+ Zobacz <a href="#main.dlabel">dlabel</a> i <a href="#main.slabel">slabel</a>,
+ po więcej szczegółów.</p>
+
+ <p><em class="note"><b>Informacja:</b> wszystkie obrazki mogą posiadać przeźroczystość tak,
+ jak opisano to w sekcji formaty <a href="#images">plików graficznych</a>. Jeżeli
+ serwer X nie obsługuje rozszerzenia XShape, część oznaczona jako przezroczysta, będzie
+ czarna. Jeżeli chcesz używać tej funkcji, szerokość obrazka tła głównego okna musi
+ być podzielna przez 8.</em></p>
+ </li>
+
+ <li><b>Okno ekranu</b> - tutaj pojawia się film podczas odtwarzania. Może ono
+ wyświetlać określony obrazek jeżeli nie jest w danym momencie odgrywany żaden film
+ (to dość nudne mieć puste okno :-)) <em class=note><b>Informacja:</b> przeźroczystość
+ jest tutaj <b>niedostępna</b>.</em></li>
+
+ <li><p><b># menu skóry</b> to po prostu jeden ze sposobów do kontrolowania MPlayera
+ poprzez polecenia z menu. Wymagane są tutaj dwa obrazki: pierwszy z nich jest
+ podstawowym obrazkiem pokazującym menu w "normalnym" stanie, drugi natomiast jest
+ używany do wyświetlania wybranych elementów. Kiedy aktywujesz menu pokazywany jest
+ pierwszy obrazek. Kiedy najeżdżasz kursorem na którąś z pozycji, jej zaznaczenie
+ jest kopiowane z drugiego obrazka na obszar menu znajdujący się pod wskaźnikiem myszy
+ (a więc drugi obrazek nigdy nie jest pokazany w całości).</p>
+
+ <p>Obszar menu znajdujący się pod kursorem jest zdefiniowany poprzez jego pozycję
+ i rozmiar w obrazku (zobacz sekcję <a href="#skinmenu">menu skóry</a> aby dowiedzieć
+ się więcej na ten temat).</p>
+ </li>
+</ul>
-<dd>
-Pozwala ci określić obrazek tła, który ma zostać użyty w głównym oknie.
-Okno to pojawi się w określonej przez <i>x,y</i> pozycji na ekranie (0,0
-to lewy górny róg). Możesz tu użyć także następujących wartości: 1-dla
-wyśrodkowania, 2 dla wyrównania do prawej (dla wartości x) i do dołu (dla
-wartości y). Okno to będzie rozmiarów obrazka tła.</dd>
+<p>Jest jeszcze jedna ważna rzecz, która nie została jeszcze wspomniana: dla przycisków,
+ potencjometrów i obszarów menu, MPlayer musi wiedzieć co ma zrobić jeżeli zostaną one
+ kliknięte. Zajmują się tym <a href="#guimsg">sygnały</a> (zdarzenia). Dla wszystkich
+ tych elementów muszą być zdefiniowane sygnały, które mają zostać wywołane po naciśnięciu
+ przycisku myszy.</p>
-<p><i><b>Uwaga: </b>przeźroczyste obszary w obrazku (kolor #FF00FF) pojawiają
-się jako czarny kolor w X serwerach, które nie obsługują rozszerzenia XShape.</i></dl>
-<dl>
-<dt>
-<a NAME="main.button"></a><b>button = <i>obrazek, x, y, szerokość, wysokość,
-sygnał</i></b></dt>
-
-<dd>
-Umieszcza przycisk o rozmiarze <i>szerokość * wysokość</i> na pozycji <i>x,y</i>.
-Określony sygnał jest generowany, kiedy przycisk zostanie kliknięty. Obrazek
-określony jako <i>obrazek</i> musi być podzielony na trzy części umieszczone
-jedna pod drugą (podzielony według możliwych faz przycisku), w ten sposób:</dd>
-
-<br>&nbsp;
-<center><table>
-<tr>
-<td>
-<pre><font size=-1>+------------+
-| wciśnięty&nbsp; |
-+------------+
-|&nbsp; uwolniony |
-+------------+
-| nieaktywny |
-+------------+</font></pre>
-</td>
-</tr>
-</table></center>
-</dl>
+<h3><a name="files">D.1.4 Pliki</a></h3>
-<dl>
-<dt>
-<a NAME="main.decoration"></a><b>decoration = enable|disable</b></dt>
+<p>Aby stworzyć skórę będziesz potrzebował następujących plików:</p>
-<dd>
-Włącza, lub wyłącza dekoracje okna (pasek tytułowy) twojego menadżera okien.
-Domyślnie jest to <b>wyłączone</b>.</dd>
-</dl>
+<ul>
+ <li>Plik konfiguracyjny o nazwie<a href="#skin">skin</a>, który informuje
+ MPlayera w jaki sposób łączyć ze sobą poszczególne części skóry i co ma
+ zrobić kiedy klikasz gdziesz w obszarze okna.</li>
+ <li>Obrazek Tła do głównego okna.</li>
+ <li>Obrazki dla elementów okna głównego (włączając w to jeden, albo więcej
+ plików opisujących fonty potrzebnych do wyświetlania etykiet).</li>
+ <li>Obrazek który ma być wyświetlony w oknie ekranu (opcjonalnie).</li>
+ <li>Dwa obrazki do menu skóry (są one potrzebne tylko jeśli chcesz stworzyć takie menu).</li>
+</ul>
-<dl>
-<dt>
-<a NAME="main.hpotmeter"></a><b>hpotmeter = <i>suwak, szs,ws, fazy, liczbafaz,
-domyślna, x, y, sz, w, sygnał</i></b></dt>
+<p>Poza plikiem konfiguracyjnym skóry, możesz nazwać wszystkie inne pliki
+ jak tylko chcesz (ale pamiętaj, że plik opisujący fonty musi mieć rozszerzenie <code>.fnt</code>).</p>
-<dd>
-Umieszcza poziomo potencjometr o rozmiarach <i>sz*w</i> na pozycji <i>x,y</i>.
-Obrazek może być podzielony na różne części dla różnych faz potencjometru
-(np. możesz mieć potencjometr głośności, który zmienia się z zielonego
-na czerwony podczas zmiany głośności z minimalnej do maksymalnej). hpotencjometr
-może mieć przycisk który jest przesuwany w poziomie. Jego parametry to:</dd>
-<ul>
-<li>
-<i>suwak</i> - obrazek który ma być użyty jako suwak (musi mieć trzy części
-umieszczone jedna pod drugą, tak jak w przypadku <a href="#main.button">przycisku</a>)</li>
+<h2><a name="skinfile">D.2 Plik skin</a></h2>
-<li>
-szs, ws - rozmiar suwaka</li>
+<p>Jak wspomniano powyżej jest to plik konfigurujący skórę. Potrafi on rozpoznawać
+ typy wierszy: wiersze komentarza rozpoczyna średnik, czyli '<code>;</code>'
+ (przed nim mogą znajdować się tylko spacje, lub znaki tabulacji).</p>
-<li>
-<i>fazy</i> - obrazek który ma być użyty&nbsp; dla różnych faz hpotencjometru.
-Obrazek musi być podzielony w pionie na <i>liczbęfaz</i> (zobacz poniżej).
-Specjalna wartość <font size=-1>NULL</font> może być użyta jeżeli nie chcesz
-żadnego obrazka.</li>
+<p>Plik podzielony jest na sekcję. Każda z nich opisuje poszczególny element
+ skóry dla każdej z aplikacji i ma następującą postać:</p>
-<li>
-<i>liczbafaz</i> - liczba faz znajdująca się w obrazku z <i>fazami</i>.</li>
+<table border="1" width="100%">
+ <tr bgcolor="silver">
+ <td>
+<pre>
+section = <i>section name</i>
+.
+.
+.
+end
+</pre>
+ </td>
+ </tr>
+</table>
-<li>
-<i>domyślna</i> - domyślna wartość dla hpotencjometru (w przedziale od
-0 do 100)</li>
+<p>Na dzień dzisiejszy istnieje tylko jedna aplikacja, więc potrzebujesz tylko jednej sekcji:
+ jej nazwa to <b>movieplayer</b> (odtwarzacz filmów).</p>
-<li>
-<i>x</i>, <i>y</i> - pozycja hpotencjometru</li>
+<p>W tej sekcji każde z okien jest opisane poprzez dany blok w taki sposób:</p>
-<li>
-<i>sz, w</i> - szerokość i wysokość obszaru po którym może poruszać się
-suwak.</li>
+<table border="1" width="100%">
+ <tr bgcolor="silver">
+ <td>
+<pre>
+window = <i>window name</i>
+.
+.
+.
+end
+</pre>
+ </td>
+ </tr>
+</table>
-<li>
-<i>sygnał</i> - sygnał który ma być wywołany, kiedy zmienia się wartość
-hpotnecjometru</li>
+<p>gdzie <i>window name</i> może być jednym z następujących ciągów znaków:</p>
-<p>Obrazek określający poszczególne fazy musi wyglądać w ten sposób:
-<br>&nbsp;</ul>
+<ul>
+ <li><b>main</b> - dla głównego okna</li>
+ <li><b>sub</b> - dla okna ekranu</li>
+ <li><b>menu</b> - dla menu skóry</li>
+ <li><b>playbar</b> - pasek odtwarzania</li>
+</ul>
-<center><table BORDER=0 >
-<tr>
-<td>
-<pre><font size=-1>+------------+
-|&nbsp;&nbsp; faza #1&nbsp; |
-+------------+
-|&nbsp;&nbsp; faza #2&nbsp; |
-+------------+
-&nbsp;&nbsp;&nbsp;&nbsp; ...
-+------------+
-|&nbsp;&nbsp; faza #n&nbsp; |
-+------------+</font></pre>
-</td>
-</tr>
-</table></center>
-<i><b>Uwaga: </b>w przyszłości będzie teć vpotencjometr, ale nie został
-on jeszcze zaimpletowany.</i></dl>
+<p>(wpisy sub i menu są opcjonalne - nie musisz tworzyć menu, ani dekorować
+ okna ekranu jeżeli nie chcesz.)</p>
-<dl>
-<dt>
-<a NAME="main.potmeter"></a><b>potmeter = <i>fazy, liczbafaz, domyślna,
-x, y, sz, w, sygnał</i></b></dt>
-
-<dd>
-Potencjometr bez suwaka. (Myślę, że chodzi tu o to żeby nim kręcić, ale
-reaguje on tylko na poziome przesuwanie.) Aby zobaczyć opis parametrów
-zobacz <a href="#main.hpotmeter">hpotmeter</a>. <i>fazy</i> mogą mieć wartość
-<font size=-1>NULL</font>
-(nic), ale jest to bezużyteczne, jeżeli nie możesz zobaczyć gdzie znajduje
-się potencjometr.</dd>
-</dl>
+<p>W każdym z bloków możesz zdefiniować poszczególne elementy (items) dla danego
+ okna w sposób przedstawiony poniżej:</p>
<dl>
-<dt>
-<a NAME="main.font"></a><b>font = <i>plikfontów, fontid</i></b></dt>
-
-<dd>
-Definiuje fonty. <i>plikfontów</i> jest nazwą <i>pliku opisującego fonty</i>
-z rozszerzeniem .fnt (<b>nie trzeba</b> tu określać rozszerzenia). <i>fontid</i>
-jest używany do odsyłania do fontów (kiepskie tłumaczenie-przyp. tłumacz)
-(zobacz <a href="#main.dlabel">dlabel</a> i <a href="#main.slabel">slabel</a>).
-Możesz określić ponad 25 znaków.</dd>
+ <dt><b><code>item = parameter</code></b></dt>
+ <dd>Gdzie <code>item</code> jest ciągiem znaków identyfikującym typ danego
+ elementu GUI, parametr jest numeryczną, lub tekstową wartością
+ (lub listą wartości oddzieloną przecinkami).</dd>
</dl>
-<dl>
-<dt>
-<a NAME="main.dlabel"></a><b>dlabel = <i>x, y, długość, align, fontid,
-"text"</i></b></dt>
-
-<dd>
-Umieszcza dynamiczne etykiety na pozycji x,y. Etykieta nazywana jest dynamiczną,
-ponieważ tekst w niej jest regularnie odświeżany (coś jak okno z tytułem
-utworu w Winampie-przyp. tłumacz). Maksymalna długość etykiety jest ustalona
-przez <i>długość</i> (jej wysokość jest wysokością fontów). Jeżeli tekst
-który ma być wyświetlony jest dłuższy od tej wartości, wtedy będzie on
-skrolowany (przesuwany-tak jak w XMMS/Winamp-przyp.tłumacz), w innym przypadku
-będzie on wyrównany do określonej przez <i>align</i> (wyrównanie) przestrzeni.0
-dla wyrównania do prawej, 1 dla wyśrodkowania, 2 dla wyrównania do lewej.</dd>
-
-<p>Tekst, który ma zostać wyświetlony jest określony przez <i>text</i>:
-musi być on opisany w cudzysłowiu (") (ale " nie może być częścią tekstu).
-Etykieta jest wyświetlana używając <i>fontid</i>. Możesz użyć poniższych
-zmiennych w tekście:
-<br>&nbsp;
-<center><table BORDER valign="top" >
-<tr ALIGN=CENTER>
-<th>Zmienna</th>
-
-<th ALIGN=LEFT>Znaczenie</th>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$1</tt></td>
-
-<td>odtwarza czas w formacie <i>hh:mm:ss</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$2</tt></td>
-
-<td>odtwarza czas w formacie <i>mmmm:ss</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$3</tt></td>
-
-<td>odtwarza czas w formacie <i>hh</i> (godziny)</td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$4</tt></td>
-
-<td>odtwarza czas w formacie <i>mm</i> (minuty)</td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$5</tt></td>
-
-<td>odtwarza czas w formacie <i>ss</i> (sekundy)</td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$6</tt></td>
-
-<td>wyświetla długość filmu w formacie <i>hh:mm:ss</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$7</tt></td>
-
-<td>wyświetla długość filmu w formacie <i>mmmm:ss</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$8</tt></td>
-
-<td>odtwarza czas w formacie <i>h:mm:ss</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$v</tt></td>
-
-<td>głośność w formacie <i>xxx.xx%</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$V</tt></td>
-
-<td>głośność w formacie <i>xxx.x</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$b</tt></td>
-
-<td>balans w formacie <i>xxx.xx%</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$B</tt></td>
-
-<td>balans w formacie <i>xxx.x</i></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$$</tt></td>
-
-<td>znaczek <tt>$</tt></td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$a</tt></td>
-
-<td>znak określający typ dźwięku (żaden: <tt>n</tt>, mono: <tt>m</tt>,
-stereo: <tt>t</tt>)</td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$t</tt></td>
-
-<td>Numer ścieżki (w playliście)</td>
-</tr>
-
-<tr>
-<td ALIGN=CENTER><tt>$o</tt></td>
+<p>Łącząc to wszystko ze sobą, uzyskujemy plik wyglądający mniej więcej tak:</p>
+
+<table border="1" width="100%">
+ <tr bgcolor="silver">
+ <td>
+<pre>
+section = movieplayer
+ window = main
+ ; ... elementy dla okna głównego ...
+ end
+
+ window = sub
+ ; ... elementy dla okna ekranu ...
+ end
+
+ window = menu
+ ; ... elementy dla menu skóry ...
+ end
+
+ window = playbar
+ ; ... elementy dla paska odtwarzania ...
+ end
+end
+</pre>
+ </td>
+ </tr>
+</table>
-<td>nazwa pliku</td>
-</tr>
+<p>Nazwa obrazk musi być podana bez żadnych głównych katalogów - obrazki są
+ poszukiwane w katalogu ze <code>skórką</code>. Możesz (ale nie musisz) podać
+ rozszerzenie plików. Jeżeli plik nie istnieje, MPlayer próbuje załadować plik
+ <code>&lt;nazwa pliku&gt;.&lt;rozszerzenie&gt;</code>, gdzie <code>png</code>
+ i <code>PNG</code> są próbowane jako <code>&lt;rozszerzenie&gt;</code> (w tej
+ kolejności). Wykorzystany zostanie pierwszy pasujący plik.</p>
+
+<p>Na koniec kilka słów o pozicjonowaniu. Główne okno i okno ekranu mogą
+ być umieszczone w różnych narożnikach ekranu poprzez podanie parametrów
+ <code>X</code> i <code>Y</code>. <code>0</code> jest górą lub lewą stroną,
+ <code>-1</code> wyśrodkowuje, a <code>-2</code> jest dołem lub prawą stroną,
+ jak pokazano na ilustracji:</p>
+
+<pre>
+
+(0, 0)----(-1, 0)----(-2, 0)
+ | | |
+ | | |
+(0,-1)----(-1,-1)----(-2,-1)
+ | | |
+ | | |
+(0,-2)----(-1,-2)----(-2,-2)
+
+</pre>
+
+<table border="1" cellpadding="5" width="100%">
+ <tr bgcolor="#ffffcc">
+ <td>Tutaj jest przykład, który powinien to wyjaśnić. Przypuśćmy, że masz obrazek
+ o nazwie <code>main.png</code>, który używasz do głównego okna:
+ <blockquote>
+ <code>base = main, -1, -1</code>
+ </blockquote>
+ MPlayer próbuje załadować <code>main</code>, <code>main.png</code>,
+ <code>main.PNG</code>.
+ </td>
+ </tr>
+</table>
-<tr>
-<td ALIGN=CENTER><tt>$f</tt></td>
-<td>nazwa pliku małymi literami</td>
-</tr>
+<h3><a name="mainwindow">D.2.1 Okno główne i pasek odtwarzania</a></h3>
-<tr>
-<td ALIGN=CENTER><tt>$F</tt></td>
+<p>Poniżej możesz zobaczyć listę elementów, które mogą być użyte w bloku
+ '<code>window = main</code>' .&nbsp;.&nbsp;. '<code>end</code>', i w
+ '<code>window = playbar</code>' &nbsp;.&nbsp;. '<code>end</code>'.</p>
-<td>nazwa pliku drukowanymi literami</td>
-</tr>
+<dl>
+ <dt><a name="main.base"><b><code>base = obrazek, X, Y</code></b></a></dt>
+ <dd>Pozwala ci określić obrazek tła, który ma zostać użyty w głównym oknie.
+Okno to pojawi się w określonej przez <code>x,y</code> pozycji na ekranie.
+Okno to będzie rozmiarów obrazka tła.
+ <div><em class="warn"><b>Informacja:</b> Te parametry narazie nie działają
+ dla okna ekranu.</em></div>
+ <div><em class="warn"><b>Ostrzeżenie:</b> przeźroczyste obszary w obrazku
+ (kolor #FF00FF) pojawiają się jako czarny kolor w X serwerach, które nie
+ obsługują rozszerzenia XShape.</em></div>
+ </dd>
+
+ <dt><a name="main.button"><