# Skórki - Katalog elementów

Wszystkie informacje niezbędne dla skórek w formie katalogu.

Struktura skórki
Struktura pliku SkinInfo.txt
Struktura pliku Interface.xml
Wykaz tagów Interface.xml
Wykaz parametrów tagów Interface.xml
Rodzaje elementów skórki
Wykaz wszystkich elementów skórki

## Struktura skórki

Plik | Funkcja | Wymagania
--- | --- | ---
Skórka.las | Łączy wszystkie pliki skórki w jeden niezrozumiały plik, którego niedoświadczony użytkownik nie rozpakuje. |

1. Nazwa pliku: jakiś.las (do celów osobistych można używać .zip lub w ogóle nie spakowanej skórki);
2. archiwum w formacie ZIP;
3. algorytm kompresji DEFLATE (używany w archiwizerach domyślnie);
4. metoda kompresji (szybka/normalna/maksymalna, itp.) - dowolna, ale zalecana jest maksymalna.

SkinInfo.txt | Informacja o skórce w oknie ustawień |

1. Nazwa pliku: "SkinInfo.txt";
2. Kodowanie: UTF-8 with signature (również - UTF-8 BOM).

Preview.png | Podgląd skórki w oknie ustawień |

1. Nazwa pliku: "Preview.png";
2. Parametry zapisu w PNG: dowolne;
3. Rozmiar obrazka: 200х150.

Interface.xml | Opisuje, co, gdzie i jak będzie się znajdowało |

1. Nazwa pliku: "Interface.xml";
2. Kodowanie: UTF-8 with signature (również - UTF-8 BOM).

Skin.png (.png) | Źródło całej grafiki skórki | Obrazy:

1. konieczne jest unikanie pozostawiania dużo wolnego miejsca (ale nie kosztem wygody);
2. konieczne jest rozdzielanie wszystkich obrazków w pliku odstępami 1 piksela (łącznie z odstępami między z stanami przycisku) dla wygody oglądania i późniejszej adjustacji.

PNG:

1. nazwa pliku: dowolna;
2. przestrzeń kolorów: dowolna (24 bit/256/2 kolorów);
3. przezroczystość nie jest obsługiwana;
4. jeśli oryginalny plik PNG został stworzony w Photoshopie, zalecane jest ponowne zapisanie przy pomocy FastStone Image Viewer (darmowy do użytku domowego), - możliwe jest jest 2-4 razy zmniejszenie rozmiaru pliku.

BMP:

1. nazwa pliku: dowolna;
2. przestrzeń kolorów: dowolna (24 bit/256/16/2 kolorów);
3. Kompresja w RLE nie jest zalecana, tzn. to osłabia kompresję całej skórki i będzie ona duża.

## Struktura pliku SkinInfo.txt

Parametry:

- nazwa pliku: "skinInfo.txt" (nie należy zmieniać);
- kodowanie: UTF-8 with signature (również - UTF-8 BOM);
- używany język: angielski (przynajmniej angielskie litery).

Plik SkinInfo.txt składa się z 5-ciu linii. Ograniczenie dla każdej linii - nie więcej niż 45 znaków. Zawijanie linii jest niedozwolone.

Linia | Wartość
--- | ---
SkinTitle | Nazwa skórki
SkinAuthor | Autor skórki (nazwisko lub pseudonim)
SkinVer | Wersja skórki
SkinWWW | Strona WWW skórki; zalecane jest podawanie odnośników do tematu na oficjalnym forum, lecz niekoniecznie.
SkinCmt | Komentarz do skórki o dowolnej treści
SkinAudio | Jesli "0", to skóra jest uważana za dostępną tylko w trybie normalnym; jeśli "1", to skórka będzie dostępna tylko w trybie audio.

Przykład:

SkinTitle=Dub Audio SkinAuthor=Gilorn, Dvigok SkinVer=4.7.5.2 SkinWWW=http://www.light-alloy.ru/forum/ru_skins/dub_audio/ SkinCmt=Dub skin for audio SkinAudio=1

## Struktura pliku Interface.xml

<SKIN minsize="," type="standart">

Blok do określania stałych graficznych (podbloki mogą znajdować się w dowolnej kolejności)

<IMAGE id="Logo" file="logo.png"> stała logotypu

<IMAGE id="HD" file="Header.png"> stałe górnego panelu (nagłówka)

<IMAGE id="FT" file="Footer.png"> stałe dolnego panelu (panelu sterowania)

<IMAGE id="PL" file="Playlist.png"> stałe panelu listy odtwarzania

<IMAGE id="Menu" file="Menu.png"> stałe menu kontekstowego

<IMAGE id="Hint" file="Hint.png"> stałe wyskakujących podpowiedzi

<IMAGE id="Color" file="Color.png"> stałe ustawień kolorów

Każdy "IMAGE" składa się z oddzielnych elementów - AREA.

blok rozpoznawania czcionek graficznych <FONT id="Digits" img="FT.Digits" chars=" 0123456789:"/>

Stosowanie kontrolek (podbloki mogą znajdować się w dowolnej kolejności)

<CTLDEF id="WndBorder" type="Panel" bg="HD.brd" size="29,52" bgsplit="14,24"/> ramka

<CTLDEF id="Caption" type="Panel" bg="HD.bg" size="400,21" bgsplit="14,10"> nagłówek

<CTLDEF id="CtlPanel" type="Panel" bg="FT.bg" size="400,84" bgsplit="10,10"> panel sterowania

<CTLDEF id="PListPanel" type="Panel" bg="PL.bg" size="29,46" bgsplit="7,23"> panel listy odtwarzania

Każdy "CTLDEF" (z wyjątkiem CTLDEF id="WndBorder") składa się z oddzielnych elementów - CONTROL.

Parametru "id" w większości przypadków nie należy zmieniać (wyjątki: IMAGE id="HD", IMAGE id="FT", IMAGE id="PL", ale dla czytelności zalecane jest, aby również ich nie zmieniać).

## Wykaz tagów Interface.xml

Tag | Znaczenie | Dostępne parametry
--- | --- | ---
SKIN | Kontener dla wszystkich innych tagów | -
IMAGE | Nominalny blok stałych z odniesieniem do pliku źródłowego | id, file
AREA | Tworzy stałe graficzne | id, pos, size
FONT | Tworzy czcionki graficzne i główne stałe | id, img, chars
CTLDEF | Nominalny blok kontrolek. Przedstawia jeden z twardo określonych paneli | id, type, bg, size, bgsplit, bgsplit_lt, bgsplit_rb
CONTROL | Tworzy kontrolki. Kontrolka typu "panel" może zawierać inne kontrolki | type, align, pos, size, bgsplit, img, link, font, fontsz, top_delta, bold, bg, bgsplit, variable, text, bgfill, chapter, chapter_pos, digits_ypos, thumb, ticks_ypos, lotick, hitick, OpeningPos, OpeningHeight

## Wykaz parametrów tagów Interface.xml

Atrybut | Funkcja | Składnia | Dostępny dla tagów
--- | --- | --- | ---
alignopcjonalne | Umieszcza kontrolkę poziomo w środku. Ponadto pomija wartość pozycji w poziomie. Zalecane do umieszczenia w centrum paneli, w których będą znajdować się inne kontrolki. | align="center" только так и никак иначе | CONTROL type = Panel | GfxBtn
bg | Definiuje obrazek tła kontrolek i grupy kontrolek (oprócz przycisków) | bg="(IMAGE id).(AREA id)" Np. bg="HD.bg" | CTLDEF, CONTROL (oprócz przycisków)
bgfill | Definiuje obrazek tła pokrywający obszar kontrolek "głośność" i "oś czasu" | bgfill="(IMAGE id).(AREA id)" Np. bgfill="FT.VolBGF" | CONTROL type = slider | seeker
bgsplit | Określa piksel, wg którego zajdzie rozciąganie kontrolki (oprócz przycisków). Jeśli ramka okna określana jest przez piksel z lewej i wyżej którego ramka nie będzie rozciągania. | bgsplit="x,y" x,y - liczby całkowite, większe od zera Na przykład: bgsplit="5,19" | CTLDEF, CONTROL (oprócz przycisków)
bgsplit_lt, bgsplit_rb | Określa lewy górny (bgsplit_lt) i prawy dolny (bgsplit_rb) piksel, definiuje prostokąt, wg którego wydarzy się rozciąganie obramowania. | bgsplit_lt="x,y" bgsplit_rb="x,y" x,y - liczby całkowite, większe od zera Na przykład: bgsplit_lt="6,26" bgsplit_rb="6,6" | CTLDEF id="WndBorder"
bold | Definiuje pogrubienie linii tekstowej, jeśli jest ustawiona w normalnej czcionce. | bold="x" gdzie x= 0 lub 1. Jeśli 1, to pogrubiona, jeśli 0, to nie. Na przykład: bold="0" | CONTROL type = text
border_sizeopcjonalnie | Parametr, określa grubość ramki okienna. Ramka jest zawsze, nawet wtedy, gdy jej grubość wynosi 0 pikseli. | border_size="x1,y1,x2,y2" gdzie x1,y1,x2,y2 - to cztery liczby całkowite, w następującej kolejności "z lewej,z prawej,u góry,u dołu". Na przykład: border_size="3,2,3,4" | CTLDEF id="WndBorder"
chapter | definiuje wyświetlanie znacznika zakładki na osi czasu | chapter="(IMAGE id).(AREA id)" Na przykład, chapter="Ft.SeekChapter" | CONTROL type=Seeker
chapter_pos | definiuje pozycję wyświetlania znacznika zakładki na osi czasu. | chapter_pos="x,y" gdzie x - ujemna liczba całkowita (0 - lewy piksel znacznika widoczny w dolnej pozycji), y - dodatnia liczba całkowita (0 - odnosi się do górnej granicy osi czasu) Na przykład, chapter_pos="-1,12" | CONTROL type=Seeker
chars | Określa sekwencję, zgodnie z którą będą rozpoznawane czcionki graficzne. | chars="abcd" gdzie abcd musi być " 0123456789:" dla Czasu i Czasu trwania i dodatkowo "<" dla Pozycji. Dowolna kolejność znaków. Możliwa obecność dodatkowych znaków. | FONT
digits_ypos | określa przemieszczenie pionowe cyfr na osi czasu. | digits_ypos="y" gdzie y - dodatnia liczba całkowita (0 - odnosi się do górnej granicy osi czasu) Na przykład: digits_ypos="4" | CONTROL type=Seeker
file | Określa plik obrazka, na podstawie którego zostaną utworzone zagnieżdżone stałe graficzne. | file="filename.ext" gdzie filename.ext - nazwa pliku, w tym rozszerzenie. Na przykład: file="main.png" | IMAGE
font | Określa czcionkę (systemową lub graficzną) dla tekstowych kontrolek. | font="anyfont" gdzie anyfont - nazwa czcionki Np. font="Verdana", font="Digits" | CONTROL type=Text
fontsz | Określa rozmiar czcionki systemowej. | fontsz="x" gdzie x - liczba całkowita większa od zera. Np. fontsz="10" | CONTROL type=Text
hitick | Określa podstawowe (wysokie) nacięcie na osi czasu. | hitick="(IMAGE id).(AREA id)" Np. hitick="FT.SeekHiTick" | CONTROL type=Seeker
id | Nazwa własnego elementu, wykorzystywana później do odniesienia się do niego. | id="TypName" gdzie TypName - unikalna nazwa (patrz w dalszej części poradnika) Np. id="btSubs" | IMAGE, AREA, FONT, CTLDEF
img | Określa stałe graficzne do formowania przycisków. | img="(IMAGE id).(AREA id)" Np. img="FT.btPlay" | CONTROL type=GfxBtn
link | Określa funkcję przycisku. | link="fx" gdzie fx - jest to jedna z predefiniowanych funkcji Na przykład: link="App.SuperPlay" | CONTROL type=GfxBtn | Text
lotick | Określa dodatkowe (niskie) nacięcie na osi czasu | lotick="(IMAGE id).(AREA id)" Na przykład: lotick="FT.SeekLoTick" | CONTROL type=Seeker
minsize | Określa minimalny rozmiar okna odtwarzacza, jeśli używasz tej skórki. Używany, aby przyciski nie zachodziły na siebie. | minsize="x,y" gdzie x,y - odpowiednio: szerokość i wysokość Na przykład: minsize="500,250" | SKIN
OpeningHeight | Określa wysokość zakresu automatycznego przewijania na osi czasu. | OpeningHeight="x" gdzie x - dodatnia liczba całkowita Na przykład: OpeningHeight="6" | CONTROL type=Seeker
OpeningPos | Określa odstęp od górnej krawędzi osi czasu dla zakresu automatycznego przewijania. | OpeningPos="y" gdzie y - odległość od krawędzi osi czasu do wierzchołka automatycznego przewijania Na przykład: OpeningPos="14" | CONTROL type=Seeker
pos | Określa pozycję stałych graficznych na obrazku lub kontrolki na panelu. | pos="x,y" gdzie x,y - odległość od lewej i górnej krawędzi. U kontrolek te wartości mogą być ujemne. Wartości ujemne wskazują nam, że liczenie będzie rozpoczynać się nie od lewej lub górnej krawędzi, a od prawej lub dolnej Na przykład: pos="50,67" | AREA, CONTROL
size | Określa rozmiar stałych graficznych lub kontrolek | size="x,y" gdzie x,y - odległość od lewej i górnej krawędzi opisujące elementy. U kontrolek te wartości mogą być ujemne. Wartości ujemne wskazują nam, że liczenie będzie rozpoczynać się nie od lewej lub górnej krawędzi elementu, a od prawej lub dolnej krawędzi paneli
Na przykład: size="24,28"
AREA, CONTROL
text | Określa tekstowe zawartość kontrolki odpowiedniego rodzaju | text="any" gdzie any - jakiś tekst. Między innymi, można wstawić zmienne {TITLE},{POS},{DUR},{TIME}, oznaczające odpowiednio: Nagłówek, Pozycję, Czas trwania i Czas. Na przykład: text="{TIME}" | CONTROL type=Text
thumb | Określa obrazek suwaka w głośności i osi czasu. | thumb="(IMAGE id).(AREA id)" Na przykład: thumb="FT.VolThumb" | CONTROL type = slider | seeker
ticks_ypos | określa przesunięcie pionowe nacięcia na osi czasu. | ticks_ypos="y" gdzie y - dodatnia liczba całkowita (0 - odnosi się do górnej granicy osi czasu) Na przykład, ticks_ypos="0" | CONTROL type=Seeker
top_delta | Określa przesunięcie tekstu w niegraficznej linii tekstowej w pionie; czcionka zostaje taka sama jak ustawiona. | top_delta="y" gdzie y - to wartość przesunięcia tekstu w pionie. Plus - w dół, minus - w górę Na przykład: top_delta="-2" | CONTROL type=Text
type | Określa typ kontrolki. Od tego zależą wszystkie inne parametry. | type="t" gdzie t - to Panel (panel), GfxBtn (przycisk), Text (tekst), Seeker (oś czasu), Slider (głośność) Na przykład: type="Text" | CTLDEF, CONTROL
| type (wewnątrz SKIN) | Określa typ skórki: normalna, pełnoekranowa lub audio. | type="t" gdzie t - to standart (domyślna), audio (tryb audio), fullscreen (na razie nie używane) Na przykład: type="audio" | SKIN
variableopcjonalnie | deklaruje, że zawartość dowolnego ciągu tekstowego jest dowolna (w przeciwnym razie linia zawsze wyświetla {title}) | variable="x" gdzie x = 0 lub 1. Domyślnie "0". Jeśli 1, to pojawi się jakakolwiek treść, jeśli 0, pojawi się {title}. Zalecane jest, aby zawsze stosować variable="1" Na przykład: variable="1" | CONTROL type=Text

## Rodzaje elementów skórki

Rodzaj | Elementy | Charakterystyka
--- | --- | ---
Kontur | Kontur okna | Ramka wokół okna odtwarzacza (tutaj i dalej pod oknem odtwarzacza będzie oznaczać tylko główne okno).
Panel | Górny (nagłówek) Dolny (panel sterowania) Panel Listy odtwarzania Pływające panele | Panel, na którym znajdują się wszystkie kontrolki. W rzeczywistości jest to kontener. Położenie trzech predefiniowanych paneli (nagłówek, panel sterowania, panel listy odtwarzania) jest sztywno zdefiniowane. W skórce można zmieniać tylko ich wysokość. Pływające panele mogą być umieszczone w dowolnym miejscu w obrębie paneli predefiniowanych.
Niemniej jednak szerokość jest ważna nawet w przypadku paneli predefiniowanych. Musi być ona większa od szerokości stosowanej dla każdej pojedynczo wziętej kontrolki (biorąc pod uwagę jej położenie i rozmiar, ale z wyłączeniem innych konturów). W przeciwnym razie skórka nie będzie wyświetlana poprawnie do czasu ponownego uruchomienia odtwarzacza.
Przycisk | Otwórz plik Odtwarzaj / Wstrzymaj z blokadą itp. Pełna lista poniżej. | Przycisk jest główną kontrolką skórki. Zadanie przycisku - wykonanie funkcji po naciśnięciu przycisku. Przyciski mają trzy stany:

- zwykły
- po najechaniu kursorem
- po naciśnięciu

Niektóre przyciski posiadają funkcję: po naciśnięciu przechodzą one nie do stanu zwykłego, a w dodatkowe funkcje stanu zwykłego. W związku z tym, takie przyciski posiadają już sześć stanów. Dla przycisków z blokadą zalecana jest animacja w oparciu o "zaczyna pracę po zwolnieniu przycisku".
Linia tekstowa | Tekst nagłówka Pozycja Czas trwania Czas Dowolny tekst | Linia tekstowa przeznaczona jest do wyświetlania informacji. Również informacje z nagłówka pliku. W linii tekstowej można napisać dowolny tekst, ale są 4 rodzaje interaktywnej informacji:

1. {TITLE} - informacja nagłówka
2. {POS} - pozycja odtwarzanego pliku
3. {DUR} - czas trwania odtwarzanego pliku
4. {TIME} - czas systemowy

Można łączyć prosty tekst z interaktywnym.
Wyrównanie tekstu w linii tekstowej wykonywane jest do środka.
Linia tekstowa, podobnie do przycisku, może wykonywać funkcje (bez animacji)
Linia tekstowa z graficzną czcionką | Pozycja Czas trwania Czas | W przeciwieństwie do poprzedniego typu w tym używana jest czcionka graficzna (rysowana). A to dużo upraszcza: nie trzeba wstawiać kroju i rozmiaru czcionki, jej pogrubienia, jeśli to wszystko jest rysowane. Czcionki graficzne używamy do interaktywnej informacji z ograniczonym zestawem znaków - dla pozycji, czasu trwania i czasu systemowego.
Wyrównanie tekstu w graficznej linii tekstowej wykonywane jest do lewej.
Linia tekstowa z graficzną czcionką, podobnie do przycisku, może wykonywać funkcje (bez animacji)
Suwak | Głośność | Jedynym przedstawicielem suwaków jest głośność. Łatwo jest zauważyć, że głośność używa nie jednej, a trzech graficznych stałych:

- Tło
- Tło wypełnienia (po lewej od suwaka)
- Suwak

Suwak głośności obsługuje bitową przezroczystość. Przezroczystość powinna być wyrażona zielonym kolorem: (#00ff00 lub RGB{0,255,0}).
Oś czasu | Oś czasu | Tak jak i głośność, oś czasu jest jedynym przedstawicielem swojego rodzaju. Jednakże oś czasu jest jeszcze bardziej złożona. Oprócz tego co posiada głośność, oś czasu posiada jeszcze dwa rodzaje "nacięć" (podstawowe i pośrednie) i czcionkę do oznaczania pozycji.
Suwak osi czasu obsługuje bitową przezroczystość. Przezroczystość powinna być wyrażona zielonym kolorem: (#00ff00 lub RGB{0,255,0}).
Istotne zastrzeżenie: skala zaczyna się przed zerem i kończy się po zakończeniu.
Obrazki dekoracyjne | Logotyp Ikony menu kontekstowego Pole wyboru menu kontekstowego Zakładka na liście odtwarzania Myszka w wyskakujących podpowiedziach | Obrazki dekoracyjne nie mają funkcji, one tylko są. Ogólnie mówiąc ich zadaniem jest tylko upiększanie wyglądu zewnętrznego Light Alloy. Jedna z cech obrazków dekoracyjnych - miejsce ich zastosowania jest wbudowane w program, dlatego są tylko wyświetlane.
Inną charakterystyczną cechę mają Ikony menu kontekstowego, Pole wyboru menu i Zakładka w liście odtwarzania. Te obrazki wspierają bitową przezroczystość. Przezroczystość powinna być wyrażona w kolorze zielonym (#00ff00 lub RGB{0,255,0}).
Zestawy kolorów | Kolor tekstu w nagłówku okna; Kolor OSD i obszaru wideo; Kolor listy odtwarzania; Kolor automatycznego przewijania; Kolor wyskakujących podpowiedzi;
Kolor menu kontekstowego;
Kolor pełnoekranowego wczytywania plików i napisów (dwa oddzielne bloki).
Zestawy kolorów przedstawiają bloki obrazu o szerokości 1 piksela i wysokości zgodnie z liczbą kolorów. Kolory odpowiednich pikseli są używane do wypełnienia tła i ciągów tekstowych.
Zestaw kolorów jest tylko informacyjnie. Ich stosowanie określane jest przez program.

## Wykaz wszystkich elementów skórki

Wszystkie elementy, z których zbudowana jest skórka, dzielą się na niezbędne i opcjonalne. Bez tych pierwszych zbudowanie skórki jest niemożliwe. Ponadto, są one ściśle powiązane z swoimi miejscami. Obecność lub nieobecność drugich jest określona wyłącznie przez autora skórki.

### Niezbędne elementy skórki

Id w części Zastosowanie nie należy zmieniać. Jeśli nie ma części Zastosowanie, to nie należy zmieniać wszystkich Id w części Zgłoszenie.

Nazwa | Typ | Zgłoszenie | Zastosowanie | Opis
--- | --- | --- | --- | ---
Logotyp | Obrazek dekoracyjny | <IMAGE id="Logo" file="logo.png"> <AREA id="Splash" pos="0,0" size="262,230"/> </IMAGE> | - | Jest wyświetlany w obszarze wideo w przypadku braku wideo
Kontur okna | Kontur | <IMAGE id="HD" file="Header.png"> <AREA id="brd" pos="0,0" size="210,128"/> </IMAGE> | <CTLDEF id="WndBorder" type="Panel" bg="HD.brd" size="29,127" border_size="3,2,3,4" bgsplit_lt="6,26" bgsplit_rb="6,6" | Ramka wokół okna odtwarzacza
Górny panel | Panel | <IMAGE id="HD" file="header.png"> <AREA id="bg" pos="10,4" size="10,21"/> </IMAGE> | <CTLDEF id="Caption" type="Panel" bg="HD.bg" size="400,21" bgsplit="14,10"> </CTLDEF> | Panel u góry okna
Dolny panel | Panel | <IMAGE id="FT" file="footer.png"> <AREA id="bg" pos="0,0" size="224,104"/> </IMAGE> | <CTLDEF id="CtlPanel" type="Panel" bg="FT.bg" size="400,104" bgsplit="110,103"> </CTLDEF> | Panel u dołu okna
Panel listy odtwarzania | Panel | <IMAGE id="PL" file="playlist.png"> <AREA id="bg" pos="0,0" size="14,34"/> </IMAGE> | <CTLDEF id="PListPanel" type="Panel" bg="PL.bg" size="300,34" bgsplit="7,23"> </CTLDEF> | Panel u dołu obszaru listy odtwarzania
Menu kontekstowe | Obrazek dekoracyjny | <IMAGE id="Menu" file="Rclick.png"> <AREA id="bg" pos="0,0" size="20,23"/> <AREA id="pics" pos="0,24" size="33,84"/> <AREA id="Checked" pos="0,109" size="16,16"/> <AREA id="Bookmark" pos="22,0" size="11,11"/> </IMAGE> | - | Ikony w menu kontekstowym, znacznik menu kontekstowego, zakładka listy odtwarzania
Ikony myszki w wyskakujących podpowiedziach | Obrazek dekoracyjny | <IMAGE id="Hint" file="main.png"> <AREA id="Lclick" pos="0,235" size="22,22"/> <AREA id="Rclick" pos="23,235" size="22,22"/> </IMAGE> | - | Obrazki myszki w wyskakujących podpowiedziach
Zestawy kolorów | Zestawy kolorów | <IMAGE id="Color" file="Color.png"> <AREA id="LACaption" pos="1,1" size="1,2"/> <AREA id="OSD" pos="141,18" size="1,5"/> <AREA id="Timeline" pos="71,83" size="1,2"/> <AREA id="Hint" pos="71,119" size="1,3"/> <AREA id="PL" pos="1,18" size="1,12"/> <AREA id="Menu" pos="71,18" size="1,7"/> <AREA id="FOD_TV" pos="1,83" size="1,18"/> <AREA id="SOD_TV" pos="1,83" size="1,18"/> </IMAGE> | - | Wszystkie kolory wg koloru piksela (od góry do dołu): Kolor tekstu w nagłówku okna

1. Tekst, gdy okno Light Alloy jest aktywne
2. Tekst, gdy okno Light Alloy jest nieaktywne

Kolor OSD i obszary wideo

1. tekst OSD
2. tło OSD
3. cień tekstu OSD
4. kontur tekstu OSD
5. tło obszaru wideo

Kolor listy odtwarzania

1. tło
2. tekst elementu wideo (wideo i IPTV)
3. aktualnie odtwarzany plik
4. kursor
5. powtarzający się plik
6. usunięty/niedostępny plik
7. ostatnio odtwarzany plik podczas uruchamiania odtwarzacza
8. zakładki
9. zakładki aktualnie odtwarzanego pliku
10. separator listy odtwarzania i obszaru wideo
11. tekst dużych cyfr na osi czasu
12. tekst elementu audio (muzyka i radio)

Kolor automatycznego przewijania

1. automatyczne przewijanie, wykonane wcześniej
2. automatyczne przewijanie wg czasu zaznaczonego myszką

Kolor wyskakujących podpowiedzi

1. tło
2. kontur i separator
3. tekst

Kolor menu kontekstowego

1. tło
2. normalny punkt menu
3. niedostępny punkt menu
4. ramka kursora
5. tekst pod kursorem
6. tło kursora
7. poziomy separator

Kolor pełnoekranowego wczytywania plików

1. tekst pod kursorem
2. tekst folderów
3. tekst plików
4. aktywny kursor
5. nieaktywny kursor
6. tło aktywnego panelu plików
7. tło aktywnego panelu dysków
8. tło nieaktywnego panelu plików
9. tło nieaktywnego panelu dysków
10. tło ogólne
11. tło przycisków
12. tekst przycisków
13. tło przycisków po najechaniu myszką
14. tło nagłówka
15. tekst nagłówka
16. tekst dysków twardych
17. tekst dysków wymiennych (pamięci flash)
18. tekst dysków optycznych

Kolor pełnoekranowego wczytywania napisów
zestaw kolorów jest analogiczny do poprzedniego bloku

### Opcjonalne elementy skórki

Wszystkie opcjonalne elementy skórki warunkowo można podzielić na przyciski i pozostałe elementy (nie przyciski). Wszystkie przyciski są zbudowane na tej samej zasadzie i w rzeczywistości różnią się tylko w nazwą i funkcją. Pozostałe elementy (nie przyciski) charakteryzują się unikalnymi zasadami dla każdego oddzielnie wziętego elementu.

#### Przyciski

Przyciski charakteryzuje jednolite podejście do składni, animacji, stałej zawartości i jednakowej reakcji na całej powierzchni. Składnia przycisków jest następująca:

<IMAGE ...> <AREA id="btPlay" pos="10,10" size="20,60"/> </IMAGE> <CTLDEF ...> <CONTROL type="GfxBtn" pos="30,30" size="20,20" img="FT.btPlay" link="App.SuperPlay"/> </CTLDEF>

Oto trzy rzeczy, o których należy pamiętać:

1. AREA id może być dowolne, ale jest opracowany czytelny zestaw nazw. Zaleca się, aby stosować je w pierwszym rzędzie dla dalszej czytelności skórki, zarówno przez autorów, jak również wszelkie inne zainteresowane osoby. W przypadku samodzielnego tworzenia id należy używać alfabetu łacińskiego i unikać kropek.
2. CONTROL img komponent. Składa się on z "IMAGE id" i "AREA id", napisanych bez kropek.
3. CONTROL link oznacza klawisz funkcyjny. Jeśli określona funkcja nie istnieje, odtwarzacz po prostu zignoruje naciśnięcie. Istnieje ograniczona liczba funkcji. Próba przypisania innych funkcji, niż te z poniższej listy, nie zadziała.

Nazwa | Typ | Zalecane AREA id | CONTROL link
--- | --- | --- | ---
Plik
Otwórz plik | Normalny przycisk | btOpen | PlayList.OpenFiles
Informacje o pliku | Normalny przycisk | btInfo | Window.FileInfo
Odtwarzaj dysk DVD | Normalny przycisk | btDVD | File.PlayDVD
Otwórz folder z DVD | Normalny przycisk | btFolderDVD | File.OpenDVD
Informacje o pliku na OSD | Normalny przycisk | btOSDInfo | File.OSDInfo
Pełnoekranowe menu otwierania plików | Normalny przycisk | btOpenFS | File.OpenFile_Fullscr
Radio
Katalog internetowych stacji radiowych | Normalny przycisk | btOpenIRE | File.OpenIRE
Radio: rozpocznij/zatrzymaj zapis | Przycisk z blokadą | btRec | Player.RadioRecord
Odtwarzanie
Odtwarzaj / Wstrzymaj | Przycisk z blokadą | btPlay | App.SuperPlay
Zatrzymaj (wyładowanie pliku) | Normalny przycisk | btStop | Playback.RealStop
Klatka do przodu | Normalny przycisk | btFStep | Player.FrameStep
Utwórz zakładkę na osi czasu | Normalny przycisk | btBookmark | Seek.SetBookmark
Zmiana szybkości odtwarzania | Przycisk z blokadą | btFF | Player.SpeedPlay
Zwiększ szybkość odtwarzania | Normalny przycisk | btSpdUp | Playback.SpeedUp
Zmniejsz szybkość odtwarzania | Normalny przycisk | btSpdDown | Playback.SpeedDown
Normalne/odwrócone odliczanie czasu odtwarzania | Przycisk z blokadą | btSwitchPos | Position.Switch
Okno
Na wierzchu wszystkich okien | Przycisk z blokadą | btTop | App.StayOnTop
Okno/Pełny ekran | Przycisk z blokadą | btFullScr | Window.FullScreen
Rozmiar początkowy | Normalny przycisk | btOrigSize | Window.Original
Maksymalizuj | Przycisk z blokadą | btMax | App.Maximize
Minimalizuj | Normalny przycisk | btMin | App.Minimize
Lista odtwarzania
Menedżer list odtwarzania | Normalny przycisk | btPlManager | PList.Manager
Poprzedni z listy odtwarzania | Normalny przycisk | btPlPrev | PlayList.Prev
Lista odtwarzania | Przycisk z blokadą | btPlist | Window.PlayList
Następny z listy odtwarzania | Normalny przycisk | btPlNext | PlayList.Next
Odtwarzaj wybrany | Normalny przycisk | btPlay | PList.Play
Dodaj plik(i) do listy odtwarzania | Normalny przycisk | btAdd | PList.AddFiles
Dodaj folder do listy odtwarzania | Normalny przycisk | btAddDir | PList.AddDir
Usuń z listy odtwarzania | Normalny przycisk | btRem | PList.Remove
Oczyść listę odtwarzania | Normalny przycisk | btClear | PList.Clear
Przesuń wyżej | Normalny przycisk | btUp | PList.MoveUp
Przesuń niżej | Normalny przycisk | btDown | PList.MoveDown
Odtwarzanie w kolejności losowej | Przycisk z blokadą | btShuffle | PList.Shuffle
Zakładki na liście odtwarzania | Przycisk z blokadą | btMarks | PList.ShowMarks
Powtarzanie listy odtwarzania | Przycisk z blokadą | btRepeat | PList.Repeat
Raport z listy odtwarzania (karta HTML) | Normalny przycisk | btReport | PList.Report
Zapisz listę odtwarzania | Normalny przycisk | btSave | PList.Save
Przejdź do pliku (poszukiwanie na liście odtwarzania) | Normalny przycisk | btJump | PList.Jump
Sortuj listę odtwarzania | Normalny przycisk | btSort | PList.Sort
Wymieszaj listę odtwarzania | Normalny przycisk | btVisShuffle | PList.VisShuffle
Pokaż plik w Eksploratorze | Normalny przycisk | btShow | PList.Search
Dźwięk
Wyłącz dźwięk | Przycisk z blokadą | btMute | Audio.Mute
Przełącz ścieżkę audio | Normalny przycisk | btASwitch | Sound.Switch
Ustawienia dźwięku | Normalny przycisk | btAProps | Window.AudioProps
Napisy
Pokaż/ukryj napisy | Przycisk z blokadą | btSubs | Subtitles.Show
Przełącz napisy | Normalny przycisk | btSSwitch | Subtitles.Switch
Przełącz napisy Nr 2 | Normalny przycisk | btSSwitch2 | Subtitles.Switch2
Zwiększ rozmiar napisów | Normalny przycisk | btSSizeUp | Subtitles.SizeUp
Zmniejsz rozmiar napisów | Normalny przycisk | btSSizeDown | Subtitles.SizeDown
Ustawienia napisów | Normalny przycisk | btSProps | Window.SubProps
Pełnoekranowe menu wczytywania napisów | Normalny przycisk | btSAddFS | Subtitles.Open_Fullscr
Wideo
Przełącz proporcje | Normalny przycisk | btVRatio | Video.RatioSwitch
Ustawienia wideo | Normalny przycisk | btVProps | Window.VideoProps
Zapisz klatkę | Normalny przycisk | btSShot | Player.ScreenShot
Zapisz klatkę do schowka systemowego | Normalny przycisk | btSShotCB | Video.ScreenshotCB
Zapisz galerię miniatur | Normalny przycisk | btSaveThumbs | Video.SaveThumbs
Zapisz pakiet zrzutów o pełnym rozmiarze | Normalny przycisk | btSaveScreensPack | Video.SaveScreensPack
Otwórz folder ze zrzutami ekranu | Normalny przycisk | btOpenScrFolder | Application.OpenScrFolder
Program
Ustawienia | Normalny przycisk | btPrefs | App.Prefs
Planner | Przycisk z blokadą | btSheduler | Application.Scheduler
Drzewko filtrów | Normalny przycisk | btFlt | Window.Filters
O programie | Normalny przycisk | btAbout | App.About
Zakończ | Normalny przycisk | btExit | App.Exit
System
Wyłącz monitor | Normalny przycisk | btMonitorOff | Application.MonitorOff
Wywołanie okna dialogowego wyłączenia PC | Normalny przycisk | btPowerOff | Application.PowerOff
Przełącz komputer w tryb hibernacji | Normalny przycisk | btHibernate | Application.Hibernate

### Nie przyciski

Nazwa | Typ | Zgłoszenie | Zastosowanie | Opis
--- | --- | --- | --- | ---
Oś czasu | Oś czasu | <AREA id="SeekBGfill" pos="33,1" size="24,14"/> <AREA id="SeekThumb" pos="64,1" size="14,14"/> <AREA id="SeekBG" pos="79,1" size="24,14"/> <AREA id="SeekHiTick" pos="58,1" size="1,3"/> <AREA id="SeekLoTick" pos="59,1" size="1,3"/> <AREA id="SeekChapter" pos="58,13" size="3,2"/> | <CONTROL type="Seeker" pos="0,0" size="-1,14" bgsplit="12,6" OpeningPos="0" OpeningHeight="14" bg="Ft.SeekBG" bgfill="Ft.SeekBGfill" thumb="Ft.SeekThumb" lotick="Ft.SeekLoTick" hitick="Ft.SeekHiTick" digits_ypos="4" ticks_ypos="0" chapter="Ft.SeekChapter" chapter_pos="-1,12" /> | Oś czasu służy do przewijania pliku. Jej parametry:

- size="-4,24" - ujemna długość; oznacza to, że długość wyliczana jest od prawej krawędzi panelu;
- bgfill="FT.SeekBGfill" - tło zajmowanej powierzchni;
- thumb="FT.SeekThumb" - suwak;
- hitick="FT.SeekHiTick" - główne nacięcia;
- lotick="FT.SeekLoTick" - dodatkowe nacięcia;
- OpeningPos="14" - wysokość od górnej krawędzi osi czasu do automatycznego przewijania;
- OpeningHeight="6" - wysokość automatycznego przewijania.
- digits_ypos="4" - przesunięcie pionowe cyfr na osi czasu.
- ticks_ypos="0" - przesunięcie pionowe nacięć na osi czasu.
- chapter="Ft.SeekChapter" - znacznik zakładek.
- chapter_pos="-1,12" - przesunięcie znacznika zakładek.

Głośność | Suwak | <AREA id="VolBGF" pos="226,40" size="9,13"/> <AREA id="VolThumb" pos="236,40" size="10,13"/> <AREA id="VolBG" pos="247,40" size="9,13"/> | <CONTROL type="Slider" pos="45,40" size="92,13" bg="FT.VolBG" bgsplit="5,19" bgfill="FT.VolBGF" thumb="FT.VolThumb"/> | Głośność mówi sama za siebie. Ważne jest, aby pamiętać o ograniczonej szerokości suwaka - 10 pikseli.
Nagłówek | Linia tekstowa | <AREA id="TitleBG" pos="10,8" size="10,16"/> | <CONTROL type="Text" pos="100,3" size="-100,17" font="Verdana" fontsz="10" top_delta="-2" bold="0" bg="HD.TitleBG" bgsplit="8,5" variable="1" text="{TITLE}"/> | Nagłówek przeznaczony jest do wyświetlania nazwy pliku i niektórych informacji o stanie odtwarzacza. Parametry:

- font="Verdana" - czcionka.
- fontsz="10" - rozmiar czcionki;
- top_delta="-2" - przesunięcie tekstu w pionie. Minus - w górę, plus - w dół;
- bold="0" - grubość czcionki: 0 - normalna, 1 - pogrubiona;
- bg="HD.TitleBG" - tło pod tekstem;
- text="{TITLE}" - treść tekstu.
- link="" - funkcja, która zostanie wykonana po kliknięciu w linii tekstowej; parametr opcjonalny.

Ponadto określa kolor ukazującego się tekstu przy oknie aktywnym i nieaktywnym. Jednakże te kolory oddziaływują na wszystkie linie tekstowe, dlatego też tworzenie normalnej linii tekstowej z pozycją, czasem trwania lub czasem, chociaż jest możliwe, ale będzie miało ograniczenia w kolorze i może sprawiać problemy.
Pozycja Czas trwania Czas | Graficzna linia tekstowa | <AREA id="Digits" pos="326,6" size="114,15"/> <FONT id="Digits" img="FT.Digits" chars="0123456789:/ -"/> | <CONTROL type="Text" pos="3,1" size="69,14" font="Digits" text=" {POS} / {DUR}" link=" Position.Switch"/> | Pozycja, Czas trwania i Czas oznaczone są następującymi wartościami:

1. {POS} - pozycja odtwarzanego pliku
2. {DUR} - czas trwania odtwarzanego pliku
3. {TIME} - czas systemowy

Do poprawnego wyświetlania informacji wymagane są następujące symbole:

- {POS} - "0123456789: -" (dwukropek rozdziela godziny, minuty, sekundy; odstęp i klamra uczestniczą w wyświetlaniu bezpośredniego i odwróconego odlicznia)
- {DUR} - "0123456789:"
- {TIME} - "0123456789: " (dwukropek co sekundę zamienia się w odstęp i na odwrót)

Poza tymi wartościami można używać dowolnych symboli według własnego uznania. Można również połączyć prosty tekst i interaktywny.
Aby kliknięcie w pozycji lewym przyciskiem myszki przełączało porządek odliczania, kontrolka powinna być z tym atrybutem: link=" Position.Switch"
Wyświetlanie odbywa się za pomocą symboli na podstawie dolnego rzędu pikseli: zmienił się kolor - znaczy to, że zaczął się nowy symbol. Przykład (skala 200%):