Mercurial > mplayer.hg
view DOCS/xml/pl/skin.xml @ 27528:0474738b5577
more French typography fixes and wording fixes, by C彨眃ric Viou and myself
author | gpoirier |
---|---|
date | Tue, 09 Sep 2008 21:07:26 +0000 |
parents | 655565aafbe4 |
children | 0f1b5b68af32 |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <!-- synced with r19081 --> <!-- Opiekun: Flex --> <appendix id="skin"> <title>Format sk贸rki <application>MPlayera</application></title> <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 <application>MPlayer</application> <emphasis role="bold">nie</emphasis> ma wbudowanej sk贸rki, w zwi膮zku z tym <emphasis role="bold"> co najmniej jedna sk贸rka musi by膰 zainstalowana, aby艣 mia艂 mo偶liwo艣膰 korzystania z 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)/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> Zauwa偶, 偶e pierwsza 艣cie偶ka mo偶e si臋 r贸偶ni膰, w zale偶no艣ci od sposobu w jaki <application>MPlayer</application> zosta艂 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 jednej z wy偶ej wymienionych lokacji, na przyk艂ad: <screen>$(PREFIX)/share/mplayer/skins/default/</screen> </para> </sect2> <sect2 id="skin-overview-formats"> <title>Formaty obrazk贸w</title> <para>Obrazki musz膮 by膰 zapisane w formacie PNG (paleta 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 <application>MPlayera</application>. Oznacza to, 偶e mo偶esz mie膰 okna o r贸偶nych kszta艂tach je艣li Tw贸j X Server ma 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. <application>Winampa</application>/<application>XMMS</application>), a wi臋c zale偶y to wy艂膮cznie od Ciebie, czy stworzysz co艣 wspania艂ego. </para> <para> W chwili obecnej mamy cztery 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偶esz sterowa膰 <application>MPlayerem</application>. 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 jest pod 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> czcionk臋). 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, gdzie odtwarzany jest film. 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 <application>MPlayera</application> poprzez wpisy w menu. Dwa obrazki s膮 do tego potrzebne: 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 w ca艂o艣ci). </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: <application>MPlayer</application> 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膰 wys艂ane podczas klikni臋cia na nie. </para> </sect2> <sect2 id="skin-files"> <title>Pliki</title> <para> Potrzebujesz nast臋puj膮cych plik贸w do stworzenia sk贸rki: <itemizedlist> <listitem><para> Plik konfiguracyjny o nazwie <link linkend="skin-file">skin</link> m贸wi <application>MPlayerowi</application> jak po艂膮czy膰 r贸偶ne cz臋艣ci sk贸rki w jedn膮 ca艂o艣膰 i co zrobi膰, gdy kliknie si臋 gdzie艣 na 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 stworzy膰 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' - jej nazwa 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">skins</filename>. Mo偶esz (ale nie musisz) okre艣li膰 rozszerzenia tego pliku. Je艣li plik taki nie istnieje, <application>MPlayer</application> spr贸buje wczyta膰 plik <filename><nazwa pliku>.<rozszerzenie></filename>, gdzie <literal>png</literal> oraz <literal>PNG</literal> s膮 brane 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偶esz umie艣ci膰 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> <application>MPlayer</application> spr贸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> Mo偶esz okre艣li膰 obrazek t艂a, kt贸ry b臋dzie u偶ywany w oknie g艂贸wnym. Okno b臋dzie widoczne na ekranie na wsp贸艂rz臋dnych <literal>X, Y</literal>. 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 niemaj膮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> Umie艣ci przycisk o rozmiarze <literal>szeroko艣膰</literal> * <literal>wysoko艣膰</literal> na 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艂膮czona) </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 fragmenty <literal>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 czcionk臋. <literal>plik_czcionek</literal> jest nazw膮 pliku opisu czcionki 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膮 czcionki wskazywanych przez <literal>id_czcionki</literal>. Tekst jest po prostu zwyk艂ym 艂a艅cuchem znak贸w (zmienne <literal>$x</literal> nie dzia艂aj膮), kt贸ru musi by膰 umieszczony pomi臋dzy podw贸jnym cudzys艂owem (znak " nie mo偶e by膰 cz臋艣ci膮 tekstu). Etykieta wy艣wietlana jest za pomoc膮 czcionki, na kt贸r膮 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. Maksymaln膮 d艂ugo艣膰 etykiety okre艣la parametr <literal>d艂ugo艣膰</literal> (jej wysoko艣膰 okre艣la wysoko艣膰 czcionki). 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 (znak " nie mo偶e by膰 cz臋艣ci膮 tekstu). Etykieta wy艣wietlana jest za pomoc膮 czcionki, na kt贸r膮 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膰 znaki gdziekolwiek na obrazku, ale miej pewno艣膰, 偶eich pozycja i rozmiar jest dok艂adnie podana w pliku opisuj膮cym. </para> <para> Plik opisuj膮cy czcionk臋 (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 czcionk臋 (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> <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 odtwarzania/pauzy. Oba sygna艂y powinny by膰 powi膮zane z przyciskami wy艣wietlonymi na tej samej pozycji w oknie. Sygna艂 ten wstrzymuje odtwarzanie i wy艣wietla 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> Rozpocznij 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艣wietla obrazek 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> Zatrzymaj odtwarzanie. </para></listitem> </varlistentry> </variablelist> <variablelist> <title>Przewijanie:</title> <varlistentry> <term><emphasis role="bold">evBackward10sec</emphasis></term> <listitem><para> Przewi艅 do ty艂u o 10 sekund. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evBackward1min</emphasis></term> <listitem><para> Przewi艅 do ty艂u o 1 minut臋. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evBackward10min</emphasis></term> <listitem><para> Przewi艅 do ty艂u o 10 minut. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evForward10sec</emphasis></term> <listitem><para> Przewi艅 do przodu o 10 sekund. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evForward1min</emphasis></term> <listitem><para> Przewi艅 do przodu o 1 minut臋. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evForward10min</emphasis></term> <listitem><para> Przewi艅 do przodu o 10 minut.. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evSetMoviePosition</emphasis></term> <listitem><para> Przewi艅 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">evHalfSize</emphasis></term> <listitem><para> Ustawia okno filmu na po艂ow臋 rozmiaru. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evDoubleSize</emphasis></term> <listitem><para> Ustaw podw贸jny rozmiar okna z filmem. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evFullScreen</emphasis></term> <listitem><para> W艂膮cz/wy艂膮cz tryb pe艂noekranowy. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evNormalSize</emphasis></term> <listitem><para> Ustaw 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> Zmniejsz op贸藕nienie bufora d藕wi臋ku. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evDecBalance</emphasis></term> <listitem><para> Zmniejsz balans. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evDecVolume</emphasis></term> <listitem><para> Zmniejsz g艂o艣no艣膰 </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evIncAudioBufDelay</emphasis></term> <listitem><para> Zwi臋ksz op贸藕nienie bufora d藕wi臋ku. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evIncBalance</emphasis></term> <listitem><para> Zwi臋ksz balans. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evIncVolume</emphasis></term> <listitem><para> Zwi臋ksz g艂o艣no艣膰. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evMute</emphasis></term> <listitem><para> Wycisz/przywr贸膰 d藕wi臋k. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evSetBalance</emphasis></term> <listitem><para> Ustawi 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> Ustaw 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> Otw贸rz okno "o programie". </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evDropSubtitle</emphasis></term> <listitem><para> Wy艂膮cz aktualnie u偶ywane napisy. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evEqualizer</emphasis></term> <listitem><para> W艂膮cz/wy艂膮cz korektor. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evExit</emphasis></term> <listitem><para> Wy艂膮cz program. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evIconify</emphasis></term> <listitem><para> Minimalizuj okno. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evLoad</emphasis></term> <listitem><para> Wczytaj 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> Tto samo co <literal>evLoad</literal>, ale zacznij automatycznie odtwarza膰 zaraz po wyborze pliku. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evLoadSubtitle</emphasis></term> <listitem><para> Wczytaj plik z napisami (z przegl膮darki plik贸w). </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evLoadAudioFile</emphasis></term> <listitem><para> Wczytaj 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 Subversion:-)). </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> Spr贸buj odczyta膰 p艂yt臋 ze wskazanego czytnika DVD. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evPlayVCD</emphasis></term> <listitem><para> Spr贸buj odczyta膰 p艂yt臋 ze wskazanego czytnika CD. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evPreferences</emphasis></term> <listitem><para> Otw贸rz okno z ustawieniami. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evSetAspect</emphasis></term> <listitem><para> Ustaw proporcje obrazu. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evSetURL</emphasis></term> <listitem><para> Wy艣wietl okienko dialogowe URL. </para></listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">evSkinBrowser</emphasis></term> <listitem><para> Otw贸rz okno przegl膮darki sk贸rek. </para></listitem> </varlistentry> </variablelist> </sect1> <sect1 id="skin-quality"> <title>Tworzenie dobrych sk贸rek</title> <para> Wygl膮da na to, 偶e przeczyta艂e艣 o tworzeniu sk贸rek dla GUI <application>MPlayera</application>, da艂e艣 z siebie wszystko u偶ywaj膮c <application>Gimpa</application> i chcia艂by艣 umie艣ci膰 u nas swoj膮 sk贸rk臋? Zapoznaj si臋 z kilkoma wytycznymi, 偶eby unikn膮膰 najcz臋stszych pomy艂ek i stworzy膰 sk贸rk臋 wysokiej jako艣ci. </para> <para> Chcemy aby sk贸rki, kt贸re dodajemy do naszego repozytorium, spe艂nia艂y okre艣lone standardy jako艣ci. Istnieje r贸wnie偶 kilka rzeczy, kt贸re mo偶esz zrobi膰, 偶eby u艂atwi膰 sobie 偶ycie. </para> <para> Jako wzorzec mo偶esz wzi膮膰 sk贸rk臋 <systemitem>Blue</systemitem>, od wersji 1.5 spe艂nia one wszystkie wymienione ni偶ej kryteria. </para> <itemizedlist> <listitem><para>Do ka偶dej sk贸rki powinien by膰 do艂膮czony plik <filename>README</filename> zawieraj膮cy informacje o tobie, czyli autorze, prawach autorskich i licencji i wszystkie inne informacje, kt贸re zechcesz doda膰. Je偶eli chcesz prowadzi膰 list臋 zmian, ten plik jest na to dobrym miejscem.</para></listitem> <listitem><para>Nale偶y doda膰 plik <filename>VERSION</filename> zawieraj膮cy tylko i wy艂膮cznie wersj臋 sk贸rki zapisan膮 w jednej linii (np. 1.0) </para></listitem> <listitem><para>Poziome i pionowe kontrolki (suwaki do zmiany g艂o艣no艣ci albo pozycji) powinny mie膰 ga艂ki prawid艂owo wycentrowane na 艣rodku suwaka. Powinno si臋 da膰 przesun膮膰 ga艂k臋 na oba ko艅ce suwaka, ale nie poza jego obszar.</para></listitem> <listitem><para>Elementy sk贸rki powinny mie膰 prawid艂owo zadeklarowane rozmiary w pliku sk贸rki. W przeciwnym wypadku mo偶liwe b臋dzie klikni臋cie poza obszarem np. przycisku i jego naci艣ni臋cia lub klikni臋cie wewn膮trz obszaru przycisku i nie naci艣ni臋cie go. </para></listitem> <listitem><para>Plik <filename>skin</filename> powinien by膰 艂adnie sformatowany i nie powinien zawiera膰 tabulacji. 艁adnie sformatowany, czyli taki w kt贸rym numery s膮 艂adnie ustawione w kolumnach.</para></listitem> </itemizedlist> </sect1> </appendix>