Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > a42e22ddf1d70fb02e9f62289d71cafa > files > 414

mplayer-doc-1.0-1.rc4.0.r31086.3.1mdv2010.2.i586.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>B.2. Le fichier skin</title><link rel="stylesheet" href="default.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="MPlayer - Le Lecteur Vidéo"><link rel="up" href="skin.html" title="Annexe B. Format de skins MPlayer"><link rel="prev" href="skin-overview.html" title="B.1. Aperçu"><link rel="next" href="skin-fonts.html" title="B.3. Polices"><link rel="preface" href="howtoread.html" title="Comment lire cette documentation"><link rel="chapter" href="intro.html" title="Chapitre 1. Introduction"><link rel="chapter" href="install.html" title="Chapitre 2. Installation"><link rel="chapter" href="usage.html" title="Chapitre 3. Utilisation"><link rel="chapter" href="cd-dvd.html" title="Chapitre 4. Utilisation des CD/DVD"><link rel="chapter" href="tv.html" title="Chapitre 5. TV"><link rel="chapter" href="radio.html" title="Chapitre 6. Radio"><link rel="chapter" href="video.html" title="Chapitre 7. Sorties vidéo"><link rel="chapter" href="ports.html" title="Chapitre 8. Ports"><link rel="chapter" href="mencoder.html" title="Chapitre 9. Utilisation basique de MEncoder"><link rel="chapter" href="encoding-guide.html" title="Chapitre 10. L'encodage avec MEncoder"><link rel="chapter" href="faq.html" title="Chapitre 11. Foire Aux Questions"><link rel="appendix" href="bugreports.html" title="Annexe A. Comment rapporter les bogues"><link rel="appendix" href="skin.html" title="Annexe B. Format de skins MPlayer"><link rel="subsection" href="skin-file.html#skin-file-main" title="B.2.1. Fenêtre principale et barre de lecture"><link rel="subsection" href="skin-file.html#skin-file-subwindow" title="B.2.2. Sous-fenêtre"><link rel="subsection" href="skin-file.html#skin-file-menu" title="B.2.3. Menu"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">B.2. Le fichier skin</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="skin-overview.html">Précédent</a> </td><th width="60%" align="center">Annexe B. Format de skins <span class="application">MPlayer</span></th><td width="20%" align="right"> <a accesskey="n" href="skin-fonts.html">Suivant</a></td></tr></table><hr></div><div class="sect1" title="B.2. Le fichier skin"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="skin-file"></a>B.2. Le fichier skin</h2></div></div></div><p>
Comme mentionné plus haut, c'est le fichier de configuration de la skin. Il est
lu ligne par ligne; les lignes de commentaires démarrent par le caractère
'<code class="literal">;</code>' en début de ligne (seuls les espaces et tabulations sont
autorisées avant ce signe).
</p><p>
Les fichiers se composent de sections. Chaque section décrit la skin pour une
application et s'écrit sous la forme:
</p><pre class="programlisting">
section = <em class="replaceable"><code>nom de la section</code></em>
.
.
.
end
</pre><p>
</p><p>
Actuellement il n'existe qu'une application, donc vous n'aurez besoin que d'une
section: dont le nom est <span class="bold"><strong>movieplayer</strong></span>.
</p><p>
Dans cette section chaque fenêtre est décrite par un bloc de la forme suivante:
</p><pre class="programlisting">
window = <em class="replaceable"><code>nom de la fenêtre</code></em>
.
.
.
end
</pre><p>
</p><p>
Où <em class="replaceable"><code></code></em> peut-être l'un des types suivants:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="bold"><strong>main</strong></span> - pour la fenêtre principale</p></li><li class="listitem"><p><span class="bold"><strong>sub</strong></span> - pour la sous-fenêtre</p></li><li class="listitem"><p><span class="bold"><strong>menu</strong></span> - pour le menu</p></li><li class="listitem"><p><span class="bold"><strong>playbar</strong></span> - barre de lecture</p></li></ul></div><p>
</p><p>
(Les blocs sub et menu sont optionnels - vous n'avez pas l'obligation de décorer
le menu et la sous-fenêtre.)
</p><p>
Dans un bloc window, vous pouvez définir chaque objet sous la forme:
</p><pre class="programlisting">objet = paramètre</pre><p>
Où <code class="literal">objet</code> est une ligne identifiant le type d'objet de la GUI,
<code class="literal">paramètre</code> est une valeur numérique ou textuelle (ou une liste
de valeurs séparées par des virgules).
</p><p>
Le fichier final doit donc ressembler à ceci:
</p><pre class="programlisting">
section = movieplayer
  window = main
  ; ... objets de la fenêtre principale ...
  end

  window = sub
  ; ... objets de la sous-fenêtre ...
  end

  window = menu
  ; ... objets du menu ...
  end

  window = playbar
  ; ... objets de la la barre de lecture ...
  end
end
</pre><p>
</p><p>
Le nom d'un fichier image doit être donné sans distinction de répertoire - les
images seront cherchées dans le répertoire <tt class="filename">skins</tt>.
Vous pouvez (mais ce n'est pas obligatoire) spécifier l'extension du fichier. Si
le fichier n'existe pas, <span class="application">MPlayer</span> essaie de charger le fichier
<tt class="filename">&lt;nomfichier&gt;.&lt;ext&gt;</tt>, où <code class="literal">png</code>
et <code class="literal">PNG</code> sera respectivement <tt class="filename">&lt;ext&gt;</tt>
(dans cet ordre). La première correspondance trouvée sera utilisée.
</p><p>
Pour finir quelques mots sur le positionnement. La fenêtre principale et la
sous-fenêtre peuvent être placées dans des coins différents de l'écran en donnant
les coordonnées <code class="literal">X</code> et <code class="literal">Y</code>. <code class="literal">0</code>
pour haut ou gauche, <code class="literal">-1</code> pour centre et <code class="literal">-2</code>
pour droite ou bas, comme montré sur cette illustration:
</p><div class="informalfigure"><pre class="screen">
(0, 0)----(-1, 0)----(-2, 0)
  |          |          |
  |          |          |
(0,-1)----(-1,-1)----(-2,-1)
  |          |          |
  |          |          |
(0,-2)----(-1,-2)----(-2,-2)
</pre></div><p>

Un exemple. Supposons que vous avez crée une image <tt class="filename">main.png</tt>
que vous voulez utiliser pour la fenêtre principale:
</p><pre class="programlisting">base = main, -1, -1</pre><p>
MPlayer essaie de charger les fichiers <tt class="filename">main</tt>,
<tt class="filename">main.png</tt>, <tt class="filename">main.PNG</tt>.
</p><div class="sect2" title="B.2.1. Fenêtre principale et barre de lecture"><div class="titlepage"><div><div><h3 class="title"><a name="skin-file-main"></a>B.2.1. Fenêtre principale et barre de lecture</h3></div></div></div><p>
Vous trouverez ci-dessous la liste des objets utilisables dans les blocs
'<code class="literal">window = main</code>' ... '<code class="literal">end</code>',
et '<code class="literal">window = playbar</code>' ... '<code class="literal">end</code>'.
</p><div class="variablelist"><dl><dt><span class="term"><code class="literal">
  <a name="skin-main-base"></a>base = image, X, Y
  </code></span></dt><dd><p>
  Vous spécifiez ici l'image de fond utilisée dans la fenêtre principale. La
  fenêtre apparaîtra a la position <code class="literal">X,Y</code> sur l'écran. La fenêtre
  aura la taille de l'image.
    </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Ces coordonnées ne fonctionnent actuellement pas pour la fenêtre
    d'affichage.</p></div><div class="warning" title="Avertissement" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Avertissement</h3><p>Les régions transparentes (couleur #FF00FF) apparaîtront en noir
    sur les serveurs X n'ayant pas l'extension XShape. La largeur de l'image doit
    être divisible par 8.</p></div></dd><dt><span class="term"><code class="literal">
  <a name="skin-button"></a>button = image, X, Y, largeur, hauteur, message
  </code></span></dt><dd><p>
Place un bouton de taille <code class="literal">largeur</code> * <code class="literal">hauteur</code>
a la position <code class="literal">X,Y</code>. Le <code class="literal">message</code> sera généré
au clic sur ce bouton. L'image appelée par <code class="literal">image</code> doit avoir
trois états empilés verticalement (pour les trois états du bouton), comme ceci:

</p><div class="informalfigure"><pre class="screen">
+------------+
|  pressé    |
+------------+
|  relâché   |
+------------+
|  désactivé |
+------------+
</pre></div></dd><dt><span class="term"><code class="literal">
  <a name="skin-decoration"></a>decoration = enable|disable
  </code></span></dt><dd><p>
Active (enable) ou désactive (disable) la décoration du gestionnaire de fenêtre
pour la fenêtre principale. <span class="bold"><strong>disable</strong></span> par défaut.
    </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Cela ne fonctionne pas pour la fenêtre d'affichage, il n'y en a pas
    besoin.</p></div></dd><dt><span class="term"><code class="literal">
  <a name="skin-hpotmeter"></a>hpotmeter = button, blargeur, bhauteur, phases, numphases, default, X, Y, largeur, hauteur, message
  </code></span></dt><dd><p>

    </p></dd><dt><span class="term"><code class="literal">
  <a name="skin-vpotmeter"></a>vpotmeter = button, blargeur, bhauteur, phases, numphases, default, X, Y, largeur, hauteur, message
  </code></span></dt><dd><p>

Place un podomètre horizontal (hpotmeter) ou vertical (vpotmeter) de taille
<code class="literal">largeur</code> * <code class="literal">hauteur</code> à la position
<code class="literal">X,Y</code>. L'image peut être divisée en différentes parties pour les
différentes phases du podomètre (par exemple, vous pouvez en avoir un pour le
contrôle du volume qui passe du vert au rouge quand sa valeur passe du minimum au
maximum). <code class="literal">hpotmeter</code> peut posséder un bouton qui sera glissé
horizontalement.
    </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">button</code> - l'image utilisée pour le bouton (doit
    avoir trois états superposés, comme pour les
    <a class="link" href="skin-file.html#skin-button">boutons</a>)
    </p></li><li class="listitem"><p><code class="literal">blargeur</code>,<code class="literal">bhauteur</code> - taille
    du bouton
    </p></li><li class="listitem"><p><code class="literal">phases</code> - l'image utilisée pour les différentes
   phases du podomètre. Une valeur <code class="literal">NULL</code> spéciale peut-être
   utilisée si vous ne voulez pas d'image. L'image doit être divisée en
   <code class="literal">numphasesparts</code> verticalement comme ceci:
    </p><div class="informalfigure"><pre class="screen">
+------------+
|  phase #1  |
+------------+
|  phase #2  |
+------------+
     ...
+------------+
|  phase #n  |
+------------+
</pre></div></li><li class="listitem"><p><code class="literal">numphases</code> - nombre d'états placés dans l'image <code class="literal">phases</code>.
    </p></li><li class="listitem"><p><code class="literal">default</code> - valeur par défaut du podomètre (dans
    un intervalle de <code class="literal">0</code> à <code class="literal">100</code>)
    </p></li><li class="listitem"><p><code class="literal">X</code>,<code class="literal">Y</code> - position du hpotmeter
    </p></li><li class="listitem"><p><code class="literal">largeur</code>,<code class="literal">hauteur</code> -
    largeur et hauteur du <code class="literal">hpotmeter</code>
    </p></li><li class="listitem"><p><code class="literal">message</code> - le message généré lors des
    changements d'état de <code class="literal">hpotmeter</code>
    </p></li></ul></div></dd><dt><span class="term"><code class="literal">
  <a name="skin-potmeter"></a>potmeter = phases, numphases, default, X, Y, largeur, hauteur, message
  </code></span></dt><dd><p>
Un <code class="literal">hpotmeter</code> sans bouton. (je suppose qu'il est censé tourner
en rond, mais il réagit uniquement aux tractions horizontales.) Pour une
description de ses paramètres lisez <a class="link" href="skin-file.html#skin-hpotmeter">hpotmeter</a>.
Ses <code class="literal">phases</code> peuvent être fixées à <code class="literal">NULL</code>, mais ce n'est
pas vraiment utile, puisque vous ne pouvez pas voir son niveau.
    </p></dd><dt><span class="term"><code class="literal">
  <a name="skin-font"></a>font = fontfile, fontid
  </code></span></dt><dd><p>
Définit une police. <code class="literal">fontfile</code> est le nom du descripteur de
police avec l'extension <tt class="filename">.fnt</tt> (inutile de préciser son
extension ici). <code class="literal">fontid</code> réfère à la police (c.f.
<a class="link" href="skin-file.html#skin-dlabel">dlabel</a> et <a class="link" href="skin-file.html#skin-slabel">slabel</a>).
Jusqu'à 25 polices peuvent être définies.
    </p></dd><dt><span class="term"><code class="literal">
  <a name="skin-slabel"></a>slabel = X, Y, fontid, "texte"
  </code></span></dt><dd><p>
Place un label dynamique à la position <code class="literal">X,Y</code>. <code class="literal">texte</code>
est affiché en utilisant la police identifiée par <code class="literal">fontid</code>. Le
texte est juste une chaîne brute (les variables <code class="literal">$x</code> ne
fonctionnent pas) qui doit être mise entre doubles quotes (mais le caractère
" ne peut pas faire partie du texte). Le label est affiché en utilisant la
police identifiée par <code class="literal">fontid</code>.
    </p></dd><dt><span class="term"><code class="literal">
  <a name="skin-dlabel"></a>dlabel = X, Y, longueur, align, fontid, "texte"
  </code></span></dt><dd><p>
Place un label statique à la position <code class="literal">X,Y</code>. Le label est appelé
dynamique parce que son texte est rafraîchi périodiquement. La longueur maximum du
label est définie par <code class="literal">longueur</code> (sa hauteur dépend de la hauteur
des caractères). Si le texte a afficher dépasse cette longueur il sera scrollé, ou
bien aligné dans l'espace spécifié par la valeur du paramètre
<code class="literal">align</code>: <code class="literal">0</code> pour droite,
<code class="literal">1</code> pour centre, et <code class="literal">2</code> pour gauche.
</p><p>
Le texte à afficher est donné par <code class="literal">texte</code>: il doit être écrit
entre doubles quotes (mais le caractère " ne peut pas faire partie du texte).
Le texte s'affiche en utilisant la police spécifiée par <code class="literal">fontid</code>.
Vous pouvez utiliser les variables suivantes dans le texte:
</p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Variable</th><th>Signification</th></tr></thead><tbody><tr><td>$1</td><td>temps de lecture au format <span class="emphasis"><em>hh:mm:ss</em></span></td></tr><tr><td>$2</td><td>temps de lecture au format <span class="emphasis"><em>mmmm:ss</em></span></td></tr><tr><td>$3</td><td>temps de lecture au format <span class="emphasis"><em>hh</em></span> (heures)</td></tr><tr><td>$4</td><td>temps de lecture au format <span class="emphasis"><em>mm</em></span> (minutes)</td></tr><tr><td>$5</td><td>temps de lecture au format <span class="emphasis"><em>ss</em></span> (secondes)</td></tr><tr><td>$6</td><td>longueur du film au format <span class="emphasis"><em>hh:mm:ss</em></span></td></tr><tr><td>$7</td><td>longueur du film au format <span class="emphasis"><em>mmmm:ss</em></span></td></tr><tr><td>$8</td><td>temps de lecture au format <span class="emphasis"><em>h:mm:ss</em></span></td></tr><tr><td>$v</td><td>volume au format <span class="emphasis"><em>xxx.xx</em></span>%</td></tr><tr><td>$V</td><td>volume au format <span class="emphasis"><em>xxx.xx</em></span></td></tr><tr><td>$b</td><td>balance au format <span class="emphasis"><em>xxx.xx</em></span>%</td></tr><tr><td>$B</td><td>balance au format <span class="emphasis"><em>xxx.xx</em></span></td></tr><tr><td>$$</td><td>le caractère $</td></tr><tr><td>$a</td><td>un caractère dépendant du type audio (aucun: <code class="literal">n</code>,
mono: <code class="literal">m</code>, stéréo: <code class="literal">t</code>)</td></tr><tr><td>$t</td><td>numéro de piste (dans la playlist)</td></tr><tr><td>$o</td><td>nom du fichier</td></tr><tr><td>$f</td><td>nom du fichier en minuscule</td></tr><tr><td>$F</td><td>nom du fichier en majuscule</td></tr><tr><td>$T</td><td>un caractère dépendant du type de flux (fichier: <code class="literal">f</code>,
Video CD: <code class="literal">v</code>, DVD: <code class="literal">d</code>, URL: <code class="literal">u</code>)</td></tr><tr><td>$p</td><td>le caractère <span class="keycap"><b>p</b></span> (si une vidéo est en lecture et que la
police a le caractère <span class="keycap"><b>p</b></span>)</td></tr><tr><td>$s</td><td>le caractère <span class="keycap"><b>s</b></span> (si une vidéo est stoppée et que la police
a le caractère <span class="keycap"><b>s</b></span>)</td></tr><tr><td>$e</td><td>le caractère <span class="keycap"><b>e</b></span> (si une vidéo est en pause et que la police
a le caractère <span class="keycap"><b>e</b></span>)</td></tr><tr><td>$x</td><td>largeur du film</td></tr><tr><td>$y</td><td>hauteur du film</td></tr><tr><td>$C</td><td>nom du codec utilisé</td></tr></tbody></table></div></dd></dl></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
Les variables <code class="literal">$a, $T, $p, $s</code> et <code class="literal">$e</code>
<span class="keycap"><b>e</b></span> retournent toutes des caractères pouvant s'afficher comme des
symboles spéciaux (par exemple, <span class="keycap"><b>e</b></span> est le symbole de pause qui
ressemble généralement à ||). Vous pouvez avoir une police pour les caractères
normaux et une autre pour les symboles. Lisez la section sur les
<a class="link" href="skin-fonts.html#skin-fonts-symbols" title="B.3.1. Symboles">symboles</a> pour plus d'informations.
</p></div></div><div class="sect2" title="B.2.2. Sous-fenêtre"><div class="titlepage"><div><div><h3 class="title"><a name="skin-file-subwindow"></a>B.2.2. Sous-fenêtre</h3></div></div></div><p>
Vous trouverez ci-dessous la liste des objets utilisables dans le bloc
'<code class="literal">window = sub</code>' . . . '<code class="literal">end</code>'.
</p><div class="variablelist"><dl><dt><span class="term"><code class="literal">
  <a name="skin-sub-base"></a>base = image, X, Y, largeur, hauteur
  </code></span></dt><dd><p>
L'image qui s'affichera dans la fenêtre. La fenêtre apparaîtra à la position
<code class="literal">X,Y</code> sur l'écran (<code class="literal">0,0</code> est le coin supérieur
gauche). Vous pouvez spécifier <code class="literal">-1</code> pour centre et <code class="literal">-2</code>
pour droite (<code class="literal">X</code>) et bas (<code class="literal">Y</code>). La fenêtre prendra
la taille de l'image. <code class="literal">largeur</code> et <code class="literal">hauteur</code>
donnent la taille de la fenêtre; ces paramètres sont optionnels (si ils sont
absents, le fenêtre prend la taille de l'image).
    </p></dd><dt><span class="term"><code class="literal">
  <a name="skin-background"></a>background = R, V, B
  </code></span></dt><dd><p>
Vous permet de définir la couleur de fond. Utile si l'image est plus petite que la
fenêtre. <code class="literal">R</code>, <code class="literal">V</code> et <code class="literal">B</code>
spécifient les composantes rouge, verte et bleue de la couleur (d'un intervalle
entre 0 et 255).
    </p></dd></dl></div></div><div class="sect2" title="B.2.3. Menu"><div class="titlepage"><div><div><h3 class="title"><a name="skin-file-menu"></a>B.2.3. Menu</h3></div></div></div><p>
Comme mentionné précédemment, le menu s'affiche en utilisant deux images. Les
entrées normales du menu sont extraites de l'image spécifiée par l'objet
<code class="literal">base</code>, tandis que l'entrée actuellement sélectionnée est
extraite de l'image spécifiée par l'objet <code class="literal">selected</code>. Vous devez
définir la taille et la position de chaque entrée du menu par l'objet
<code class="literal">menu</code>.
</p><p>
Ils correspondent aux objets utilisés dans le bloc
'<code class="literal">window = menu</code>'. . .'<code class="literal">end</code>'.
</p><div class="variablelist"><dl><dt><span class="term"><code class="literal">
  <a name="skin-menu-base"></a>base = image
  </code></span></dt><dd><p>
L'image utilisée pour les entrées normales.
    </p></dd><dt><span class="term"><code class="literal">
  <a name="skin-selected"></a>selected = image
  </code></span></dt><dd><p>
L'image utilisée pour les entrées sélectionnées.
    </p></dd><dt><span class="term"><code class="literal">
  <a name="skin-menu"></a>menu = X, Y, largeur, hauteur, message
  </code></span></dt><dd><p>
Définit la position <code class="literal">X,Y</code> et la taille des entrées du menu dans
les images. <code class="literal">message</code> est le message généré quand le bouton de la
souris est relâché.
    </p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="skin-overview.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="skin.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="skin-fonts.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">B.1. Aperçu </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> B.3. Polices</td></tr></table></div></body></html>