diff DOCS/fr/skin.html @ 9332:a604236b0dd6

Rename documentation directories to two-letter language codes.
author diego
date Sat, 08 Feb 2003 00:00:00 +0000
parents DOCS/French/skin.html@f08b6945e839
children 36637ef379f1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DOCS/fr/skin.html	Sat Feb 08 00:00:00 2003 +0000
@@ -0,0 +1,803 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <title>Création de skins - MPlayer - Le lecteur vidéo pour Linux</title>
+  <link rel="stylesheet" type="text/css" href="default.css">
+  <style type="text/css">
+    em.note {color: green;
+             font-style: normal;}
+    em.warn {color: red;
+             font-style: normal;}
+    </style>
+</head>
+
+<body>
+
+<h1 align="center">Appendice D - Format de skins MPlayer</h1>
+
+<p>L'objectif de ce document est de décrire le format de skins de MPlayer.
+Les informations présentées ici peuvent s'avérer fausses, du fait que</p>
+
+<ol type="a">
+  <li>Ce n'est pas moi qui ait écrit la GUI.</li>
+  <li>Cette GUI n'est pas terminée,</li>
+  <li>Je peux me tromper.</li>
+</ol>
+
+<p>Ne soyez donc pas surpris si quelque chose ne correspond pas à cette description.</p>
+
+<p>Merci à <em>Zolt&aacute;n Ponekker</em> pour son aide.</p>
+
+<p><em>Andr&aacute;s Mohari &lt;mayday@freemail.hu&gt;</em></P>
+
+<h2><a name="overview">D.1 Aperçu</a></h2>
+
+<p>Ce n'est pas en rapport direct avec le format des skins, mais vous devez savoir que
+MPlayer n'a <b>pas</b> de skin par défaut, donc <b>une skin au moins doit
+être installée pour pouvoir utiliser la GUI.</b></p>
+
+
+<h3><a name="dirs">D.1.1 Répertoires</a></h3>
+
+<p>MPlayer cherche des skins dans ces répertoires (dans cet ordre):</p>
+
+<pre>
+    $(DATADIR)/Skin/
+    /usr/local/share/mplayer/Skin/
+    ~/.mplayer/Skin/
+</pre>
+
+<p>Notez que le premier répertoire peut varier suivant la façon dont MPlayer 
+a été configuré (c.f. les arguments <code>--prefix</code> et
+<code>--datadir</code> du script <code>configure</code>).</p>
+
+<p>Chaque skin est installée dans son propre répertoire sous l'un des répertoires 
+  listés ci-dessus, par exemple:</p>
+  
+<pre>
+    $(PREFIX)/share/mplayer/Skin/default/
+</pre>
+
+
+<h3><a name="images">D.1.2 Format d'images</a></h3>
+
+<p>Les images doivent être en truecolor (24 ou 32 bpp) et enregistrées 
+au format PNG.</p>
+
+<p>Dans la fenêtre principale et la barre de lecture (c.f. ci-dessous) vous pouvez utiliser des images 
+dotées de régions "transparentes" : les régions remplies avec la 
+couleur #FF00FF (<font color="#FF00FF">magenta</font>) deviennent transparentes dans 
+MPlayer. De même, vous pouvez obtenir des formes particulières pour vos 
+fenêtres si votre serveur X possède l'extension XShape.</p>
+
+
+<h3><a name="components">D.1.3 Composants d'une skin</a></h3>
+
+<p>Les skins sont d'un format plutôt libre (contrairement aux formats fixes de
+Winamp/XMMS, par exemple), donc il ne tient qu'a vous de créer quelque chose 
+de bien.</p>
+
+<p>Actuellement, trois fenêtres doivent être décorées : la
+<a href="#mainwin">fenêtre principale</a>, la 
+<a href="#subwindow">sous-fenêtre</a>, la <a href="#mainwin">barre de lecture</a>, 
+et le <a href="#skinmenu">menu</a> (activable par un clic droit).</p>
+
+<ul>
+  <li><p>Vous controlez MPlayer par la <b>fenêtre principale</b> et/ou la barre de lecture. 
+    L'arrière plan est une image. Divers objets doivent venir se placer dans cette fenêtre : 
+    <em>boutons</em>, <em>podomètres</em> (ou des sliders si vous préférez) 
+    et des <em>labels</em>. Pour chaque objet, vous devez spécifier sa taille et
+    sa position.</p>
+
+    <p>Un <b>bouton</b> comprend trois états (pressé, relâché,
+      désactivé), donc l'image doit se diviser en trois parties, verticalement.
+      c.f. l'objet <a href="#main.button">bouton</a> pour plus de détails.</p>
+
+    <p>Un <b>podomètre</b> (principalement utilisé pour la barre d'avancement
+      et le contrôle du volume/balance) peut posséder n'importe quel nombre
+      d'états en empilant ces images, verticalement.
+      C.f. <a href="#main.hpotmeter">hpotmeter</a> et
+      <a href="#main.potmeter">potmeter</a> pour plus de détails.</p>
+
+    <p>Les <b>labels</b> sont un peut particuliers : les caractères nécessaires
+      pour les dessiner sont récupérés depuis un fichier image,
+      décrit par un <a href="#fonts">fichier de description de polices</a>.
+      Ce dernier est un fichier texte brut spécifiant la position x,y ainsi que la taille de chaque caractère dans l'image. (donc le fichier image et son descripteur forment une police <em>ensemble</em>.)
+      C.f. <a href="#main.dlabel">dlabel</a> et <a href="#main.slabel">slabel</a>
+      pour plus de détails.</p>
+
+    <p><em class=note><b>Note:</b> toutes les images disposent de la couleur de transparence décrite dans
+      la section <a href="#images">formats d'images</a>. Si le serveur X ne supporte pas
+      l'extension Xshape, les parties transparentes seront noires. Si vous voulez utiliser
+      cette fonction, la largeur de l'image de la fenêtre principale devra être divisible par 8.</em></p>
+  </li>
+
+  <li>La <b>sous-fenêtre</b> contient la vidéo en elle même. Elle peut
+    afficher une image si aucun film n'est chargé (ce n'est jamais plaisant
+    d'avoir une fenêtre vide :-)) <em class=note><b>Note:</b> la couleur de transparence n'est <b>pas
+    autorisée</b> ici.</em>
+  </li>
+
+  <li><p>Le <b>menu</b> est simplement un moyen de contrôler MPlayer par des entrées
+    graphiques. Deux images sont nécessaires pour le menu : l'une d'elle, l'image
+    de base, affiche le menu dans son été normal, l'autre est utilisée
+    pour afficher les entrées sélectionnées. Quand vous faites
+    apparaître le menu, la première image s'affiche. Si vous passez la souris sur
+    les entrées du menu, l'entrée sélectionnée est copiée
+    depuis la seconde image, et uniquement la partie concernée par cette
+    sélection (Donc la seconde image ne s'affiche jamais complètement.)</p>
+
+    <p>Une entrée de menu se définit par sa position et sa taille dans l'image 
+      (c.f. la section <a href="#skinmenu">menu</a> pour plus de détails).</p>
+  </li>
+</ul>
+
+<p>Une chose essentielle n'a pas encore été mentionnée : pour que 
+  les boutons podomètres et entrées du menu fonctionnent, MPlayer doit 
+  savoir quoi en faire. Ceci dépend des <a href="#guimsg">messages</a> (events) 
+  envoyés. Pour chacun de ces objets vous devez définir le message à afficher quand
+  on clique dessus.</p>
+
+  
+<h3><a name="files">D.1.4 Fichiers</a></h3>
+
+<p>Vous aurez besoin des fichiers suivants pour construire une skin:</p>
+
+<ul>
+  <li>Le fichier de configuration nommé <a href="#skin">skin</a> indique à MPlayer
+    comment assembler les différentes images et comment interpréter les clics de
+    souris sur l'interface.</li>
+  <li>L'image de fond de la fenêtre principale.</li>
+  <li>Les images correspondant aux objets de la fenêtre principale (y compris une
+    ou plusieurs polices et descripteurs nécessaires à l'affichage des
+    textes).</li>
+  <li>L'image affichée dans la sous-fenêtre (optionnel).</li>
+  <li>Deux images pour le menu (nécessaires uniquement si vous voulez créer
+    un menu).</li>
+</ul>
+
+<p>A l'exception du fichier de configuration, vous pouvez nommer les fichiers comme bon
+vous semble (mais notez que les descripteurs de polices doivent avoir une extension
+<code>.fnt</code>).</p>
+
+
+<h2><a name="skinfile">D.2 Le fichier skin</h2>
+
+<p>Comme mentionné plus haut, c'est le fichier de configuration de la skin.
+Il est lu ligne par ligne; les lignes de commentaire démarrent par le
+caractère '<code>;</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>
+
+<table border=1 width="100%">
+  <tr bgcolor=silver>
+    <td>
+<pre>
+section = <i>nom de la section</i>
+.
+.
+.
+end
+</pre>
+    </td>
+  </tr>
+</table>
+
+<p>Actuellement il n'existe qu'une application, donc vous n'aurez besoin que d'une section:
+dont le nom est <b>movieplayer</b>.</p>
+
+<p>Dans cette section chaque fenêtre est décrite par un bloc de la forme 
+suivante:</p>
+
+<table border=1 width="100%">
+  <tr bgcolor=silver>
+    <td>
+<pre>
+window = <i>nom de la fenêtre</i>
+.
+.
+.
+end
+</pre>
+    </tr>
+  </td>
+</table>
+
+<p>où <i>nom de la fenêtre</i> peut-être l'un des types suivants :</p>
+
+<ul>
+  <li><b>main</b> - pour la fenêtre principale</li>
+  <li><b>sub</b> - pour la sous-fenêtre</li>
+  <li><b>menu</b> - pour le menu</li>
+  <li><b>playbar</b> - barre de lecture</li>
+</ul>
+
+<p>(Les blocs sub et menu sont optionnels - vous n'avez pas d'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>
+
+<dl>
+  <dt><b><code>item = paramètre</code></b></dt>
+  <dd>ou <code>item</code> est une ligne identifiant le type d'objet de la GUI,
+    <code>paramètre</code> est une valeur numérique ou textuelle (ou une liste 
+    de valeurs séparées par des virgules).</dd>
+</dl>
+
+<p>Le fichier final doit donc ressembler à ceci :</p>
+
+<table border=1 width="100%">
+  <tr bgcolor=silver>
+    <td>
+<pre>
+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
+end
+</pre>
+    </tr>
+  </td>
+</table>
+
+<p>Le nom d'un fichier image doit être donné sans distinction de
+répertoire - les images seront cherchées dans le
+répertoire <code>Skin</code>. Vous pouvez (mais ce n'est pas
+obligatoire) spécifier l'extension du fichier. Si le fichier n'existe pas,
+MPlayer essaie de charger le fichier <code>&lt;filename&gt;.&lt;ext&gt;</code>,
+ou <code>&lt;ext&gt;</code> sera respectivement <code>png</code> et <code>PNG</code>
+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>X</code> et <code>Y</code>. <code>0</code> pour haut ou gauche, <code>-1</code>
+pour centre et <code>-2</code> pour droite ou bas, comme montré sur cette illustration:</p>
+
+<pre>
+
+(0, 0)----(-1, 0)----(-2, 0)
+  |          |          |
+  |          |          |
+(0,-1)----(-1,-1)----(-2,-1)
+  |          |          |
+  |          |          |
+(0,-2)----(-1,-2)----(-2,-2)
+
+</pre>
+
+<table border=1 cellpadding=5 width="100%">
+  <tr bgcolor="#ffffcc">
+    <td>Un exemple. Supposons que vous avez crée une image
+      <i>main.png</i> que vous voulez utiliser pour la fenêtre principale:
+      <blockquote>
+<pre>
+    base = main, -1, -1
+</pre>
+      </blockquote>
+      MPlayer essaie de charger les fichiers <code>main</code>, <code>main.png</code>, 
+      <code>main.PNG</code>.<br>
+    </td>
+  </tr>
+</table>
+
+
+<h3><a name="mainwindow">D.2.1 Fenêtre principale et barre de lecture</a></h3>
+
+<p>Vous trouverez ci-dessous la liste des objets utilisables dans les blocs
+  '<code>window = main</code>' .&nbsp;.&nbsp;. '<code>end</code>' et
+  '<code>window = playbar</code>' &nbsp;.&nbsp;. '<code>end</code>'.</p>
+
+<dl>
+  <dt><a name="main.base"><b>base = <code>image, X, Y</code></b></a></dt>
+  <dd>Vous spécifiez ici l'image de fond utilisée dans la fenêtre principale.
+    La fenêtre apparaîtra a la position <code>X,Y</code> sur l'écran. La fenêtre a la
+    taille de l'image.
+    <div><em class="warn"><b>Note:</b> Ces coordonnées ne fonctionnent actuellement
+      pas pour la fenêtre d'affichage.</em><br>
+      <em class="warn"><b>Attention :</b> 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.</em>
+    </div>
+  </dd>
+
+  <dt><a name="main.button"><b><code>button = image, X, Y, largeur, hauteur, 
+    message</code></b></a></dt>
+  <dd>Place un bouton de taille <code>largeur</code> * <code>hauteur</code> a la 
+    position <code>X</code>,<code>Y</code>. Le <code>message</code> sera 
+    généré au clic sur ce bouton. L'image appelée par <code>image</code> doit 
+    avoir trois états empilés verticalement (pour les trois états du bouton), 
+    comme ceci:
+<pre>
++---------------+
+|  pressé	|
++---------------+
+|  relâché	|
++---------------+
+|  désactivé	|
++---------------+
+</pre>
+  </dd>
+
+  <dt><a name="main.decoration"><b><code>decoration = enable|disable</code></b>
+    </a></dt>
+  <dd>Active (<code>enable</code>) ou désactive (<code>disable</code>) la 
+    décoration du gestionnaire de fenêtre pour la fenêtre principale. 
+    <b>Désactivé</b> par défaut.<br><br>
+    <em class="warn"><b>Note:</b> Cela ne fonctionne pas pour la fenêtre d'affichage,
+    il n'y en a pas besoin.</em><br>
+  </dd>
+
+  <dt><a name="main.hpotmeter"><b><code>hpotmeter = button, blargeur, bhauteur, 
+    phases, numphases, default, X, Y, largeur, hauteur, message</code><br>
+    <code>vpotmeter = button, blargeur, bhauteur, phases, numphases, default, X, Y,
+    largeur, hauteur, message</code></b></a></dt>
+  <dd>Place un podomètre horizontal (hpotmeter) ou vertical (vpotmeter) de taille 
+    <code>largeur</code> * <code>hauteur</code> a la position <code>X</code>,<code>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>hpotmeter</code> peut posséder un
+    bouton qui sera glissé horizontalement.
+
+    <div>Les paramètres sont :</div>
+
+    <ul>
+      <li><code>button</code> - l'image utilisée pour le bouton
+        (doit avoir trois états superposés, comme pour les
+        <a href="#main.button">boutons</a>)</li>
+      <li><code>blargeur</code>, <code>bhauteur</code> - taille du bouton</li>
+      <li><code>phases</code> - L'image utilisée pour les différentes phases du
+        podomètre. Une valeur <code>NULL</code> spéciale peut-être utilisée 
+        si vous ne voulez pas d'image. L'image doit être divisée en 
+        <code>numphases</code> parties verticalement comme ceci:
+<pre>
++------------+
+|  phase #1  |
++------------+
+|  phase #2  |
++------------+
+     ...
++------------+
+|  phase #n  |
++------------+
+</pre>
+      </li>
+      <li><code>numphases</code> - nombre d'états placés dans l'image.</li>
+      <li><code>default</code> - valeur par défaut du podomètre (dans un
+        intervalle de 0 a 100)</li>
+      <li><code>X</code>, <code>y</code> - position pour le podomètre</li>
+      <li><code>largeur</code>, <code>hauteur</code> - largeur et hauteur du podomètre</li>
+      <li><code>message</code> - le message généré lors des changements
+        d'état de <code>hpotmeter</code></li>
+    </ul>
+  </dd>
+
+  <dt><a name="main.potmeter"><b><code>potmeter = phases, numphases, default, X, Y, 
+    largeur, hauteur, message</code></b></a></dt>
+  <dd>Un <code>hpotmeter</code> sans boutons. (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 href="#main.hpotmeter">hpotmeter</a>. Ses <code>états</code> peuvent être
+    <code>NULL</code>, mais ce n'est pas vraiment utile, puisque vous ne pouvez pas voir 
+    son niveau.</dd>
+
+  <dt><a name="main.font"><b>font = <code>fontfile, fontid</code></b></a></dt>
+  <dd>Définit une police. <code>fontfile</code> est le nom du descripteur de police
+    avec l'extension <code>.fnt</code> (<b>inutile</b> de préciser son extension ici).
+    <code>fontid</code> réfère à la police
+    (c.f. <a href="#main.dlabel">dlabel</a> et <a href="#main.slabel">slabel</a>).
+    Plus de 25 polices peuvent être définies.</dd>
+
+  <dt><a name="main.slabel"><b><code>slabel = X, Y, fontid, &quot;texte&quot;</code></b>
+    </a></dt>
+  <dd>Place un label statique à the position <code>X</code>,<code>Y</code>.
+    <code>text</code> est affiché en utilisant la police identifiée par <code>fontid</code>.
+    Le texte est juste une chaîne brute (les variables <code>$x</code> ne fonctionnent pas) 
+    qui doit être mise entre doubles quotes (mais le caractère <code>&quot;</code> ne peut pas
+    faire partie du texte). Le label est affiché en utilisant la police identifiée par
+    <code>fontid</code>.</dd>
+
+  <dt><a name="main.dlabel"><b>dlabel = <code>X, Y, longueur, align, fontid, 
+    &quot;texte&quot;</code></b></a></dt>
+  <dd>Place un label statique à la position <code>X</code>,<code>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>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>align</code> :
+    <code>0</code> pour droite, <code>1</code> pour centré, <code>2</code> pour gauche.<br>
+    Le texte à afficher est donné par <code>texte</code>: il doit être écrit entre doubles quotes
+    (mais le caractère <code>&quot;</code> ne peut pas faire partie du texte).
+    Le texte s'affiche en utilisant la police spécifiée par <code>fontid</code>.
+    Vous pouvez utiliser les variables suivantes dans le texte :
+
+    <table valign=top border=1>
+      <tr align=center><th>Variable</th><th align=left>Signification</th></tr>
+      <tr><td align=center><kbd>$1</kbd></td>
+        <td>temps de lecture en <em>hh:mm:ss</em></td></tr>
+      <tr><td align=center><kbd>$2</kbd></td>
+        <td>temps de lecture en <em>mmmm:ss</em></td></tr>
+      <tr><td align=center><kbd>$3</kbd></td>
+        <td>temps de lecture en <em>hh</em>(heures)</td></tr>
+      <tr><td align=center><kbd>$4</kbd></td>
+        <td>temps de lecture en <em>mm</em>(minutes)</td></tr>
+      <tr><td align=center><kbd>$5</kbd></td>
+        <td>temps de lecture en <em>ss</em>(secondes)</td></tr>
+      <tr><td align=center><kbd>$6</kbd></td>
+        <td>longueur du film en <em>hh:mm:ss</em></td></tr>
+      <tr><td align=center><kbd>$7</kbd></td>
+        <td>longueur du film en <em>mmmm:ss</em></td></tr>
+      <tr><td align=center><kbd>$8</kbd></td>
+        <td>temps de lecture en <em>h:mm:ss</em></td></tr>
+      <tr><td align=center><kbd>$v</kbd></td>
+        <td>volume en <em>xxx.xx%</em></td></tr>
+      <tr><td align=center><kbd>$V</kbd></td>
+        <td>volume en <em>xxx.x</em></td></tr>
+      <tr><td align=center><kbd>$b</kbd></td>
+        <td>balance en <em>xxx.xx%</em></td></tr>
+      <tr><td align=center><kbd>$B</kbd></td>
+        <td>balance en <em>xxx.x</em></td></tr>
+      <tr><td align=center><kbd>$$</kbd></td>
+        <td>le caractère <kbd>$</kbd></td></tr>
+      <tr><td align=center><kbd>$a</kbd></td>
+        <td>un caractère dépendant du type audio (aucun: <code>n</code>,
+          mono: <code>m</code>, stéréo: <code>t</code>)</td></tr>
+      <tr><td align=center><kbd>$t</kbd></td>
+        <td>numéro de piste (dans la playlist)</td></tr>
+      <tr><td align=center><kbd>$o</kbd></td>
+        <td>nom du fichier</td></tr>
+      <tr><td align=center><kbd>$f</kbd></td>
+        <td>nom du fichier en minuscule</td></tr>
+      <tr><td align=center><kbd>$F</kbd></td>
+        <td>nom du fichier en majuscule</td></tr>
+      <tr><td align=center><kbd>$T</kbd></td>
+        <td>un caractère dépendant du type de flux (fichier: <code>f</code>,
+          Video CD: <code>v</code>, DVD: <code>d</code>, URL: <code>u</code>)
+          </td></tr>
+      <tr><td align=center><kbd>$p</kbd></td>
+        <td>le caractère "p" (si une vidéo est en lecture et que la police a le 
+          caractère "p")</td></tr>
+      <tr><td align=center><kbd>$s</kbd></td>
+         <td>le caractère "s" (si une vidéo est stoppée et que la police a le caractère "s")
+      </td></tr>
+      <tr><td align=center><kbd>$e</kbd></td>
+    <td>le caractère "e" (si une vidéo est en pause et que la police a le caractère "e")
+      </td></tr>
+    <tr><td align="center"><kbd>$x</kbd></td>
+        <td>largeur du film</td></tr>
+      <tr><td align="center"><kbd>$y</kbd></td>
+        <td>hauteur du film</td></tr> 
+      <tr><td align="center"><kbd>$C</kbd></td>
+        <td>nom du codec utilisé</td></tr> 
+
+    </table>
+
+    <em class="note"><b>Note:</b> les variables <kbd>$a</kbd>, <kbd>$T</kbd>, 
+    <kbd>$p</kbd>, <kbd>$s</kbd> et <kbd>$e</kbd> retournent toutes des 
+    caractères pouvant s'afficher comme des symboles spéciaux (par exemple, 
+    "e" est le symbole de pause qui ressemble généralement à <code>||</code>). 
+    Vous pouvez avoir une police pour les caractères normaux et une autre pour 
+    les symboles. Lisez la section sur les <a href="#symbols">symboles</a> pour 
+    plus d'informations.</em>
+  </dd>
+</dl>
+
+<h3><a name="subwindow">D.2.2 Sous-fenêtre</a></h3>
+
+<p>Vous trouverez ci-dessous la liste des objets utilisables dans le bloc
+'<code>window = sub</code>' .&nbsp;.&nbsp;. '<code>end</code>'.</p>
+
+<dl>
+  <dt><a name="sub.base"><b>base = <code>image, x, y, largeur, hauteur</code></b>
+    </a></dt>
+  <dd>L'image qui s'affichera dans la fenêtre.
+    La fenêtre apparaîtra à la position <code>x</code>,<code>y</code>
+    sur l'écran (<code>0,0</code> est le coin supérieur gauche). Vous pouvez spécifier 
+    <code>-1</code> pour centre et <code>-2</code> pour droite. La fenêtre prendra 
+    la taille de l'image. <code>largeur</code> et <code>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).</dd>
+
+  <dt><a name="sub.background"><b><code>background = R, G, B</code></b></a></dt>
+  <dd>Vous permet de définir la couleur de fond. Utile si l'image est plus petite 
+    que la fenêtre. <code>R</code>, <code>G</code> et <code>B</code> spécifient 
+    les composantes rouge, verte et bleue de la couleur  (d'un intervalle entre 0 
+    et 255).</dd>
+</dl>
+
+
+<h3><a name="skinmenu">D.2.3 Menu</a></h3>
+
+<p>Comme mentionné précédemment, le menu s'affiche en utilisant deux images.
+  Les entrées normales du menu sont extraite de l'image spécifiée par 
+  l'objet <code>base</code>, tandis que l'entrée actuellement sélectionnée
+  est extraite de l'image spécifiée par l'objet <code>selected</code>. Vous
+  devez définir la taille et la position de chaque entrée du menu par l'objet
+  <code>menu</code>.</p>
+
+<p>Ils correspondent aux objets utilisés dans le bloc '<code>window = menu</code>'
+.&nbsp;.&nbsp;. '<code>end</code>'.</p>
+
+<dl>
+  <dt><a name="menu.base"><b><code>base = image</code></b></a></dt>
+  <dd>L'image utilisée pour les entrées normales.</dd>
+
+  <dt><a name="menu.selected"><b><code>selected = image</code></b></a></dt>
+  <dd>L'image utilisée pour les entrées sélectionnées.</dd>
+
+  <dt><a name="menu.menu"><b>menu = <code>x, y, largeur, hauteur, message</code></b>
+    </a></dt>
+  <dd>Définit la position <code>X</code>,<code>Y</code> et la taille des entrées du
+    menu dans les images. <code>message</code> est le message généré 
+    quand le bouton de la souris est relâché.</dd>
+</dl>
+
+
+<h2><a name="fonts">D.3 Polices</a></h2>
+
+<p>Comme mentionné dans la section sur les parties de la skin, une police est 
+  définie par une image et un fichier de description. Vous pouvez placer les 
+  caractères n'importe ou sur l'image, mais vous devez vous assurer que leur 
+  position et taille correspondent précisément au fichier de description.</p>
+
+<p>Les fichier descriptif des polices (avec l'extension <code>.fnt</code>) peut 
+  avoir des lignes de commentaires commençant par '<code>;</code>'.
+  Le fichier doit avoir une ligne du type</p>
+
+<dl>
+  <dt><a name="font.image"><b><code>image = image</code></b></a></dt>
+  <dd>o&ugrave; <code>image</code> est le nom de l'image qui sera utilisée 
+  pour la police (vous n'avez pas à définir d'extension).</dd>
+
+  <dt><a name="font.char"><b><code>"char" = X, Y, largeur, hauteur</code></b></a></dt>
+  <dd>Ici <code>X</code> et <code>Y</code> précisent la position du caractère
+    <code>char</code> dans l'image (0,0 est le coin supérieur gauche).
+    <code>largeur</code> et <code>hauteur</code> sont la largeur et la hauteur du caractère
+    en pixels.</dd>
+</dl>
+
+<p>Voici un exemple définissant les caractères A, B, C utilisant la police
+  <code>font.png</code>.</p>
+  
+<table width="100%" border=1>
+  <tr bgcolor=silver>
+    <td>
+<pre>
+; peut être "font" au lieu de "font.png"
+image = font.png
+
+; Trois caractères suffisent pour une démonstration. :-)
+&quot;A&quot; =  0,0, 7,13
+&quot;B&quot; =  7,0, 7,13
+&quot;C&quot; = 14,0, 7,13
+</pre>
+    </td>
+  </tr>
+</table>
+
+
+<h3><a name="symbols">D.3.1 Symboles</a></h3>
+
+<p>Certains caractères ont une signification spéciale quand retournés 
+  par des variables utilisées dans <a href="#main.dlabel">dlabel</a>; ces
+  caractères sont censés s'afficher comme des symboles. (par exemple, dans 
+  le cas d'une lecture DVD, vous pouvez afficher un beau logo DVD a la place du 
+  caractère 'd').</p>
+
+<p>La table ci-dessous liste les caractères pouvant s'afficher comme des symboles 
+  (et nécessitent donc une police différente).</p>
+
+<table align="center" border="1">
+  <tr><th align=center>Caractère</th><th align=left>Symbole</th></tr>
+  <tr><td align=center><kbd>p</kbd></td>
+    <td align=left>lecture</td></tr>
+  <tr><td align=center><kbd>s</kbd></td>
+    <td align=left>stop</td></tr>
+  <tr><td align=center><kbd>e</kbd></td>
+    <td align=left>pause</td></tr>
+  <tr><td align=center><kbd>n</kbd></td>
+    <td align=left>pas de son</td></tr>
+  <tr><td align=center><kbd>m</kbd></td>
+    <td align=left>son mono</td></tr>
+  <tr><td align=center><kbd>t</kbd></td>
+    <td align=left>son stéréo</td></tr>
+  <tr><td align=center><kbd>f</kbd></td>
+    <td align=left>lecture depuis un fichier</td></tr>
+  <tr><td align=center><kbd>v</kbd></td>
+    <td align=left>lecture depuis un video CD</td></tr>
+  <tr><td align=center><kbd>d</kbd></td>
+    <td align=left>lecture depuis un DVD</td></tr>
+  <tr><td align=center><kbd>u</kbd></td>
+    <td align=left>lecture depuis une URL</td></tr>
+</table>
+
+
+<h2><a name="guimsg">D.4 Messages de la GUI</a></h2>
+
+<p>Ce sont les messages qui peuvent être générés par les boutons, 
+podomètres et entrées du menu.</p>
+
+<p><em class="note"><b>Note:</b> certains messages peuvent ne pas fonctionner 
+  comme prévu (ou ne pas fonctionner du tout). Comme vous le savez, la GUI est 
+  en cours de développement.</em></p>
+
+
+<h3>Contrôle de lecture :</h3>
+
+<blockquote>
+  <dl>
+    <dt><b>evNext</b></dt>
+    <dd>Saute à la prochaine piste dans la playlist.</dd>
+
+    <dt><b>evPause</b></dt>
+    <dd>Pause.</dd>
+
+    <dt><b>evPauseSwitchToPlay</b></dt>
+    <dd>Associé à la commande <code>evPlaySwitchToPause</code>. Ils s'utilisent
+      pour avoir un bouton play/pause commun. Les deux messages peuvent être
+      assignés aux boutons affiches exactement à la même position dans la
+      fenêtre. Ces message mettent la lecture en pause et le bouton
+      <code>evPlaySwitchToPause</code> s'affiche (pour indiquer que le bouton peut être
+      pressé pour continuer la lecture).</dd>
+
+    <dt><b>evPlay</b></dt>
+    <dd>Commence la lecture.</dd>
+
+    <dt><b>evPlaySwitchToPause</b></dt>
+    <dd>Le contraire de <code>evPauseSwitchToPlay</code>. Ce message démarre la lecture
+      et l'image associée au bouton <code>evPauseSwitchToPlay</code> s'affiche (pour
+      indiquer que le bouton peut être pressé pour mettre en pause la lecture).</dd>
+
+    <dt><b>evPrev</b></dt>
+    <dd>Saute à la piste précédente dans la playlist.</dd>
+
+    <dt><b>evStop</b></dt>
+    <dd>Stoppe la lecture.</dd>
+  </dl>
+</blockquote>
+
+
+<h3>Avancée dans le flux:</h3>
+
+<blockquote>
+  <dl>
+    <dt><b>evBackward10sec</b></dt>
+    <dt><b>evBackward1min</b></dt>
+    <dt><b>evBackward10min</b></dt>
+    <dd>Recule de 10 secondes / 1 minute / 10 minutes.</dd>
+
+    <dt><b>evForward10sec</b></dt>
+    <dt><b>evForward1min</b></dt>
+    <dt><b>evForward10min</b></dt>
+    <dd>Avance de 10 secondes / 1 minute / 10 minutes.</dd>
+
+    <dt><b>evSetMoviePosition</b></dt>
+    <dd>Se place à la position (utilisable avec un podomètre; utilise la
+      valeur relative (0-100%) du podomètre).</dd>
+  </dl>
+</blockquote>
+
+
+<h3>Contrôle vidéo :</h3>
+
+<blockquote>
+  <dl>
+    <dt><b>evDoubleSize</b></dt>
+    <dd>Double la taille de la fenêtre vidéo.</dd>
+
+    <dt><b>evFullScreen</b></dt>
+    <dd>Passe en mode plein écran.</dd>
+
+    <dt><b>evNormalSize</b></dt>
+    <dd>Met la vidéo à sa taille réelle.</dd>
+  </dl>
+</blockquote>
+
+
+<h3>Contrôle audio :</h3>
+
+<blockquote>
+  <dl>
+    <dt><b>evDecAudioBufDelay</b></dt>
+    <dd>Diminue le délai du buffer audio.</dd>
+
+    <dt><b>evDecBalance</b></dt>
+    <dd>Diminue la balance.</dd>
+
+    <dt><b>evDecVolume</b></dt>
+    <dd>Diminue le volume.</dd>
+
+    <dt><b>evIncAudioBufDelay</b></dt>
+    <dd>Augmente le délai du buffer audio.</dd>
+
+    <dt><b>evIncBalance</b></dt>
+    <dd>Augmente la balance.</dd>
+
+    <dt><b>evIncVolume</b></dt>
+    <dd>Augmente le volume.</dd>
+
+    <dt><b>evMute</b></dt>
+    <dd>Active/désactive le son.</dd>
+
+    <dt><b>evSetBalance</b></dt>
+    <dd>Fixe la balance (utilisable avec un podomètre; utilise la valeur relative 
+      (0-100%) du podomètre).</dd>
+
+    <dt><b>evSetVolume</b></dt>
+    <dd>Fixe le volume (utilisable avec un podomètre; utilise la valeur relative 
+      (0-100%) du podomètre).</dd>
+  </dl>
+</blockquote>
+
+<h3>Divers :</h3>
+
+<blockquote>
+  <dl> 
+    <dt><b>evAbout</b></dt>
+    <dd>Ouvre la fenêtre 'A Propos'.</dd>
+
+    <dt><b>evDropSubtitle</b></dt>
+    <dd>Désactive le sous-titre actuellement utilisé.</dd>
+
+    <dt><b>evEqualizer</b></dt>
+    <dd>Active/désactive l'equalizer.</dd>
+
+    <dt><b>evExit</b></dt>
+    <dd>Quitte le programme.</dd>
+
+    <dt><b>evIconify</b></dt>
+    <dd>Iconifie la fenêtre.</dd>
+
+    <dt><b>evLoad</b></dt>
+    <dd>Charge un fichier (en ouvrant un mini navigateur de fichiers, o&ugrave; vous pouvez 
+      choisir un fichier).</dd>
+
+    <dt><b>evLoadPlay</b></dt>
+    <dd>Fait la même chose que <code>evLoad</code>,mais démarre la lecture 
+      automatiquement après le chargement du fichier.</dd>
+
+    <dt><b>evLoadSubtitle</b></dt>
+    <dd>Charge un fichier de sous-titres (avec un sélecteur de fichier)</dd>
+
+    <dt><b>evLoadAudioFile</b></dt>
+    <dd>Charge un fichier audio (avec un sélecteur de fichier)</dd>
+
+    <dt><b>evNone</b></dt>
+    <dd>Message vide, sans effet. (A part peut-être dans les versions CVS :-)).</dd>
+
+    <dt><b>evPlayList</b></dt>
+    <dd>Ouvre/ferme la playlist.</dd>
+
+    <dt><b>evPlayDVD</b></dt>
+    <dd>Essaie d'ouvrir le disque dans le lecteur DVD-ROM indiqué.</dd>
+
+    <dt><b>evPlayVCD</b></dt>
+    <dd>Essaie d'ouvrir le disque dans le lecteur CD-ROM indiqué.</dd>
+
+    <dt><b>evPreferences</b></dt>
+    <dd>Ouvre la fenêtre de preferences.</dd>
+
+    <dt><b>evSetAspect</b></dt>
+    <dd>Fixe l'aspect de l'image.</dd>
+
+    <dt><b>evSetURL</b></dt>
+    <dd>Ouvre la fenêtre de saisie d'URL.</dd>
+
+    <dt><b>evSkinBrowser</b></dt>
+    <dd>Ouvre le navigateur de revêtements.</dd>
+  </dl>
+</blockquote>
+
+</body>
+</html>