Mercurial > mplayer.hg
changeset 11179:321222d19de6
Another file translated.
author | wight |
---|---|
date | Sun, 19 Oct 2003 19:59:07 +0000 |
parents | d5644a03c32e |
children | 3ec115f5f8b8 |
files | DOCS/xml/pl/skin.xml |
diffstat | 1 files changed, 1093 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/pl/skin.xml Sun Oct 19 19:59:07 2003 +0000 @@ -0,0 +1,1093 @@ +<?xml version="1.0" encoding="iso-8859-2"?> +<!-- synced with 1.4 --> +<appendix id="skin"> +<title>Format skórki MPlayera</title> +<para> +Celem tego dokumentu jest opisanie formatu skórki MPlayera. +Informacje zawarte tutaj mogą być niedokładne ponieważ +<orderedlist> +<listitem><para>Nie jestem tym, który pisał GUI.</para></listitem> +<listitem><para>GUI nie jest ukończone.</para></listitem> +<listitem><para>Mogę się mylić.</para></listitem> +</orderedlist> +A więc nie bądź zaskoczony jeśli coś nie będzie działać tak, jak przedstawiono tutaj. +</para> + +<para>Podziękowania <emphasis>Zoltánowi Ponekkerowi</emphasis> za jego pomoc.</para> + +<para><emphasis>András Mohari <mayday@freemail.hu></emphasis></para> + +<sect1 id="skin-overview"> +<title>Wstęp</title> +<para> +W zasadzie nie ma to żadnego związku z formatem skórki, ale powinieneś +wiedzieć, że MPlayer <emphasis role="bold">nie</emphasis> posiada wbudowanej skórki, w związku +z tym <emphasis role="bold"> co najmniej jedna skórka musi być zainstalowana, aby była możliwość +używania GUI.</emphasis> +</para> + +<sect2 id="skin-overview-directories"> +<title>Katalogi</title> +<para> +Skórki są szukane w następujących katalogach (w kolejności): +<orderedlist> +<listitem><para> +<filename class="directory">$(DATADIR)/Skin/</filename> +</para></listitem> +<listitem><para> +<filename class="directory">$(PREFIX)/share/mplayer/Skin/</filename> +</para></listitem> +<listitem><para> +<filename class="directory">~/.mplayer/Skin/</filename> +</para></listitem> +</orderedlist> +</para> + +<para> +Zauważ, że pierwsza ścieżka może się różnić w zależności od sposobu w jaki MPlayer był skonfigurowany +(zobacz argumenty <option>--prefix</option> oraz <option>--datadir</option> w skrypcie + <command>configure</command>). +</para> + +<para> +Każda skórka jest instalowana w swoim własnym katalogu, w jednym z +katalogów wyżej wymienionych, na przykład: +<screen>$(PREFIX)/share/mplayer/Skin/default/</screen> +</para> +</sect2> + +<sect2 id="skin-overview-formats"> +<title>Formaty obrazków</title> +<para>Obrazki muszą być w formacie PNG truecolor (24 lub 32 bpp).</para> +<para> +W głównym oknie oraz na panelu odtwarzania (zobacz niżej) możesz użyć +obrazków z 'przezroczystością': obszary wypełnione kolorem #FF00FF (magenta) są w pełni +przezroczyste dla MPlayera. Oznacza to, że możesz mieć okna o różnych kształtach +jeśli Twój X Server posiada rozszerzenie XShape. +</para> +</sect2> + +<sect2 id="skin-overview-components"> +<title>Składniki skórki</title> +<para> +Skórki są całkowicie konfigurowalne (w odróżnieniu od skórek np. Winampa/XMMS), +a więc zależy to od Ciebie, czy stworzysz coś wspaniałego. +</para> + +<para> +W chwili obecnej mamy trzy okna, które można ozdobić: +<link linkend="skin-file-main">okno główne (main window)</link>, +<link linkend="skin-file-subwindow">okno ekranu (subwindow)</link>, +<link linkend="skin-file-main">panel odtwarzania (playbar)</link>, +<link linkend="skin-file-menu">menu skórki (skin menu)</link> (które może być aktywowane +prawym przyciskiem myszy). + +<itemizedlist> +<listitem><para> + <emphasis role="bold">Okno główne</emphasis> i/lub + <emphasis role="bold">panel odtwarzania</emphasis> to miejsca, gdzie można sterować programem MPlayer. + Tłem tego okna jest obrazek. Różne elementy mogą (i muszą) być umieszczone + w tym oknie: <emphasis>przyciski</emphasis>, <emphasis>potencjometry</emphasis> + (suwaki) i <emphasis>etykiety</emphasis>. Dla każdego elementu musisz określić ich pozycję + oraz rozmiar. +</para><para> + <emphasis role="bold">Przycisk</emphasis> ma trzy stany (wciśnięty, zwolniony, nieaktywny) , + zatem jego obrazki muszą być podzielone na trzy części w pionie. Zobacz sekcję + <link linkend="skin-button">button</link>, by dowiedzieć się więcej. +</para><para> + <emphasis role="bold">Potencjometr (suwak)</emphasis> (wykorzystywany głównie jako pasek + przewijania i kontrolka głośności/balansu) może składać się z każdej liczby stanów poprzez podzielenie jego obrazka + na wiele części, z których jedna poprzedza drugą. Zobacz + <link linkend="skin-hpotmeter">hpotmeter</link> oraz + <link linkend="skin-potmeter">potmeter</link>, by dowiedzieć się więcej. +</para><para> + <emphasis role="bold">Etykiety</emphasis> są nieco specyficzne: Znaki + potrzebne do ich narysowania są pobierane z pliku graficznego, a znaki umieszczone + w pliku graficznym są opisane przez <link linkend="skin-fonts">plik opisu czcionek</link>. + Jest to plik, który za pomocą czystego tekstu określa współrzędne x, y oraz wielkość + każdego znaku umieszczonego na obrazku (plik graficzny i jego plik opisu tworzą + <emphasis>razem</emphasis> zestaw czcionek). Zobacz <link linkend="skin-dlabel">dlabel</link> + oraz <link linkend="skin-slabel">slabel</link>, by dowiedzieć się więcej. +</para> +<note><para>Wszystkie obrazki mogą być całkowicie przezroczyste - tak, jak to opisano +w sekcji <link linkend="skin-overview-formats">formaty plików graficznych</link>. Jeżeli X Server +nie obsługuje rozszerzenia XShape, to elementy oznaczone jako przezroczyste będą czarne. +Jeśli chciałbyś wykorzystać taką możliwość, szerokość obrazka tła głównego okna musi być +podzielna przez 8. +</para></note> +</listitem> + +<listitem><para> + <emphasis role="bold">Okno ekranu</emphasis> to miejsce odtwarzania filmu. Może + ono wyświetlać określony obrazek jeśli żaden film nie jest uruchomiony + (to dość nudne mieć puste okno :-)) <emphasis role="bold">Uwaga:</emphasis> przezroczystość + <emphasis role="bold">nie jest</emphasis> tutaj dostępna. +</para></listitem> + +<listitem><para> + <emphasis role="bold">Menu skórki</emphasis> to po prostu jeden ze sposobów + na kontrolowanie MPlayera poprzez wpisy w menu. Dwa obrazki są wymagane dla tego + menu: pierwszy z nich jest obrazkiem podstawowym, który pokazuje zwykły stan menu, drugi zaś + służy do wyświetlenia zaznaczonych obszarów. Gdy uaktywnisz menu, zostanie pokazany pierwszy obrazek. + Jeśli przesuniesz mysz nad któryś z jego wpisów, wówczas zaznaczony element jest kopiowany z drugiego + obrazka w miejsce, na które wskazuje kursor myszy (drugi obrazek nigdy nie jest wyświetlany jako całość). +</para><para> + Wpis w menu jest określony przez jego pozycję oraz rozmiar na obrazku (zobacz + sekcję <link linkend="skin-file-menu">menu skórki</link> by dowiedzieć się więcej). +</para></listitem> +</itemizedlist> +</para> + +<para> + Jedna ważna sprawa, która nie została jeszcze powiedziana: MPlayer musi wiedzieć co zrobić w momencie + kliknięcia na przyciski, potencjometry i wpisy w menu, aby zadziałały. Zostało to zrobione za pomocą + <link linkend="skin-gui">sygnałów</link> (zdarzeń). + Dla tych elementów musisz zdefiniować sygnały, które mają być generowane podczas ich kliknięcia. +</para> +</sect2> + +<sect2 id="skin-files"> +<title>Pliki</title> +<para> +Potrzebne są następujące pliki podczas tworzenia skórki: +<itemizedlist> +<listitem><para> + Plik konfiguracyjny o nazwie <link linkend="skin-file">skin</link>, mówiący + programowi MPlayer jak połączyć różne części skórki razem i co zrobić, gdy + nastąpi kliknięcie w którymś obszarze okna. +</para></listitem> +<listitem><para> + Plik graficzny tła w oknie głównym. +</para></listitem> +<listitem><para> + Obrazki dla elementów w głównym oknie (zawierające jeden lub + więcej plików opisu czcionek, potrzebnych do rysowania etykiet). +</para></listitem> +<listitem><para> + Obrazek wyświetlany w oknie ekranu (opcjonalnie) +</para></listitem> +<listitem><para> + Dwa obrazki dla menu skórki (potrzebne są tylko wtedy, gdy chcesz tworzyć + takie menu). +</para></listitem> +</itemizedlist> + Za wyjątkiem pliku konfiguracyjnego skórki możesz nazwać wszystkie pliki + tak, jak tego chcesz (ale weź pod uwagę, że pliki opisu czcionek muszą mieć + rozszerzenie <filename>.fnt</filename> ). +</para> +</sect2> +</sect1> + +<sect1 id="skin-file"> +<title>Plik skin</title> +<para> +Jak zostało powiedziane wcześniej, plik ten jest plikiem konfigurującym skórkę. Obsługuje różne +rodzaje wierszy; komentarze zaczynają wiersz znakiem '<literal>;</literal>' (tylko spacje i znaki +tabulacji są dopuszczone przed '<literal>;</literal>'). +</para> + +<para> +Plik podzielony jest na sekcje. Każda sekcja opisuje skórkę dla każdej +aplikacji i ma następującą formę: + +<programlisting> +section = <replaceable>nazwa sekcji</replaceable> +. +. +. +end +</programlisting> +</para> + +<para> +Obecnie jest tylko jedna aplikacja, a więc potrzebujesz tylko jedną sekcję 'section': nazwa tej sekcji to +<emphasis role="bold">movieplayer</emphasis>. +</para> + +<para> +Wewnątrz tej sekcji każde z okien jest opisane przez blok następującej postaci: +<programlisting> +window = <replaceable>nazwa okna</replaceable> +. +. +. +end +</programlisting> +</para> + +<para> +gdzie <replaceable>nazwa okna</replaceable>może być jednym z poniższych łańcuchów: +<itemizedlist> +<listitem><para><emphasis role="bold">main</emphasis> - dla okna głównego</para></listitem> +<listitem><para><emphasis role="bold">sub</emphasis> - dla okna ekranu</para></listitem> +<listitem><para><emphasis role="bold">menu</emphasis> - dla menu skórki</para></listitem> +<listitem><para><emphasis role="bold">playbar</emphasis> - dla panelu odtwarzania</para></listitem> +</itemizedlist> +</para> + +<para> +(Bloki sub i menu są opcjonalne - nie musisz tworzyć menu czy elementów skórki dla okna ekranu) +</para> + +<para> +Wewnątrz bloku 'window' możesz definiować każdy element okna wpisując linijkę tej postaci: +<programlisting>item = parametr</programlisting> +Gdzie <literal>item</literal> jest łańcuchem, kóry identyfikuje typ elementu GUI, + <literal>parametr</literal> jest wartością numeryczną lub tekstową (lub listą takich + wartości oddzielonych od siebie znakiem przecinka). +</para> + +<para> +Złożenie powyższych elementów razem tworzy plik, który wygląda mniej więcej tak: +<programlisting> +section = movieplayer + window = main + ; ... elementy okna głównego ... + end + + window = sub + ; ... elementy okna ekranu ... + end + + window = menu + ; ... elementy menu skórki ... + end + + window = playbar + ; ... elementy panelu odtwarzania ... + end +end +</programlisting> +</para> + +<para> +Nazwa pliku graficznego musi zostać podana bez żadnych nazw katalogów - obrazki +są szukane w katalogu <filename class="directory">Skin</filename>. +Możesz (ale nie musisz) określić rozszerzenia tego pliku. Jeśli plik taki nie istnieje, MPlayer +próbuje wczytać plik <filename><nazwa pliku>.<rozszerzenie></filename>, gdzie <literal>png</literal> +oraz <literal>PNG</literal> są próbowane jako <filename><rozszerzenie></filename> +(w tej właśnie kolejności). Pierwszy pasujący plik będzie użyty. +</para> + +<para> +Na koniec kilka słów na temat pozycjonowania. Okno główne oraz okno ekranu może +zostać umieszczone w różnych narożnikach ekranu poprzez ustawienie współrzędnych + <literal>X</literal> i <literal>Y</literal>. <literal>0</literal> to góra lub lewa strona, +<literal>-1</literal> to środek, <literal>-2</literal> to strona prawa lub dół, tak jak +przedstawiono na poniższej ilustracji: +</para> +<informalfigure> +<screen> +(0, 0)----(-1, 0)----(-2, 0) + | | | + | | | +(0,-1)----(-1,-1)----(-2,-1) + | | | + | | | +(0,-2)----(-1,-2)----(-2,-2) +</screen> +</informalfigure> + +<para> +Oto przykład wyjaśniający to lepiej. Przypuśćmy, że masz obrazek nazwany +<filename>main.png</filename>, który został użyty dla okna głównego: +<programlisting>base = main, -1, -1</programlisting> +MPlayer próbuje wczytać pliki <filename>main</filename>, <filename>main.png</filename>, +<filename>main.PNG</filename>. +</para> + + +<sect2 id="skin-file-main"> +<title>Okno główne i panel odtwarzania</title> +<para> +Poniżej znajduje się lista wpisów, które mogą być użyte w blokach +'<literal>window = main</literal>'. . .'<literal>end</literal>', +oraz '<literal>window = playbar</literal>' . . . '<literal>end</literal>'. +</para> + +<variablelist> +<varlistentry> + <term><literal> + <anchor id="skin-main-base"/>base = obrazek, X, Y + </literal></term> + <listitem><para> + Pozwala określić obrazek tła, który będzie używany w oknie głównym + Okno będzie widoczne w pozycji <literal>X, Y</literal> na ekranie. Okno + będzie wielkości tego obrazka. + </para> + <note><para>Współrzędne te nie działają na razie dla okna ekranu.</para></note> + <warning><para>Obszary przezroczystości obrazka (kolor #FF00FF) będą widoczne jako czarne + pod X serwerami nieposiadającymi rozszerzenia XShape. Szerokość obrazka musi być podzielna przez 8.</para></warning> + </listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-button"/>button = obrazek, X, Y, szerokość, wysokość, sygnał + </literal></term> + <listitem><para> +Umieszcza przycisk o rozmiarze <literal>szerokość</literal> * <literal>wysokość</literal> w pozycji +<literal>X</literal>, <literal>Y</literal>. Określony <literal>sygnał</literal> jest generowany podczas kliknięcia na przycisk. +Obrazek ten opisany przez <literal>obrazek</literal> musi składać się z trzech części jedna pod drugą (stosownie +do możliwych stanów przycisku), w ten oto sposób: +</para> +<informalfigure> +<screen> ++---------------+ +| wciśnięty | ++---------------+ +| zwolniony | ++---------------+ +| nieaktywny | ++---------------+ +</screen> +</informalfigure> + </listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-decoration"/>decoration = enable|disable (włączona|wyłaczona) + </literal></term> + <listitem><para> +Włącza lub wyłącza dekorację menedżera okna w oknie głównym. +Domyślnie jest <emphasis role="bold">wyłączona</emphasis>. + </para> + <note><para>Nie działa to w oknie ekranu, gdyż nie ma takiej potrzeby.</para></note> + </listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-hpotmeter"/>hpotmeter = przycisk, szer_przycisku, wys_przycisku, faza, liczba_faz, domyślny, X, Y, + szerokość, wysokość, sygnał + </literal></term> + <listitem><para> + + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-vpotmeter"/>vpotmeter = przycisk, szer_przycisku, wys_przycisku, fazy, liczba_faz, + domyślny, X, Y, szerokość, wysokość, sygnał + </literal></term> + <listitem><para> +Umieszcza poziomo (hpotmeter) lub pionowo (vpotmeter) suwak o rozmiarze +<literal>szerokość</literal> * <literal>wysokość</literal> i pozycji <literal>X,Y</literal>. +Obrazek może być podzielony na różne części dla różnych faz suwaka (np. możesz mieć +suwak głośności, który w zależności od położenia zmienia kolor z zielonego (minimum) na +czerwony (maksimum)). <literal>hpotmeter</literal> może być przyciskiem umieszczonym poziomo. +Jego parametry to: + </para> + <itemizedlist> + <listitem><para><literal>przycisk</literal> - obrazek użyty do przycisku (musi posiadać trzy części jedna pod drugą tak, + jak w przypadku <link linkend="skin-button">przycisku</link>) + </para></listitem> + <listitem><para><literal>szer_przycisku</literal>, <literal>wys_przycisku</literal> - wielkość przycisku + </para></listitem> + <listitem><para><literal>fazy</literal> - obrazek używany do określenie faz dla hpotmeter. +Wartość specjalna <literal>NULL</literal> może być użyta jeśli nie chcesz żadnego obrazka. +Obrazek musi być podzielony w pionie na <literal>fragmenty poszczególnych faz</literal> tak, jak poniżej: + </para> +<informalfigure> +<screen> ++------------+ +| faza #1 | ++------------+ +| faza #2 | ++------------+ + ... ++------------+ +| faza #n | ++------------+ +</screen> + +</informalfigure> + </listitem> + <listitem><para><literal>liczba_faz</literal> - liczba faz znajdująca się na obrazku z <literal>fazami</literal> + </para></listitem> + <listitem><para><literal>domyślny</literal> - domyślne ustawienie dla hpotmeter + (zakres od <literal>0</literal> do <literal>100</literal>) + </para></listitem> + <listitem><para><literal>X</literal>, <literal>Y</literal> - pozycja dla hpotmeter + </para></listitem> + <listitem><para><literal>szerokość</literal>, <literal>wysokość</literal> - szerokość i wysokość dla + <literal>hpotmeter</literal> + </para></listitem> + <listitem><para><literal>sygnał</literal> - sygnał generowany podczas zmiany wartości <literal>hpotmeter</literal> + </para></listitem> + </itemizedlist> + + </listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-potmeter"/>potmeter = fazy, liczba_faz, domyślny, X, Y, szerokość, wysokość, sygnał + </literal></term> + <listitem><para> +<literal>hpotmeter</literal> bez przycisku. (domyślam się, że chodzi o to, aby +nim kręcić, ale reaguje on tylko na poziome przesuwanie). Opis parametrów znajdziesz w części o +<link linkend="skin-hpotmeter">hpotmeter</link>. +Parametr <literal>fazy</literal> może mieć wartość <literal>NULL</literal>, ale +jest to zupełnie bezużyteczne, gdyż nie widać wtedy położenia potencjometru. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-font"/>font = plik_czcionek, id_czcionki + </literal></term> + <listitem><para> +Definiuje czcionki. <literal>plik_czcionek</literal> jest nazwą pliku opisu czcionek z rozszerzeniem +<filename>.fnt</filename> (nie podawaj rozszerzenia w tym miejscu). +<literal>id_czcionki</literal> jest używany do wskazywania konkretnej czcionki (zobacz <link linkend="skin-dlabel">dlabel</link> +oraz <link linkend="skin-slabel">slabel</link>). Można zdefiniować do 25 czcionek. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-slabel"/>slabel = X, Y, id_czcionki, "tekst" + </literal></term> + <listitem><para> +Umieszcza statyczną etykietę w pozycji <literal>X,Y</literal>. <literal>tekst</literal> +jest wyświetlany za pomocą czcionek wskazywanych przez <literal>id_czcionki</literal>. Tekst jest +po prostu zwykłym łańcuchem znaków (zmienne <literal>$x</literal> nie działają), które muszą być umieszczone +pomiędzy podwójnym cudzysłowem (a znak " nie może być częścią tekstu). Etykieta +wyświetlana jest za pomocą czcionek, na które wskazuje <literal>id_czcionki</literal>. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-dlabel"/>dlabel = X, Y, długość, wyrównanie, id_czcionki, "tekst" + </literal></term> + <listitem> +<para> +Umieszcza dynamiczną etykietę w pozycji <literal>X,Y</literal>. Etykieta jest nazywana +dynamiczną ponieważ jej tekst jest cyklicznie odświeżany. Maksymalna długość etykiety +określa parametr <literal>długość</literal> (jej wysokość określa wysokość czcionek). +Jeśli tekst jest szerszy niż zdefiniowana długość, będzie on przewijany, w przeciwnym wypadku +będzie wyrównany w miejscu określonym przez wartość parametru <literal>wyrównanie</literal>: <literal>0</literal> +oznacza do prawej, <literal>1</literal> to wyśrodkowanie, <literal>2</literal> to wyrównanie do lewej. +</para> +<para> +Wyświetlany tekst jest określony przez zmienną <literal>tekst</literal>: musi być zawarty +pomiędzy podwójnymi cudzysłowami (a znak " nie może być częścią tekstu). Etykieta +wyświetlana jest za pomocą czcionek, na które wskazuje parametr <literal>id_czcionki</literal>. Możesz +użyć następujących zmiennych w tekście: +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Zmienna</entry><entry>Znaczenie</entry></row> +</thead> +<tbody> +<row> +<entry>$1</entry> +<entry>czas odtwarzania w formacie <emphasis>hh:mm:ss</emphasis></entry> +</row> +<row> +<entry>$2</entry> +<entry>czas odtwarzania w formacie <emphasis>mmmm:ss</emphasis></entry> +</row> +<row> +<entry>$3</entry> +<entry>czas odtwarzania w formacie (godziny) <emphasis>hh</emphasis></entry> +</row> +<row> +<entry>$4</entry> +<entry>czas odtwarzania w formacie (minuty) <emphasis>mm</emphasis></entry> +</row> +<row> +<entry>$5</entry> +<entry>czas odtwarzania w formacie (sekundy) <emphasis>ss</emphasis></entry> +</row> +<row> +<entry>$6</entry> +<entry>długość filmu w formacie <emphasis>hh:mm:ss</emphasis></entry> +</row> +<row> +<entry>$7</entry> +<entry>długość filmu w formacie <emphasis>mmmm:ss</emphasis></entry> +</row> +<row> +<entry>$8</entry> +<entry>długość filmu w formacie<emphasis>h:mm:ss</emphasis></entry> +</row> +<row> +<entry>$v</entry> +<entry>format głośności w %<emphasis>xxx.xx</emphasis></entry> +</row> +<row> +<entry>$V</entry> +<entry>format głośności <emphasis>xxx.xx</emphasis> format</entry> +</row> +<row> +<entry>$b</entry> +<entry>format balansu w %<emphasis>xxx.xx</emphasis></entry> +</row> +<row> +<entry>$B</entry> +<entry>format balansu <emphasis>xxx.xx</emphasis></entry> +</row> +<row> +<entry>$$</entry> +<entry>znak $</entry> +</row> +<row> +<entry>$a</entry> +<entry>oznaczenie zgodne z rodzajem typu pliku audio (nic: <literal>n</literal>, +mono: <literal>m</literal>, stereo: <literal>t</literal>)</entry> +</row> +<row> +<entry>$t</entry> +<entry>numer ścieżki (na liście odtwarzania)</entry> +</row> +<row> +<entry>$o</entry> +<entry>nazwa pliku</entry> +</row> +<row> +<entry>$f</entry> +<entry>nazwa pliku pisana małymi literami</entry> +</row> +<row> +<entry>$F</entry> +<entry>nazwa pliku pisana wielkimi literami</entry> +</row> +<row> +<entry>$T</entry> +<entry>oznaczenie zgodne z rodzajem strumienia (plik: <literal>f</literal>, +Video CD: <literal>v</literal>, DVD: <literal>d</literal>, URL: <literal>u</literal>)</entry> +</row> +<row> +<entry>$p</entry> +<entry>znak <keycap>p</keycap> (gdy film jest odtwarzany i czcionka ma znak <keycap>p</keycap>)</entry> +</row> +<row> +<entry>$s</entry> +<entry>znak <keycap>s</keycap> (gdy film jest zatrzymany i czcionka ma znak <keycap>s</keycap>)</entry> +</row> +<row> +<entry>$e</entry> +<entry>znak <keycap>e</keycap> (gdy film jest wstrzymany (pauza) i czcionka ma znak <keycap>e</keycap>) +</entry> +</row> +<row> +<entry>$x</entry> +<entry>rozdzielczość filmu (szerokość)</entry> +</row> +<row> +<entry>$y</entry> +<entry>rozdzielczość filmu (wysokość)</entry> +</row> +<row> +<entry>$C</entry> +<entry>nazwa używanego kodeka</entry> +</row> + +</tbody> +</tgroup> +</informaltable> +</listitem> + +</varlistentry> +</variablelist> + +<note><para> +Zmienne <literal>$a, $T, $p, $s</literal> oraz <literal>$e</literal> +zwracają znaki, które powinny być wyświetlane jako znaki specjalne (na przykład +<keycap>e</keycap> jest symbolem pauzy, która z reguły wygląda mniej więcej tak +||). Powinieneś mieć czcionkę dla zwykłych znaków oraz osobną czcionkę dla symboli. +Zobacz sekcję na temat <link linkend="skin-fonts-symbols">symboli</link>, +by dowiedzieć się więcej. +</para></note> +</sect2> + +<sect2 id="skin-file-subwindow"> +<title>Okno ekranu</title> +<para> +Poniższe wpisy mogą być użyte w bloku +'<literal>window = sub</literal>' . . . '<literal>end</literal>' . +</para> + +<variablelist> +<varlistentry> + <term><literal> + <anchor id="skin-sub-base"/>base = obrazek, X, Y, szerokość, wysokość + </literal></term> + <listitem><para> +Wyświetla obrazek w oknie. Okno będzie widoczne na ekranie w miejscu oznaczonym przez współrzędne +<literal>X</literal>, <literal>Y</literal> (<literal>0,0</literal> to lewy górny narożnik). +Możesz użyć <literal>-1</literal> dla środka, <literal>-2</literal> +dla prawej strony (<literal>X</literal>) i dołu (<literal>Y</literal>). Okno +będzie mieć wielkość obrazka. <literal>szerokość</literal> oraz <literal>wysokość</literal> +oznaczają wielkość okna; są one opcjonalne (jeśli nie są określone, okno będzie wielkości takiej, jak obrazek).</para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-background"/>background = R, G, B + </literal></term> + <listitem><para> + Pozwala ustawić kolor tła. Jest to użyteczne jeśli obrazek jest mniejszy niż okno. + <literal>R</literal>, <literal>G</literal> oraz <literal>B</literal> określają składniki kolorów + czerwonego, zielonego i niebieskiego (każdy z nich jest reprezentowany przez liczbę dziesiętną w zakresie + od 0 do 255).</para></listitem> +</varlistentry> +</variablelist> +</sect2> + +<sect2 id="skin-file-menu"> +<title>Menu skórki</title> +<para> +Jak wspomniano wcześniej, menu jest wyświetlane przy użyciu dwóch obrazków. +Zwykłe obszary menu są pobierane z obrazka określonego przez element <literal>base</literal>, +podczas gdy obszary zaznaczone są pobierane z obrazka wskazywanego przez element <literal>selected</literal>. +Musisz zdefiniować pozycję i rozmiar każdego obszaru menu poprzez element menu. +</para> + +<para> +Poniższe wpisy mogą być użyte w bloku: +'<literal>window = menu</literal>'. . .'<literal>end</literal>' . +</para> + +<variablelist> +<varlistentry> + <term><literal> + <anchor id="skin-menu-base"/>base = obrazek + </literal></term> + <listitem><para> +Obrazek dla zwykłych obszarów menu. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-selected"/>selected = obrazek + </literal></term> + <listitem><para> +Obrazek pokazujący w menu wszystkie zaznaczone obszary. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-menu"/>menu = X, Y, szerokość, wysokość, sygnał + </literal></term> + <listitem><para> +Definiuje pozycję i rozmiar obszarów menu na obrazku przy pomocy <literal>X,Y</literal>. +<literal>sygnał</literal> to zdarzenie wygenerowane podczas zwolnienia przycisku +myszy nad obszarem. + </para></listitem> +</varlistentry> +</variablelist> +</sect2> +</sect1> + +<sect1 id="skin-fonts"> +<title>Czcionki</title> +<para> +Jak wspomniano w sekcji na temat fragmentów skórki, czcionka jest definiowana przez +obrazek i plik opisujący. Możesz umieścić znak gdziekolwiek na obrazku, ale miej +pewność, że jego pozycja i rozmiar jest podana właściwie w pliku opisującym. +</para> + +<para> +Plik opisujący czcionki (o rozszerzeniu <filename>.fnt</filename>) może posiadać +linie komentarzy zaczynające się znakiem '<literal>;</literal>'. Plik musi zawierać +linie w postaci: +<anchor id="skin-font-image"/> +<programlisting>image = <replaceable>obrazek</replaceable></programlisting> +Gdzie <literal><replaceable>obrazek</replaceable></literal> jest nazwą pliku +graficznego, który zawiera czcionki (nie musisz dopisywać jego rozszerzenia). +<anchor id="skin-font-char"/> +<programlisting>"char" = X, Y, szerokość, wysokość</programlisting> +<literal>X</literal> oraz <literal>Y</literal> określają pozycję znaku +<literal>char</literal> na obrazku (<literal>0,0</literal> to górny lewy narożnik). +<literal>szerokość</literal> i <literal>wysokość</literal> to rozmiar znaku +w pikselach. +</para> + +<para> +Przykład: definiujemy znaki A, B, C przy użyciu pliku <filename>font.png</filename>. +<programlisting> +; Może być "font" zamiast "font.png". +image = font.png + +; Trzy znaki wystarczą do tej demonstracji :-) +"A" = 0,0, 7,13 +"B" = 7,0, 7,13 +"C" = 14,0, 7,13 +</programlisting> +</para> + +<sect2 id="skin-fonts-symbols"> +<title>Znaki specjalne (symbole)</title> +<para> +Niektóre znaki mają specjalne znaczenie, gdy są zwracane przez pewne zmienne +używane w <link linkend="skin-dlabel">dlabel</link>. Znaki te mogą być wyświetlane jako symbole +w ten sposób, że np. podczas odtwarzania strumienia DVD widoczne jest ładne logo zamiast znaku '<literal>d</literal>'. +</para> +<para> +Poniższa tablica zawiera znaki używane do wyświetlania symboli (wymagają one oddzielnych czcionek). +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Znak</entry><entry>Symbol</entry></row> +</thead> +<tbody> +<row><entry><keycap>p</keycap></entry><entry>odtwarzanie</entry></row> +<row><entry><keycap>s</keycap></entry><entry>stop</entry></row> +<row><entry><keycap>e</keycap></entry><entry>pauza</entry></row> +<row><entry><keycap>n</keycap></entry><entry>bez dźwięku</entry></row> +<row><entry><keycap>m</keycap></entry><entry>dźwięk mono</entry></row> +<row><entry><keycap>t</keycap></entry><entry>dźwięk stereo</entry></row> +<row><entry><keycap>f</keycap></entry><entry>strumień z pliku</entry></row> +<row><entry><keycap>v</keycap></entry><entry>strumień z Video CD</entry></row> +<row><entry><keycap>d</keycap></entry><entry>strumień z DVD</entry></row> +<row><entry><keycap>u</keycap></entry><entry>strumień z URL</entry></row> +</tbody> +</tgroup> +</informaltable> +</sect2> +</sect1> + +<sect1 id="skin-gui"> +<title>Sygnały GUI</title> +<para> +Tutaj znajdują się sygnały, które mogą być generowane przez przyciski, suwaki +i elementy menu. +</para> +<note><para> +Niektóre sygnały mogą nie działać w oczekiwany sposób (lub nie działać w ogóle). +Jak wiadomo, GUI jest jeszcze w fazie rozwoju. +</para></note> + +<variablelist> +<title>Kontrola odtwarzania :</title> +<varlistentry> + <term><emphasis role="bold">evNext</emphasis></term> + <listitem><para> +Przejdź do następnej pozycji na liście odtwarzania. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPause</emphasis></term> + <listitem><para> + Tworzy przełącznik razem z <literal>evPlaySwitchToPause</literal>. + Mogą być użyte do utworzenia wspólnego przycisku dla odtwarzania/pauzy. + Oba sygnały powinny być powiązane z przyciskami wyświetlonymi w tej samej + pozycji w oknie. Sygnał wstrzymuje wtedy odtwarzanie i wyświetlanty jest + obrazek dla przycisku <literal>evPlaySwitchToPause</literal> (aby zaznaczyć, + że przycisk ten może być użyty do kontynuowania odtwarzania). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlay</emphasis></term> + <listitem><para> +Rozpoczyna odtwarzanie. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlaySwitchToPause</emphasis></term> + <listitem><para> +Przeciwieństwo <literal>evPauseSwitchToPlay</literal>. Ten sygnał zaczyna odtwarzanie +oraz wyświetlenie obrazka dla przycisku <literal>evPauseSwitchToPlay</literal> +(aby zaznaczyć, że przycisk ten może być użyty ponownie do wstrzymania odtwarzania). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPrev</emphasis></term> + <listitem><para> +Przejdź do poprzedniej pozycji na liście odtwarzania. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evStop</emphasis></term> + <listitem><para> +Zatrzymuje odtwarzanie. + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>Przewijanie:</title> +<varlistentry> + <term><emphasis role="bold">evBackward10sec</emphasis></term> + <listitem><para> +Przewija do tyłu o 10 sekund. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evBackward1min</emphasis></term> + <listitem><para> +Przewija do tyłu o 1 minutę. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evBackward10min</emphasis></term> + <listitem><para> +Przewija do tyłu o 10 minut. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evForward10sec</emphasis></term> + <listitem><para> +Przewija do przodu o 10 sekund. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evForward1min</emphasis></term> + <listitem><para> +Przewija do przodu o 1 minutę. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evForward10min</emphasis></term> + <listitem><para> +Przewija do przodu o 10 minut.. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetMoviePosition</emphasis></term> + <listitem><para> +Przewija do pozycji (może być wykorzystane przez suwak; +użyte są względne wartości (0-100%) suwaka). + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>Kontrola video:</title> +<varlistentry> + <term><emphasis role="bold">evDoubleSize</emphasis></term> + <listitem><para> +Ustawia podwójny rozmiar okna z filmem. + </para></listitem> +</varlistentry> +<varlistentry> + <term><emphasis role="bold">evFullScreen</emphasis></term> + <listitem><para> +Włącza/wyłącza tryb pełnoekranowy. + </para></listitem> +</varlistentry> +<varlistentry> + <term><emphasis role="bold">evNormalSize</emphasis></term> + <listitem><para> +Ustawia typowy rozmiar okna z filmem. + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>Kontrola dźwięku:</title> +<varlistentry> + <term><emphasis role="bold">evDecAudioBufDelay</emphasis></term> + <listitem><para> +Zmniejsza opóźnienie bufora dźwięku. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evDecBalance</emphasis></term> + <listitem><para> +Zmniejsza balans. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evDecVolume</emphasis></term> + <listitem><para> +Zmniejsza głośność + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evIncAudioBufDelay</emphasis></term> + <listitem><para> +Zwiększa opóźnienie bufora dźwięku. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evIncBalance</emphasis></term> + <listitem><para> +Zwiększa balans. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evIncVolume</emphasis></term> + <listitem><para> +Zwiększa głośność. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evMute</emphasis></term> + <listitem><para> +Wycisza/przywraca dźwięk. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetBalance</emphasis></term> + <listitem><para> +Ustawia balans (może być używane przez suwak; +używana jest wartość względna (0-100%)). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetVolume</emphasis></term> + <listitem><para> +Ustawia głośność (może być używane przez suwak; +używana jest wartość względna (0-100%)). + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>Różne:</title> +<varlistentry> + <term><emphasis role="bold">evAbout</emphasis></term> + <listitem><para> +Otwiera okno "o programie". + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evDropSubtitle</emphasis></term> + <listitem><para> +Wyłącza aktualnie używane napisy. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evEqualizer</emphasis></term> + <listitem><para> +Włącza/wyłącza equalizer. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evExit</emphasis></term> + <listitem><para> +Wyłącza program. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evIconify</emphasis></term> + <listitem><para> +Minimalizuje okno. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evLoad</emphasis></term> + <listitem><para> +Wczytuje plik (poprzez otwarcie okna przeglądarki plików, gdzie możesz wybrać plik). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evLoadPlay</emphasis></term> + <listitem><para> +Robi to samo co <literal>evLoad</literal>, ale zaczyna automatycznie odtwarzać +zaraz po wyborze pliku. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evLoadSubtitle</emphasis></term> + <listitem><para> +Wczytuje plik z napisami (z przeglądarki plików). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evLoadAudioFile</emphasis></term> + <listitem><para> +Wczytuje plik dźwiękowy (z przeglądarki plików). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evNone</emphasis></term> + <listitem><para> +Sygnał pusty - nic nie robi (może za wyjątkiem wersji z CVS:-)). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlayList</emphasis></term> + <listitem><para> +Otwórz/zamknij okno listy odtwarzania. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlayDVD</emphasis></term> + <listitem><para> +Próbuje odczytać płytę ze wskazanego czytnika DVD. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlayVCD</emphasis></term> + <listitem><para> +Próbuje odczytać płytę ze wskazanego czytnika CD. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPreferences</emphasis></term> + <listitem><para> +Otwiera okno z ustawieniami. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetAspect</emphasis></term> + <listitem><para> +Ustawia proporcje obrazu. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetURL</emphasis></term> + <listitem><para> +Wyświetla okienko dialogowe URL. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSkinBrowser</emphasis></term> + <listitem><para> +Otwiera okno przeglądarki skórek. + </para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +</appendix>