C.2. Soubor skin
Předcházející | Příloha C. Formát skinů MPlayeru | Další

## C.2. Soubor skin

Jak jsme již řekli, je to konfigurační soubor skinu. Soubor je řádkově orientován; řádky s komentářem začínají znakem '`;`' (před ním jsou povoleny jen mezery a tabulátory).

Soubor je složen ze sekcí. Každá sekce popisuje skin pro aplikaci a má následující formu:

    section = název cekce
    .
    .
    .
    end

Zatím máme jen jednu aplikaci, takže potřebujete jen jednu sekci: její název je movieplayer.

Uvnitř sekce je každé okno posáno blokem, který má následující formu:

    window = název okna
    .
    .
    .
    end

kde `název okna` může být jeden z těchto řetězců:

- main - pro hlavní okno

- sub - pro podokno

- menu - pro nabídku

- playbar - ovládací panel

(Bloky sub a menu jsou volitelné - nemusíte vytvářet nabídku nebo vyzdobit podokno.)

Uvnitř window bloku můžete definovat každou položku okna řádkem v tomto tvaru:

    položka = parametr

Kde `položka` je řetězec označující typ položky GUI a `parametr` je číselná nebo textová hodnota (nebo seznam hodnot oddělených čárkami).

Dáte-li to všechno dohromady, celý soubor vypadá asi takto:

    section = movieplayer
      window = main
      ; ... položky hlavního okna ...
      end

      window = sub
      ; ... položky podokna ...
      end

      window = menu
      ; ... položky menu ...
      end

      window = playbar
      ; ... položky ovládacího panelu ...
      end
    end

Jméno souboru s obrázkem musí být zadáno bez úvodních adresářů - obrázky jsou vyhledávány v adresáři `skins`. Měli byste (ale nemusíte) zadat příponu souboru. Pokud soubor neexistuje, zkouší MPlayer načíst soubor `<jméno>.<příp>`, kdy jsou za `<příp>` zkoušeny přípony `png` a `PNG` (v tomto pořadí). Použitý bude první vyhovující soubor.

Aby bylo vše jasné, uvedeme příklad. Řekněme, že máte obrázek jménem `main.png`, který použijeme pro hlavní okno:

    base = main, -1, -1

MPlayer se pokusí nahrát soubory `main`, `main.png`, `main.PNG`.

Nakonec několik slov o pozicování. Hlavní okno a podokno lze umístit do odlišných rohů obrazovky zadáním souřadnic `X` a `Y`. `0` horní nebo levý, `-1` je střed a `-2` je vpravo nebo dole, jak je vidět na obrázku:

    (0, 0)----(-1, 0)----(-2, 0)
      |          |          |
      |          |          |
    (0,-1)----(-1,-1)----(-2,-1)
      |          |          |
      |          |          |
    (0,-2)----(-1,-2)----(-2,-2)

### C.2.1. Hlavní okno a ovládací panel

Níže uvádíme seznam položek, které mohou být použity v blocích '`window = main`' ... '`end`', a '`window = playbar`' ... '`end`'.

`base = obrázek, X, Y`

  Umožňuje nastavit obrázek pozadí hlavního okna. Okno bude vykresleno na zadaných souřadnicích `X,Y` na obrazovce a bude mít velikost obrázku.

  ### Poznámka

  Tyto koordináty zatím nefungují pro okno display.

  ### Varování

  Průhledné oblasti v obrázku (obarvené #FF00FF) budou černé na X serverech bez XShape rozšíření. Šířka obrázku musí být celočíselně dělitelná 8.

`button = obrázek, X, Y, šířka, výška, zpráva`

  Umístí tlačítko rozměru `šířka` * `výška` na pozici `X,Y`. Zadaná `zpráva` je generována při kliku na tlačítko. Zadaný `obrázek` musí mít tři části pod sebou (odpovídající možným stavům tlačítka) takto:

      +------------+
      | stisknuto  |
      +------------+
      |  uvolněno  |
      +------------+
      |  zakázáno  |
      +------------+

`decoration = enable|disable`

  Zapne (enable) nebo vypne (disable) dekoraci hlavního okna, produkovanou okenním manažerem. Výchozí je disable.

  ### Poznámka

  V okně display to nefunguje, není to potřeba.

`hpotmeter = tlačítko, tšířka, tvýška, fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva`

`vpotmeter = tlačítko, tšířka, tvýška, fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva`

  Umístí vodorovný (hpotmeter) nebo svislý (vpotmeter) potenciometr velikosti `šířka` * `výška` na pozici `X,Y`. Obrázek může být rozdělen do různých částí pro různé fáze potenciometru (Například můžete mít potenciometr pro nastavení hlasitosti, jehož dráha se barví ze zelené na červenou, jak se jeho hodnota mění od nejmenší do největší.). `hpotmeter` může mít táhlo, které může být vodorovně taženo. Význam parametrů:

  - `tlačítko` - obrázek, který se použije pro tlačítko (musí mít tři části pod sebou, stejně jako v případě tohoto tlačítka)

  - `tšířka`, `tvýška` - velikost tlačítka

  - `fáze` - obrázek použitý pro různé fáze hpotmetru. Pokud žádný obrázek nechcete, můžete použít speciální hodnotu `NULL`. Obrázek musí být rozdělen svisle na `počet_fází` částí takto:

        +------------+
        |   fáze #1  |
        +------------+
        |   fáze #2  |
        +------------+
             ...
        +------------+
        |   fáze #n  |
        +------------+

  - `numphases` - number of phases stored in the `počet_fází` - počet fází uložených v obrázku `fáze`

  - `výchozí` - výchozí hodnota pro hpotmeter (v rozsahu `0` až `100`)

  - `X`, `Y` - pozice pro hpotmeter

  - `šířka`, `výška` - šířka a výška `hpotmeter`u

  - `zpráva` - zpráva generovaná při změně hodnoty `hpotmeter`u

`potmeter = fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva`

  `hpotmeter` bez tlačítka. (soudil bych, že byl míněn jako otočný, ale reaguje pouze na horizontální tažení.) Popis parametrů je stejný jako v hpotmeter. `fáze` mohou být `NULL`, ale je to vcelku k ničemu, jelikož nemůžete vidět, jak je nastaven `potmeter`.

`font = soubor_fontu, id_fontu`

  Definuje font. `soubor_fontu` je jméno souboru popisu fontu s příponou `.fnt` (zde příponu nezadávejte). `id_fontu` je použit jako ukazatel na font (viz dlabel a slabel). Definováno může být více než 25 fontů.

`slabel = X, Y, id_fontu, "text";`

  Umístí statický popisek na pozici `X,Y`. `text` je zobrazen fontem identifikovaným pomocí `id_fontu`. Text je surový řetězec (`$x` proměnné nefungují), který musí být uzavřen ve dvojitých uvozovkách (ale znak " nesmí být součástí textu). Popisek je zobrazen fontem identifikovaným pomocí `id_fontu`.

`dlabel = X, Y, délka, zarovnání, id_fontu, "text"`

  Umístí dynamický popisek na pozici `X,Y`. Popisek je dynamický proto, že je jeho text periodicky obnovován. Maximální délka popisku je nastavena na `délka` (jeho výškou je výška znaku). Pokud je zobrazovaný text širší, pak bude rolován, jinak bude zarovnán do určeného prostoru podle hodnoty parametru `zarovnání`: `0` je zarovnání vpravo, `1` na střed, `2` vlevo.

  Text k zobrazení je zadán parametrem `text`: Musí být uzavřen do dvojitých uvozovek (ale znak " nesmí být součástí textu). Popisek je zobrazen fontem identifikovaným pomocí `id_fontu`. V textu můžete použít tyto proměnné:

  Proměnná | Význam
  --- | ---
  $1 | čas přehrávání ve formátu hh:mm:ss
  $2 | čas přehrávání ve formátu mmmm:ss
  $3 | čas přehrávání ve formátu hh (hodiny)
  $4 | čas přehrávání ve formátu mm (minuty)
  $5 | čas přehrávání ve formátu ss (sekundy)
  $6 | délka filmu ve formátu hh:mm:ss
  $7 | délka filmu ve formátu mmmm:ss
  $8 | čas přehrávání ve formátu h:mm:ss
  $v | hlasitost ve formátu xxx.xx%
  $V | hlasitost ve formátu xxx.xx
  $b | stereováha ve formátu xxx.xx%
  $B | stereováha ve formátu xxx.xx
  $$ | znak $
  $a | znak podle typu audia (žádné: `n`, mono: `m`, stereo: `t`)
  $t | číslo stopy (v playlistu)
  $o | název souboru
  $f | název souboru malými písmeny
  $F | název souboru velkými písmeny
  $T | znak podle typu datového proudu (soubor: `f`, Video CD: `v`, DVD: `d`, URL: `u`)
  $p | znak p (pokud přehráváte soubor a font obsahuje znak p)
  $s | znak s character (pokud přehráváte soubor a font obsahuje znak s)
  $e | znak e (pokud je přehrávání pozastaveno a font obsahuje znak e)
  $x | šířka filmu
  $y | výška filmu
  $C | název použitého kodeku

  ### Poznámka

  Proměnné `$a, $T, $p, $s` a `$e` vracejí znaky, které by měly být zobrazovány jako speciální symboly (například, e vrací symbol pauza, který obvykle vypadá jako ||). Měli byste mít font pro normální znaky a jiný font pro symboly. Více informací viz sekce o symbolech.

### C.2.2. Ovládací panel

Následující vstupy mohou být použity v bloku '`window = sub`' . . . '`end`'.

`base = obrázek, X, Y, šířka, výška`

  Obrázek, který bude zobrazen v okně. Okno se zobrazí na pozici zadané souřadnicemi `X,Y` na obrazovce (`0,0` je levý horní roh). Můžete nastavit `-1` pro střed a `-2` pro vpravo (`X`) a dole (`Y`). Okno bude stejně velké jako obrázek. `šířka` a `výška` udávají velikost okna; jsou volitelné (pokud chybí, má okno rozměry shodné s obrázkem).

`background = R, G, B`

  Umožňuje nastavit barvu pozadí. To je užitečné, pokud je obrázek menší než okno. `R`, `G` a `B` označují červenou, zelenou a modrou složku barvy (každá z nich je dekadická hodnota 0 až 255).

### C.2.3. Nabídka

Jak již bylo dříve řečeno, nabídka je zobrazena pomocí dvou obrázků. Normální položky nabídky jsou brány z obrázku určeného položkou `base`, zatímco aktuálně zvolený vstup je brán z obrázku určeného položkou `selected`. Musíte definovat pozici a rozměr každé položky nabídky.

Následující vstupy mohou být použity v bloku '`window = menu`'. . .'`end`'.

`base = obrázek`

  Obrázek normálních položek nabídky.

`selected = obrázek`

  Obrázek nabídky kde jsou všechny položky vybrány.

`menu = X, Y, šířka, výška, zpráva`

  Definuje pozici `X,Y` a rozměr položky nabídky v obrázku. `zpráva` je zpráva, generovaná jakmile je uvolněno tlačítko myši nad položkou.

Předcházející | Nahoru | Další
C.1. Přehled | Domů | C.3. Fonty