1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-25 08:12:17 +00:00
mpv/DOCS/xml/fr/skin.xml

1159 lines
38 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- synced with 20310 -->
<appendix id="skin">
<title>Format de skins <application>MPlayer</application></title>
<sect1 id="skin-overview">
<title>Aper<EFBFBD>u</title>
<para>
Ce n'est pas en rapport direct avec le format des skins, mais vous devez savoir
que <application>MPlayer</application> n'a <emphasis role="bold">pas</emphasis> de skin par d<>faut, donc
<emphasis role="bold">au moins une skin doit <20>tre install<6C>e pour pouvoir utiliser
la GUI.</emphasis>
</para>
<sect2 id="skin-overview-directories">
<title>R<EFBFBD>pertoires</title>
<para>
<application>MPlayer</application> cherche des skins dans ces r<>pertoires (dans cet ordre):
<orderedlist>
<listitem><para>
<filename class="directory">$(DATADIR)/skins/</filename>
</para></listitem>
<listitem><para>
<filename class="directory">$(PREFIX)/share/mplayer/skins/</filename>
</para></listitem>
<listitem><para>
<filename class="directory">~/.mplayer/skins/</filename>
</para></listitem>
</orderedlist>
</para>
<para>
Notez que le premier r<>pertoire peut varier suivant la fa<66>on dont <application>MPlayer</application> a <20>t<EFBFBD>
configur<EFBFBD> (voir les arguments <option>--prefix</option> et <option>--datadir</option>
du script <command>configure</command>).
</para>
<para>
Chaque skin est install<6C>e dans son propre r<>pertoire sous l'un des r<>pertoires
list<EFBFBD>s ci-dessus, par exemple:
<screen>$(PREFIX)/share/mplayer/skins/default/</screen>
</para>
</sect2>
<sect2 id="skin-overview-formats">
<title>Format d'images</title>
<para>Les images doivent <20>tre en truecolor (24 ou 32 bpp) et enregistr<74>es au
format PNG.</para>
<para>
Dans la fen<65>tre principale et la barre de lecture (c.f. ci-dessous) vous pouvez
utiliser des images dot<6F>es de r<>gions &quot;transparentes&quot;: les r<>gions
remplies avec la couleur #FF00FF (magenta) deviennent transparentes dans <application>MPlayer</application>.
Cela signifie que vous pouvez obtenir des formes particuli<6C>res pour vos fen<65>tres si votre
serveur X poss<73>de l'extension XShape.
</para>
</sect2>
<sect2 id="skin-overview-components">
<title>Composants d'une skin</title>
<para>
Les skins sont d'un format plut<75>t libre (contrairement aux formats fixes de
<application>Winamp</application>/<application>XMMS</application>, par exemple),
donc il ne tient qu'a vous de cr<63>er quelque chose de bien.
</para>
<para>
Actuellement, trois fen<65>tres doivent <20>tre d<>cor<6F>es: la
<link linkend="skin-file-main">fen<EFBFBD>tre principale</link>, la
<link linkend="skin-file-subwindow">sous-fen<65>tre</link>, la
<link linkend="skin-file-main">barre de lecture</link>, et le
<link linkend="skin-file-menu">menu</link> (activable par un clic droit).
<itemizedlist>
<listitem><para>
Vous contr<74>lez <application>MPlayer</application> par la <emphasis role="bold">fen<EFBFBD>tre principale</emphasis>
et/ou la <emphasis role="bold">barre de lecture</emphasis>. L'arri<72>re plan est
une image. Divers objets peuvent (et doivent) venir se placer dans cette fen<65>tre:
<emphasis>boutons</emphasis>, <emphasis>podom<EFBFBD>tres</emphasis>
(sliders) et <emphasis>labels</emphasis>. Pour chaque objet, vous devez
sp<73>cifier sa taille et sa position.
</para><para>
Un <emphasis role="bold">bouton</emphasis> comprend trois <20>tats (press<73>, rel<65>ch<63>,
d<>sactiv<69>), donc l'image doit se diviser en trois parties, verticalement. Voir
l'objet <link linkend="skin-button">bouton</link> pour plus de d<>tails.
</para><para>
Un <emphasis role="bold">podom<EFBFBD>tre</emphasis> (principalement utilis<69> pour la
barre d'avancement et le contr<74>le du volume/balance) peut poss<73>der n'importe quel
nombre d'<27>tats en empilant ces images, verticalement. Voir
<link linkend="skin-hpotmeter">hpotmeter</link> et
<link linkend="skin-potmeter">potmeter</link> pour plus de d<>tails.
</para><para>
Les <emphasis role="bold">labels</emphasis> sont un peu particuliers : les
caract<63>res n<>cessaires pour les dessiner sont r<>cup<75>r<EFBFBD>s depuis un fichier image,
d<>crit par un <link linkend="skin-fonts">fichier de description de polices</link>.
Ce dernier est un fichier texte brut sp<73>cifiant la position x,y ainsi que la
taille de chaque caract<63>re dans l'image (le fichier image et son descripteur
forment une police <emphasis>ensemble</emphasis>). Voir <link linkend="skin-dlabel">dlabel</link>
et <link linkend="skin-slabel">slabel</link> pour plus de d<>tails.
</para>
<note><para>
Toutes les images disposent de la couleur de transparence d<>crite dans la section
<link linkend="skin-overview-formats">formats d'images</link>. 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<65>tre principale
devra <20>tre divisible par 8.
</para></note>
</listitem>
<listitem><para>
La <emphasis role="bold">sous-fen<65>tre</emphasis> contient la vid<69>o en elle m<>me.
Elle peut afficher une image si aucun film n'est charg<72> (ce n'est jamais plaisant
d'avoir une fen<65>tre vide :-)) <emphasis role="bold">Note:</emphasis> la couleur
de transparence n'est <emphasis role="bold">pas autoris<69>e</emphasis> ici.
</para></listitem>
<listitem><para>
Le <emphasis role="bold">menu</emphasis> est simplement un moyen de contr<74>ler
<application>MPlayer</application> par des entr<74>es graphiques. Deux images sont n<>cessaires pour le menu:
l'une d'elle, l'image de base, affiche le menu dans son <20>t<EFBFBD> normal, l'autre est
utilis<69>e pour afficher les entr<74>es s<>lectionn<6E>es. Quand vous faites appara<72>tre le
menu, la premi<6D>re image s'affiche. Si vous passez la souris sur les entr<74>es du
menu, l'entr<74>e s<>lectionn<6E>e est copi<70>e depuis la seconde image, et uniquement la
partie concern<72>e par cette s<>lection (la seconde image ne s'affiche jamais
compl<70>tement.)
</para><para>
Une entr<74>e de menu se d<>finit par sa position et sa taille dans l'image (voir la
section <link linkend="skin-file-menu">menu</link> pour plus de d<>tails).
</para></listitem>
</itemizedlist>
</para>
<para>
Une chose essentielle n'a pas encore <20>t<EFBFBD> mentionn<6E>e : pour que les boutons,
podom<6F>tres et entr<74>es du menu fonctionnent, <application>MPlayer</application> doit savoir quoi en faire.
Ceci d<>pend des <link linkend="skin-gui">messages</link> (events) envoy<6F>s. Pour
chacun de ces objets vous devez d<>finir le message <20> afficher quand on clique
dessus.
</para>
</sect2>
<sect2 id="skin-files">
<title>Fichiers</title>
<para>
Vous aurez besoin des fichiers suivants pour construire une skin:
<itemizedlist>
<listitem><para>
Le fichier de configuration nomm<6D> <link linkend="skin-file">skin</link> indique
<20> <application>MPlayer</application> comment assembler les diff<66>rentes images et comment interpr<70>ter les
clics de souris sur l'interface.
</para></listitem>
<listitem><para>
L'image de fond de la fen<65>tre principale.
</para></listitem>
<listitem><para>
Les images correspondants aux objets de la fen<65>tre principale (y compris une ou
plusieurs polices et descripteurs n<>cessaires <20> l'affichage des textes).
</para></listitem>
<listitem><para>
L'image affich<63>e dans la sous-fen<65>tre (optionnel).
</para></listitem>
<listitem><para>
Deux images pour le menu (n<>cessaires uniquement si vous voulez cr<63>er un menu).
</para></listitem>
</itemizedlist>
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 <filename>.fnt</filename>).
</para>
</sect2>
</sect1>
<sect1 id="skin-file">
<title>Le fichier skin</title>
<para>
Comme mentionn<6E> 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<63>re
'<literal>;</literal>' en d<>but de ligne (seuls les espaces et tabulations sont
autoris<EFBFBD>es avant ce signe).
</para>
<para>
Les fichiers se composent de sections. Chaque section d<>crit la skin pour une
application et s'<27>crit sous la forme:
<programlisting>
section = <replaceable>nom de la section</replaceable>
.
.
.
end
</programlisting>
</para>
<para>
Actuellement il n'existe qu'une application, donc vous n'aurez besoin que d'une
section: dont le nom est <emphasis role="bold">movieplayer</emphasis>.
</para>
<para>
Dans cette section chaque fen<65>tre est d<>crite par un bloc de la forme suivante:
<programlisting>
window = <replaceable>nom de la fen<65>tre</replaceable>
.
.
.
end
</programlisting>
</para>
<para>
O<EFBFBD> <replaceable></replaceable> peut-<2D>tre l'un des types suivants:
<itemizedlist>
<listitem><para><emphasis role="bold">main</emphasis> - pour la fen<65>tre principale</para></listitem>
<listitem><para><emphasis role="bold">sub</emphasis> - pour la sous-fen<65>tre</para></listitem>
<listitem><para><emphasis role="bold">menu</emphasis> - pour le menu</para></listitem>
<listitem><para><emphasis role="bold">playbar</emphasis> - barre de lecture</para></listitem>
</itemizedlist>
</para>
<para>
(Les blocs sub et menu sont optionnels - vous n'avez pas l'obligation de d<>corer
le menu et la sous-fen<65>tre.)
</para>
<para>
Dans un bloc window, vous pouvez d<>finir chaque objet sous la forme:
<programlisting>objet = param<61>tre</programlisting>
O<EFBFBD> <literal>objet</literal> est une ligne identifiant le type d'objet de la GUI,
<literal>param<EFBFBD>tre</literal> est une valeur num<75>rique ou textuelle (ou une liste
de valeurs s<>par<61>es par des virgules).
</para>
<para>
Le fichier final doit donc ressembler <20> ceci:
<programlisting>
section = movieplayer
window = main
; ... objets de la fen<65>tre principale ...
end
window = sub
; ... objets de la sous-fen<65>tre ...
end
window = menu
; ... objets du menu ...
end
window = playbar
; ... objets de la la barre de lecture ...
end
end
</programlisting>
</para>
<para>
Le nom d'un fichier image doit <20>tre donn<6E> sans distinction de r<>pertoire - les
images seront cherch<63>es dans le r<>pertoire <filename class="directory">skins</filename>.
Vous pouvez (mais ce n'est pas obligatoire) sp<73>cifier l'extension du fichier. Si
le fichier n'existe pas, <application>MPlayer</application> essaie de charger le fichier
<filename>&lt;nomfichier&gt;.&lt;ext&gt;</filename>, o<> <literal>png</literal>
et <literal>PNG</literal> sera respectivement <filename>&lt;ext&gt;</filename>
(dans cet ordre). La premi<6D>re correspondance trouv<75>e sera utilis<69>e.
</para>
<para>
Pour finir quelques mots sur le positionnement. La fen<65>tre principale et la
sous-fen<65>tre peuvent <20>tre plac<61>es dans des coins diff<66>rents de l'<27>cran en donnant
les coordonn<6E>es <literal>X</literal> et <literal>Y</literal>. <literal>0</literal>
pour haut ou gauche, <literal>-1</literal> pour centre et <literal>-2</literal>
pour droite ou bas, comme montr<74> sur cette illustration:
</para>
<informalfigure>
<screen>
(0, 0)----(-1, 0)----(-2, 0)
| | |
| | |
(0,-1)----(-1,-1)----(-2,-1)
| | |
| | |
(0,-2)----(-1,-2)----(-2,-2)
</screen>
</informalfigure>
<para>
Un exemple. Supposons que vous avez cr<63>e une image <filename>main.png</filename>
que vous voulez utiliser pour la fen<65>tre principale:
<programlisting>base = main, -1, -1</programlisting>
MPlayer essaie de charger les fichiers <filename>main</filename>,
<filename>main.png</filename>, <filename>main.PNG</filename>.
</para>
<sect2 id="skin-file-main">
<title>Fen<EFBFBD>tre principale et barre de lecture</title>
<para>
Vous trouverez ci-dessous la liste des objets utilisables dans les blocs
'<literal>window = main</literal>' ... '<literal>end</literal>',
et '<literal>window = playbar</literal>' ... '<literal>end</literal>'.
</para>
<variablelist>
<varlistentry>
<term><literal>
<anchor id="skin-main-base"/>base = image, X, Y
</literal></term>
<listitem><para>
Vous sp<73>cifiez ici l'image de fond utilis<69>e dans la fen<65>tre principale. La
fen<65>tre appara<72>tra a la position <literal>X,Y</literal> sur l'<27>cran. La fen<65>tre
aura la taille de l'image.
</para>
<note><para>Ces coordonn<6E>es ne fonctionnent actuellement pas pour la fen<65>tre
d'affichage.</para></note>
<warning><para>Les r<>gions transparentes (couleur #FF00FF) appara<72>tront en noir
sur les serveurs X n'ayant pas l'extension XShape. La largeur de l'image doit
<20>tre divisible par 8.</para></warning>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-button"/>button = image, X, Y, largeur, hauteur, message
</literal></term>
<listitem><para>
Place un bouton de taille <literal>largeur</literal> * <literal>hauteur</literal>
a la position <literal>X,Y</literal>. Le <literal>message</literal> sera g<>n<EFBFBD>r<EFBFBD>
au clic sur ce bouton. L'image appel<65>e par <literal>image</literal> doit avoir
trois <20>tats empil<69>s verticalement (pour les trois <20>tats du bouton), comme ceci:
</para>
<informalfigure>
<screen>
+------------+
| press<73> |
+------------+
| rel<65>ch<63> |
+------------+
| d<>sactiv<69> |
+------------+
</screen>
</informalfigure>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-decoration"/>decoration = enable|disable
</literal></term>
<listitem><para>
Active (enable) ou d<>sactive (disable) la d<>coration du gestionnaire de fen<65>tre
pour la fen<65>tre principale. <emphasis role="bold">disable</emphasis> par d<>faut.
</para>
<note><para>Cela ne fonctionne pas pour la fen<65>tre d'affichage, il n'y en a pas
besoin.</para></note>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-hpotmeter"/>hpotmeter = button, blargeur, bhauteur, phases, numphases, default, X, Y, largeur, hauteur, message
</literal></term>
<listitem><para>
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-vpotmeter"/>vpotmeter = button, blargeur, bhauteur, phases, numphases, default, X, Y, largeur, hauteur, message
</literal></term>
<listitem><para>
Place un podom<6F>tre horizontal (hpotmeter) ou vertical (vpotmeter) de taille
<literal>largeur</literal> * <literal>hauteur</literal> <20> la position
<literal>X,Y</literal>. L'image peut <20>tre divis<69>e en diff<66>rentes parties pour les
diff<EFBFBD>rentes phases du podom<6F>tre (par exemple, vous pouvez en avoir un pour le
contr<EFBFBD>le du volume qui passe du vert au rouge quand sa valeur passe du minimum au
maximum). <literal>hpotmeter</literal> peut poss<73>der un bouton qui sera gliss<73>
horizontalement.
</para>
<itemizedlist>
<listitem><para><literal>button</literal> - l'image utilis<69>e pour le bouton (doit
avoir trois <20>tats superpos<6F>s, comme pour les
<link linkend="skin-button">boutons</link>)
</para></listitem>
<listitem><para><literal>blargeur</literal>,<literal>bhauteur</literal> - taille
du bouton
</para></listitem>
<listitem><para><literal>phases</literal> - l'image utilis<69>e pour les diff<66>rentes
phases du podom<6F>tre. Une valeur <literal>NULL</literal> sp<73>ciale peut-<2D>tre
utilis<69>e si vous ne voulez pas d'image. L'image doit <20>tre divis<69>e en
<literal>numphasesparts</literal> verticalement comme ceci:
</para>
<informalfigure>
<screen>
+------------+
| phase #1 |
+------------+
| phase #2 |
+------------+
...
+------------+
| phase #n |
+------------+
</screen>
</informalfigure>
</listitem>
<listitem><para><literal>numphases</literal> - nombre d'<27>tats plac<61>s dans l'image <literal>phases</literal>.
</para></listitem>
<listitem><para><literal>default</literal> - valeur par d<>faut du podom<6F>tre (dans
un intervalle de <literal>0</literal> <20> <literal>100</literal>)
</para></listitem>
<listitem><para><literal>X</literal>,<literal>Y</literal> - position du hpotmeter
</para></listitem>
<listitem><para><literal>largeur</literal>,<literal>hauteur</literal> -
largeur et hauteur du <literal>hpotmeter</literal>
</para></listitem>
<listitem><para><literal>message</literal> - le message g<>n<EFBFBD>r<EFBFBD> lors des
changements d'<27>tat de <literal>hpotmeter</literal>
</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, largeur, hauteur, message
</literal></term>
<listitem><para>
Un <literal>hpotmeter</literal> sans bouton. (je suppose qu'il est cens<6E> tourner
en rond, mais il r<>agit uniquement aux tractions horizontales.) Pour une
description de ses param<61>tres lisez <link linkend="skin-hpotmeter">hpotmeter</link>.
Ses <literal>phases</literal> peuvent <20>tre fix<69>es <20> <literal>NULL</literal>, mais ce n'est
pas vraiment utile, puisque vous ne pouvez pas voir son niveau.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-font"/>font = fontfile, fontid
</literal></term>
<listitem><para>
D<EFBFBD>finit une police. <literal>fontfile</literal> est le nom du descripteur de
police avec l'extension <filename>.fnt</filename> (inutile de pr<70>ciser son
extension ici). <literal>fontid</literal> r<>f<EFBFBD>re <20> la police (c.f.
<link linkend="skin-dlabel">dlabel</link> et <link linkend="skin-slabel">slabel</link>).
Jusqu'<27> 25 polices peuvent <20>tre d<>finies.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-slabel"/>slabel = X, Y, fontid, &quot;texte&quot;
</literal></term>
<listitem><para>
Place un label dynamique <20> la position <literal>X,Y</literal>. <literal>texte</literal>
est affich<63> en utilisant la police identifi<66>e par <literal>fontid</literal>. Le
texte est juste une cha<68>ne brute (les variables <literal>$x</literal> ne
fonctionnent pas) qui doit <20>tre mise entre doubles quotes (mais le caract<63>re
&quot; ne peut pas faire partie du texte). Le label est affich<63> en utilisant la
police identifi<66>e par <literal>fontid</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-dlabel"/>dlabel = X, Y, longueur, align, fontid, &quot;texte&quot;
</literal></term>
<listitem>
<para>
Place un label statique <20> la position <literal>X,Y</literal>. Le label est appel<65>
dynamique parce que son texte est rafra<72>chi p<>riodiquement. La longueur maximum du
label est d<>finie par <literal>longueur</literal> (sa hauteur d<>pend de la hauteur
des caract<63>res). Si le texte a afficher d<>passe cette longueur il sera scroll<6C>, ou
bien align<67> dans l'espace sp<73>cifi<66> par la valeur du param<61>tre
<literal>align</literal>: <literal>0</literal> pour droite,
<literal>1</literal> pour centre, et <literal>2</literal> pour gauche.
</para>
<para>
Le texte <20> afficher est donn<6E> par <literal>texte</literal>: il doit <20>tre <20>crit
entre doubles quotes (mais le caract<63>re &quot; ne peut pas faire partie du texte).
Le texte s'affiche en utilisant la police sp<73>cifi<66>e par <literal>fontid</literal>.
Vous pouvez utiliser les variables suivantes dans le texte:
</para>
<informaltable>
<tgroup cols="2">
<thead>
<row><entry>Variable</entry><entry>Signification</entry></row>
</thead>
<tbody>
<row>
<entry>$1</entry>
<entry>temps de lecture au format <emphasis>hh:mm:ss</emphasis></entry>
</row>
<row>
<entry>$2</entry>
<entry>temps de lecture au format <emphasis>mmmm:ss</emphasis></entry>
</row>
<row>
<entry>$3</entry>
<entry>temps de lecture au format <emphasis>hh</emphasis> (heures)</entry>
</row>
<row>
<entry>$4</entry>
<entry>temps de lecture au format <emphasis>mm</emphasis> (minutes)</entry>
</row>
<row>
<entry>$5</entry>
<entry>temps de lecture au format <emphasis>ss</emphasis> (secondes)</entry>
</row>
<row>
<entry>$6</entry>
<entry>longueur du film au format <emphasis>hh:mm:ss</emphasis></entry>
</row>
<row>
<entry>$7</entry>
<entry>longueur du film au format <emphasis>mmmm:ss</emphasis></entry>
</row>
<row>
<entry>$8</entry>
<entry>temps de lecture au format <emphasis>h:mm:ss</emphasis></entry>
</row>
<row>
<entry>$v</entry>
<entry>volume au format <emphasis>xxx.xx</emphasis>%</entry>
</row>
<row>
<entry>$V</entry>
<entry>volume au format <emphasis>xxx.xx</emphasis></entry>
</row>
<row>
<entry>$b</entry>
<entry>balance au format <emphasis>xxx.xx</emphasis>%</entry>
</row>
<row>
<entry>$B</entry>
<entry>balance au format <emphasis>xxx.xx</emphasis></entry>
</row>
<row>
<entry>$$</entry>
<entry>le caract<63>re $</entry>
</row>
<row>
<entry>$a</entry>
<entry>un caract<63>re d<>pendant du type audio (aucun: <literal>n</literal>,
mono: <literal>m</literal>, st<73>r<EFBFBD>o: <literal>t</literal>)</entry>
</row>
<row>
<entry>$t</entry>
<entry>num<EFBFBD>ro de piste (dans la playlist)</entry>
</row>
<row>
<entry>$o</entry>
<entry>nom du fichier</entry>
</row>
<row>
<entry>$f</entry>
<entry>nom du fichier en minuscule</entry>
</row>
<row>
<entry>$F</entry>
<entry>nom du fichier en majuscule</entry>
</row>
<row>
<entry>$T</entry>
<entry>un caract<63>re d<>pendant du type de flux (fichier: <literal>f</literal>,
Video CD: <literal>v</literal>, DVD: <literal>d</literal>, URL: <literal>u</literal>)</entry>
</row>
<row>
<entry>$p</entry>
<entry>le caract<63>re <keycap>p</keycap> (si une vid<69>o est en lecture et que la
police a le caract<63>re <keycap>p</keycap>)</entry>
</row>
<row>
<entry>$s</entry>
<entry>le caract<63>re <keycap>s</keycap> (si une vid<69>o est stopp<70>e et que la police
a le caract<63>re <keycap>s</keycap>)</entry>
</row>
<row>
<entry>$e</entry>
<entry>le caract<63>re <keycap>e</keycap> (si une vid<69>o est en pause et que la police
a le caract<63>re <keycap>e</keycap>)</entry>
</row>
<row>
<entry>$x</entry>
<entry>largeur du film</entry>
</row>
<row>
<entry>$y</entry>
<entry>hauteur du film</entry>
</row>
<row>
<entry>$C</entry>
<entry>nom du codec utilis<69></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</listitem>
</varlistentry>
</variablelist>
<note><para>
Les variables <literal>$a, $T, $p, $s</literal> et <literal>$e</literal>
<keycap>e</keycap> retournent toutes des caract<63>res pouvant s'afficher comme des
symboles sp<73>ciaux (par exemple, <keycap>e</keycap> est le symbole de pause qui
ressemble g<>n<EFBFBD>ralement <20> ||). Vous pouvez avoir une police pour les caract<63>res
normaux et une autre pour les symboles. Lisez la section sur les
<link linkend="skin-fonts-symbols">symboles</link> pour plus d'informations.
</para></note>
</sect2>
<sect2 id="skin-file-subwindow">
<title>Sous-fen<65>tre</title>
<para>
Vous trouverez ci-dessous la liste des objets utilisables dans le bloc
'<literal>window = sub</literal>' . . . '<literal>end</literal>'.
</para>
<variablelist>
<varlistentry>
<term><literal>
<anchor id="skin-sub-base"/>base = image, X, Y, largeur, hauteur
</literal></term>
<listitem><para>
L'image qui s'affichera dans la fen<65>tre. La fen<65>tre appara<72>tra <20> la position
<literal>X,Y</literal> sur l'<27>cran (<literal>0,0</literal> est le coin sup<75>rieur
gauche). Vous pouvez sp<73>cifier <literal>-1</literal> pour centre et <literal>-2</literal>
pour droite (<literal>X</literal>) et bas (<literal>Y</literal>). La fen<65>tre prendra
la taille de l'image. <literal>largeur</literal> et <literal>hauteur</literal>
donnent la taille de la fen<65>tre; ces param<61>tres sont optionnels (si ils sont
absents, le fen<65>tre prend la taille de l'image).
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-background"/>background = R, V, B
</literal></term>
<listitem><para>
Vous permet de d<>finir la couleur de fond. Utile si l'image est plus petite que la
fen<EFBFBD>tre. <literal>R</literal>, <literal>V</literal> et <literal>B</literal>
sp<EFBFBD>cifient les composantes rouge, verte et bleue de la couleur (d'un intervalle
entre 0 et 255).
</para></listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="skin-file-menu">
<title>Menu</title>
<para>
Comme mentionn<6E> pr<70>c<EFBFBD>demment, le menu s'affiche en utilisant deux images. Les
entr<EFBFBD>es normales du menu sont extraites de l'image sp<73>cifi<66>e par l'objet
<literal>base</literal>, tandis que l'entr<74>e actuellement s<>lectionn<6E>e est
extraite de l'image sp<73>cifi<66>e par l'objet <literal>selected</literal>. Vous devez
d<EFBFBD>finir la taille et la position de chaque entr<74>e du menu par l'objet
<literal>menu</literal>.
</para>
<para>
Ils correspondent aux objets utilis<69>s dans le bloc
'<literal>window = menu</literal>'. . .'<literal>end</literal>'.
</para>
<variablelist>
<varlistentry>
<term><literal>
<anchor id="skin-menu-base"/>base = image
</literal></term>
<listitem><para>
L'image utilis<69>e pour les entr<74>es normales.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-selected"/>selected = image
</literal></term>
<listitem><para>
L'image utilis<69>e pour les entr<74>es s<>lectionn<6E>es.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>
<anchor id="skin-menu"/>menu = X, Y, largeur, hauteur, message
</literal></term>
<listitem><para>
D<EFBFBD>finit la position <literal>X,Y</literal> et la taille des entr<74>es du menu dans
les images. <literal>message</literal> est le message g<>n<EFBFBD>r<EFBFBD> quand le bouton de la
souris est rel<65>ch<63>.
</para></listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
<sect1 id="skin-fonts">
<title>Polices</title>
<para>
Comme mentionn<6E> 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<63>res
n'importe ou sur l'image, mais vous devez vous assurer que leur position et taille
correspondent pr<70>cis<69>ment au fichier de description.
</para>
<para>
Le fichier descriptif des polices (avec l'extension <filename>.fnt</filename>)
peut avoir des lignes de commentaires commen<65>ant par '<literal>;</literal>'.
Le fichier doit avoir une ligne du type
<anchor id="skin-font-image"/>
<programlisting>image = <replaceable>image</replaceable></programlisting>
O<EFBFBD> <literal><replaceable>image</replaceable></literal> est le nom de l'image qui
sera utilis<69>e pour la police (vous n'avez pas <20> d<>finir d'extension).
<anchor id="skin-font-char"/>
<programlisting>&quot;char&quot; = X, Y, largeur, hauteur</programlisting>
Ici <literal>X</literal> et <literal>Y</literal> pr<70>cisent la position du caract<63>re
<literal>char</literal> dans l'image (<literal>0,0</literal> est le coin sup<75>rieur
gauche). <literal>largeur</literal> et <literal>hauteur</literal> sont les
dimensions du caract<63>re en pixels.
</para>
<para>
Voici un exemple d<>finissant les caract<63>res A, B, C utilisant <filename>font.png</filename>.
<programlisting>
; Peut <20>tre &quot;font&quot; au lieu de &quot;font.png&quot;.
image = font.png
; Trois caract<63>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
</programlisting>
</para>
<sect2 id="skin-fonts-symbols">
<title>Symboles</title>
<para>
Certains caract<63>res ont une signification sp<73>ciale quand ils sont retourn<72>s par des
variables utilis<69>es dans <link linkend="skin-dlabel">dlabel</link>. Ces caract<63>res
sont cens<6E>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<63>re '<literal>d</literal>').
</para>
<para>
La table ci-dessous liste les caract<63>res pouvant s'afficher comme des symboles (et
n<EFBFBD>cessitent donc une police diff<66>rente).
</para>
<informaltable>
<tgroup cols="2">
<thead>
<row><entry>Caract<EFBFBD>re</entry><entry>Symbole</entry></row>
</thead>
<tbody>
<row><entry><keycap>p</keycap></entry><entry>lecture</entry></row>
<row><entry><keycap>s</keycap></entry><entry>stop</entry></row>
<row><entry><keycap>e</keycap></entry><entry>pause</entry></row>
<row><entry><keycap>n</keycap></entry><entry>pas de son</entry></row>
<row><entry><keycap>m</keycap></entry><entry>son mono</entry></row>
<row><entry><keycap>t</keycap></entry><entry>son st<73>r<EFBFBD>o</entry></row>
<row><entry><keycap>f</keycap></entry><entry>lecture depuis un fichier</entry></row>
<row><entry><keycap>v</keycap></entry><entry>lecture depuis un Video CD</entry></row>
<row><entry><keycap>d</keycap></entry><entry>lecture depuis un DVD</entry></row>
<row><entry><keycap>u</keycap></entry><entry>lecture depuis une URL</entry></row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>
<sect1 id="skin-gui">
<title>Messages de la GUI</title>
<para>
Ce sont les messages qui peuvent <20>tre g<>n<EFBFBD>r<EFBFBD>s par les boutons, podom<6F>tres et
entr<EFBFBD>es du menu.
</para>
<variablelist>
<title>Contr<EFBFBD>le de lecture:</title>
<varlistentry>
<term><emphasis role="bold">evNext</emphasis></term>
<listitem><para>
Saute <20> la prochaine piste dans la playlist.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPause</emphasis></term>
<listitem><para>
Associ<EFBFBD> <20> la commande <literal>evPlaySwitchToPause</literal>. Ils s'utilisent pour
avoir un bouton play/pause commun. Les deux messages peuvent <20>tre assign<67>s aux
boutons affich<63>s exactement <20> la m<>me position dans la fen<65>tre. Ces messages mettent
la lecture en pause et le bouton <literal>evPlaySwitchToPause</literal> s'affiche
(pour indiquer que le bouton peut <20>tre press<73> pour continuer la lecture).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlay</emphasis></term>
<listitem><para>
Commence la lecture.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlaySwitchToPause</emphasis></term>
<listitem><para>
Le contraire de <literal>evPauseSwitchToPlay</literal>. Ce message d<>marre la
lecture et l'image associ<63>e au bouton <literal>evPauseSwitchToPlay</literal>
s'affiche (pour indiquer que le bouton peut <20>tre press<73> pour mettre en pause la lecture).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPrev</emphasis></term>
<listitem><para>
Saute <20> la piste pr<70>c<EFBFBD>dente dans la playlist.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evStop</emphasis></term>
<listitem><para>
Stoppe la lecture.
</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>D<EFBFBD>placement dans le flux:</title>
<varlistentry>
<term><emphasis role="bold">evBackward10sec</emphasis></term>
<listitem><para>
Recule de 10 secondes.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evBackward1min</emphasis></term>
<listitem><para>
Recule de 1 minute.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evBackward10min</emphasis></term>
<listitem><para>
Recule de 10 minutes.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evForward10sec</emphasis></term>
<listitem><para>
Avance de 10 secondes.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evForward1min</emphasis></term>
<listitem><para>
Avance de 1 minute.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evForward10min</emphasis></term>
<listitem><para>
Avance de 10 minutes.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetMoviePosition</emphasis></term>
<listitem><para>
Se place <20> la position (utilisable avec un podom<6F>tre; utilise la valeur relative
(0-100%) du podom<6F>tre).
</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Contr<EFBFBD>le vid<69>o:</title>
<varlistentry>
<term><emphasis role="bold">evHalfSize</emphasis></term>
<listitem><para>
R<EFBFBD>duit de moiti<74> la taille de la fen<65>tre vid<69>o.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evDoubleSize</emphasis></term>
<listitem><para>
Double la taille de la fen<65>tre vid<69>o.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evFullScreen</emphasis></term>
<listitem><para>
Passe en mode plein <20>cran.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evNormalSize</emphasis></term>
<listitem><para>
Met la vid<69>o <20> sa taille r<>elle.
</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Contr<EFBFBD>le audio:</title>
<varlistentry>
<term><emphasis role="bold">evDecAudioBufDelay</emphasis></term>
<listitem><para>
Diminue le d<>lai du tampon audio.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evDecBalance</emphasis></term>
<listitem><para>
Diminue la balance.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evDecVolume</emphasis></term>
<listitem><para>
Diminue le volume.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evIncAudioBufDelay</emphasis></term>
<listitem><para>
Augmente le d<>lai du tampon audio.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evIncBalance</emphasis></term>
<listitem><para>
Augmente la balance.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evIncVolume</emphasis></term>
<listitem><para>
Augmente le volume.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evMute</emphasis></term>
<listitem><para>
Active/d<>sactive le son.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetBalance</emphasis></term>
<listitem><para>
Fixe la balance (utilisable avec un podom<6F>tre; utilise la valeur relative (0-100%)
du podom<6F>tre).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetVolume</emphasis></term>
<listitem><para>
Fixe le volume (utilisable avec un podom<6F>tre; utilise la valeur relative (0-100%)
du podom<6F>tre).
</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Divers:</title>
<varlistentry>
<term><emphasis role="bold">evAbout</emphasis></term>
<listitem><para>
Ouvre la fen<65>tre 'A Propos'.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evDropSubtitle</emphasis></term>
<listitem><para>
D<EFBFBD>sactive le sous-titre actuellement utilis<69>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evEqualizer</emphasis></term>
<listitem><para>
Active/d<>sactive l'<27>qualizer.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evExit</emphasis></term>
<listitem><para>
Quitte le programme.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evIconify</emphasis></term>
<listitem><para>
Iconifie la fen<65>tre.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoad</emphasis></term>
<listitem><para>
Charge un fichier (en ouvrant un mini navigateur de fichiers, o<> vous pouvez
choisir un fichier).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoadPlay</emphasis></term>
<listitem><para>
Fait la m<>me chose que <literal>evLoad</literal>, mais d<>marre la lecture
automatiquement apr<70>s le chargement du fichier.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoadSubtitle</emphasis></term>
<listitem><para>
Charge un fichier de sous-titres (avec un s<>lecteur de fichier)
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoadAudioFile</emphasis></term>
<listitem><para>
Charge un fichier audio (avec un s<>lecteur de fichier)
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evNone</emphasis></term>
<listitem><para>
Message vide, sans effet. (<28> part peut-<2D>tre dans les versions CVS :-)).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlaylist</emphasis></term>
<listitem><para>
Ouvre/ferme la playlist.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlayDVD</emphasis></term>
<listitem><para>
Essaie d'ouvrir le disque dans le lecteur DVD-ROM indiqu<71>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPlayVCD</emphasis></term>
<listitem><para>
Essaie d'ouvrir le disque dans le lecteur CD-ROM indiqu<71>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evPreferences</emphasis></term>
<listitem><para>
Ouvre la fen<65>tre de pr<70>f<EFBFBD>rences.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetAspect</emphasis></term>
<listitem><para>
Fixe l'aspect de l'image.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSetURL</emphasis></term>
<listitem><para>
Ouvre la fen<65>tre de saisie d'URL.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evSkinBrowser</emphasis></term>
<listitem><para>
Ouvre le navigateur de skins.
</para></listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="skin-quality">
<title>Cr<EFBFBD>er des skins de qualit<69></title>
<para>
Vous avez lu toute la doc expliquant comment faire un skin pour la GUI de
<application>MPlayer</application>, fait de votre mieux avec
<application>Gimp</application> et souhaitez nous soumettre votre skin?
Lisez les guidelines pour <20>viter les erreurs communes et produire
un skin de haute qualit<69>.
</para>
<para>
Nous voulons des skins que nous puissions ajouter <20> notre repository pour se
conformer <20> certain standards de qualit<69>. Il y a aussi un nombre de choses que
vous pouvez faire pour rendre notre vie plus simple.
</para>
<para>
En tant qu'exemple, vous pouvez jeter un oeil <20> la skin <systemitem>Blue</systemitem>,
elle satisfait tous les crit<69>res list<73> ci-dessous depuis la version 1.5.
</para>
<itemizedlist>
<listitem><para>Chaque skin devra joindre un fichier
<filename>README</filename> qui contiendra les informations sur
vous, l'auteur, le copyright et les notices de licence et n'importe quoi d'autre
que vous souhaitiez ajouter. Si vous d<>sirez avoir un changelog, ce fichier est
le bon endroit.</para></listitem>
<listitem><para>Il devrez y avoir un fichier <filename>VERSION</filename>
avec rien de plus que le num<75>ro de version de la skin sur une simple
ligne (e.g. 1.0).</para></listitem>
<listitem><para>Les contr<74>les horizontaux et verticaux (sliders comme le volume
ou la position) devront avoir le centre du bouton proprement centr<74> sur
le milieu du slider. Il devra <20>tre possible de bouger le bouton aux deux
extr<EFBFBD>mit<EFBFBD>s du slider, mais pas de le d<>passer.</para></listitem>
<listitem><para>Les <20>l<EFBFBD>ments de la skin devront avoir les bonnes tailles d<>clar<61>es
dans le fichier de la skin. Si cela n'est pas le cas vous pouvez cliquer en
dehors e.g. un bouton et encore le d<>clencher ou cliquer <20> l'int<6E>rieur de sa
zone et ne pas le d<>clencher.</para></listitem>
<listitem><para>le fichier <filename>skin</filename> devra <20>tre prettyprinted
et ne pas contenir d'onglets. Prettyprinted signifie que les chiffres devront
s'aligner de fa<66>on ordonn<6E>e dans les colonnes</para></listitem>
</itemizedlist>
</sect1>
</appendix>