whitespace cosmetics: Remove all trailing whitespace.
[mplayer/glamo.git] / DOCS / xml / es / skin.xml
blob09f9da9eff8b27aa538775fc128d967347b6d5c7
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- synced with 1.7 -->
3 <appendix id="skin">
4 <title>Formato del skin de <application>MPlayer</application></title>
5 <para>
6 El propósito de este documento es describir el formato de los skin
7 de <application>MPlayer</application>. La información contenida aquí
8 puede ser errónea, porque
9 <orderedlist>
10 <listitem><para>No soy yo quien ha escrito el GUI.</para></listitem>
11 <listitem><para>El GUI no está terminado.</para></listitem>
12 <listitem><para>Puedo equivocarme.</para></listitem>
13 </orderedlist>
14 No se sorprenda si algo no funciona como se describe aquí.
15 </para>
17 <para>Gracias a <emphasis>Zoltán Ponekker</emphasis> por su ayuda.</para>
19 <para><emphasis>András Mohari &lt;mayday@freemail.hu&gt;</emphasis></para>
21 <sect1 id="skin-overview">
22 <title>Visión general</title>
23 <para>
24 Realmente no hay nada que hacer con el formato del skin, pero debe saber
25 que MPlaner <emphasis role="bold">no</emphasis> tiene un skin integrado,
26 por eso <emphasis role="bold">al menos un skin debe estar instalado para
27 poder usar el GUI.</emphasis>
28 </para>
30 <sect2 id="skin-overview-directories">
31 <title>Directorios</title>
32 <para>
33 Los directorios donde se buscan los skins son (en orden):
34 <orderedlist>
35 <listitem><para>
36 <filename class="directory">$(DATADIR)/skins/</filename>
37 </para></listitem>
38 <listitem><para>
39 <filename class="directory">$(PREFIX)/share/mplayer/skins/</filename>
40 </para></listitem>
41 <listitem><para>
42 <filename class="directory">~/.mplayer/skins/</filename>
43 </para></listitem>
44 </orderedlist>
45 </para>
47 <para>
48 Tenga en cuenta que la primera ruta puede variar de acuerdo a cómo fue
49 configurado <application>MPlayer</application> (vea los argumentos
50 <option>--prefix</option> y <option>--datadir</option> del script
51 <command>configure</command>).
52 </para>
54 <para>
55 Todo skin es instalado en su propio directorio bajo uno de los directorios
56 listados más arriba, por ejemplo:
57 <screen>$(PREFIX)/share/mplayer/skins/default/</screen>
58 </para>
59 </sect2>
61 <sect2 id="skin-overview-formats">
62 <title>Formato de las imágenes</title>
63 <para>Las imágenes deben ser PNGs a color verdadero (24 or 32 bpp).</para>
64 <para>
65 En la ventana principal y en la barra de reproducción (ver más abajo) puede
66 usar imágenes con `transparencia': Regiones rellenas con color #FF00FF
67 (magenta) son completamente transparentes cuando se ven con
68 <application>MPlayer</application>. Esto significa que puede incluso tener
69 ventanas con formas si su servidor X tiene la extensión XShape.
70 </para>
71 </sect2>
73 <sect2 id="skin-overview-components">
74 <title>Componentes del skin</title>
75 <para>
76 Los skins son formatos bastante libres (no como otros skins de formato
77 fijo de <application>Winamp</application>/<application>XMMS</application>,
78 por ejemplo), de manera que pueda crear algo grande.
79 </para>
81 <para>
82 Actualmente hay tres ventanas que decorar: la
83 <link linkend="skin-file-main">ventana principal</link>, la
84 <link linkend="skin-file-subwindow">subventana</link>, la
85 <link linkend="skin-file-main">barra de reproducción</link>, y el
86 <link linkend="skin-file-menu">skin del menú</link> (que puede activarse
87 con clic derecho).
89 <itemizedlist>
90 <listitem><para>
91   La <emphasis role="bold">ventana principal</emphasis> y/o la
92   <emphasis role="bold">barra de reproducción</emphasis> es donde puede
93   controlar <application>MPlayer</application>. El fondo de la ventana es
94   una imagen. Varios objetos pueden (y deben) ser colocados en la ventana:
95   <emphasis>botones</emphasis>, <emphasis>medidores</emphasis>
96   (desplazables) y <emphasis>etiquetas</emphasis>. Para cada objeto, debe
97   especificar su posición y tamaño.
98 </para><para>
99   Un <emphasis role="bold">botón</emphasis> tiene tres estados (pulsado, soltado,
100   desactivado), por eso la imagen debe estar dividida en tres partes verticalmente.
101   Vea el objeto <link linkend="skin-button">botón</link> para detalles.
102 </para><para>
103   Un <emphasis role="bold">medidor</emphasis> (usado principalmente para la barra
104   de búsqueda y el control de volumen/balance) puede tener cualquier número de fases
105   dividiendo su imagen en diferentes partes unas debajo de otras. Vea
106   <link linkend="skin-hpotmeter">hpotmeter</link> y
107   <link linkend="skin-potmeter">potmeter</link> para detalles.
108 </para><para>
109   <emphasis role="bold">Etiquetas</emphasis> son un poco especiales: Los caractere
110   necesarios para pintarlas se toman de un archivo de imagen, y los caracteres en
111   la imagen son descritos por un <link linkend="skin-fonts">archivo de descriptión
112   de tipografía</link>. Lo último es un archivo de texto plano que especifica la
113   posición x,y y el tamaño de cada carater en la imagen (el archivo de imagen y su
114   archivo de descripción de tipografía forman <emphasis>juntos</emphasis> un tipo
115   de letra). Vea <link linkend="skin-dlabel">dlabel</link> y
116   <link linkend="skin-slabel">slabel</link> para detalles.
117 </para>
118 <note><para>Todas las imágenes pueden tener transparencia completa como se describe
119   en la sección que habla de <link linkend="skin-overview-formats">formatos
120   de imagen</link>. Si el servidor X no soporta la extensión XShape, las partes
121   marcadas como transparentes se verán negras. Si le gusta usar esta característica,
122   el ancho del fondo de la imagen de la ventana principal debe ser divisible por 8.
123 </para></note>
124 </listitem>
126 <listitem><para>
127   La <emphasis role="bold">subventana</emphasis> es donde aparece la película.
128   Puede mostrar una imagen específica si no hay película cargada (es bastante
129   aburrido tener una ventana vacía :-)) <emphasis role="bold">Nota:</emphasis>
130   la transparencia <emphasis role="bold">no está permitida</emphasis> aquí.
131 </para></listitem>
133 <listitem><para>
134   El <emphasis role="bold">skin del menú</emphasis> es una forma de controlar
135   <application>MPlayer</application> con entradas de menú. Dos imágenes son
136   requeridas para el menú: una es la imagen base que muestra el menú en su
137   estado normal, la otra es usada para mostrar las entradas seleccionadas.
138   Cuando hace salir el menú, la entrada seleccionada actualmente es copiada
139   desde la segunda imagen sobre la entrada de menú que hay bajo el puntero
140   del ratón (la segunda imagen nunca se muestra entera).
141 </para><para>
142   Una entrada de menú se define por su posición y tamaño en la imagen (vea la
143   sección que habla del <link linkend="skin-file-menu">skin del menú</link>
144   para detalles).
145 </para></listitem>
146 </itemizedlist>
147 </para>
149 <para>
150   Hay algo importante que aún no he mencionado: Para que los botones, medidores
151   deposición y entradas de menú funcionen, <application>MPlayer</application>
152   tiene que saber qué hacer cuando se hace clic en ellos. Esto se hace con
153   <link linkend="skin-gui">mensajes</link> (eventos). Para estos objetos
154   debe definir los mensajes que se generan cuando se hace clic en ellos.
155 </para>
156 </sect2>
158 <sect2 id="skin-files">
159 <title>Archivos</title>
160 <para>
161 Necesita los siguientes archivos para construir un skin:
162 <itemizedlist>
163 <listitem><para>
164   El archivo de configuración llamado <link linkend="skin-file">skin</link>
165   le dice a <application>MPlayer</application> cómo poner las diferentes
166   partes del skin juntas y qué debe hacer cuando se hace clic en alguna
167   parte de la ventana.
168 </para></listitem>
169 <listitem><para>
170   La imagen de fondo para la ventana principal
171 </para></listitem>
172 <listitem><para>
173   Imágenes para los objetos en la ventana principal (incluyendo uno o más
174   archivos de descripción de tipografía necesarios para dibujar las etiquetas).
175 </para></listitem>
176 <listitem><para>
177   La imagen que se mostrará en la subventana (opcional).
178 </para></listitem>
179 <listitem><para>
180   Dos imágenes para el skin del menú (son necesarias solo si quiere crear
181   un menú).
182 </para></listitem>
183 </itemizedlist>
184   Con la excepción del archivo de configuración del skin, puede nombrar
185   los otros archivos como quiera (pero note que los archivos de descripción
186   de tipografía deben tener extensión <filename>.fnt</filename>).
187 </para>
188 </sect2>
189 </sect1>
191 <sect1 id="skin-file">
192 <title>El archivo de skin</title>
193 <para>
194 Como se menciona más arriba, este es el archivo de configuración del skin.
195 Su orientación en lineal; las líneas que son comentarios comienzan por
196 un caracter '<literal>;</literal>' al principio de la línea (solo espacios
197 y tabuladores están permitidos antes del '<literal>;</literal>').
198 </para>
200 <para>
201 El archivo está dividido en secciones. Cada sección describe el skin para
202 una aplicación y tiene la siguiente forma:
203 <programlisting>
204 section = <replaceable>nombre de la sección</replaceable>
209 </programlisting>
210 </para>
212 <para>
213 Actualmente solo hay una aplicación, por lo que necesita una sola sección: su nombre
214 es <emphasis role="bold">movieplayer</emphasis>.
215 </para>
217 <para>
218 Dentro de esta sección cada ventana está descrita por un bloque de la siguiente forma:
219 <programlisting>
220 window = <replaceable>nombre de la ventana</replaceable>
225 </programlisting>
226 </para>
228 <para>
229 donde <replaceable>nombre de la ventana</replaceable> puede ser una de las siguientes
230 cadenas de texto:
231 <itemizedlist>
232 <listitem><para><emphasis role="bold">main</emphasis> - para la ventana principal</para></listitem>
233 <listitem><para><emphasis role="bold">sub</emphasis> - para la subventana</para></listitem>
234 <listitem><para><emphasis role="bold">menu</emphasis> - para el skin del menú</para></listitem>
235 <listitem><para><emphasis role="bold">playbar</emphasis> - barra de reproducción</para></listitem>
236 </itemizedlist>
237 </para>
239 <para>
240 (Los bloques sub y menú son opcionales - no necesita crear un menú o decorar
241 la subventana.)
242 </para>
244 <para>
245 Dentro de un bloque de ventana, puede definir cada objeto para la ventana con
246 una línea del siguiente modo:
247 <programlisting>objeto = parámetro</programlisting>
248 Donde <literal>objeto</literal> es una cadena que identifica el tipo de objeto GUI,
249 <literal>parámetro</literal> es un valor numérico o textual (o una lista
250 de valores separados por comas).
251 </para>
253 <para>
254 Poniendo todo lo de arriba jutno, el archivo entero quedará algo similar a esto:
255 <programlisting>
256 section = movieplayer
257   window = main
258   ; ... objetos para la ventana principal ...
259   end
261   window = sub
262   ; ... objetos para la subventana ...
263   end
265   window = menu
266   ; ... objetos para el menú ...
267   end
269   window = playbar
270   ; ... objetos para la barra de reproducción ...
271   end
273 </programlisting>
274 </para>
276 <para>
277 El nombre de un archivo de imagen se debe dar sin los directorios - las imágenes
278 se buscan en el directorio <filename class="directory">skins</filename>.
279 También puede (pero necesita ser root) especificar la extensión del archivo. Si
280 el archivo no existe, <application>MPlayer</application> intentará cargar el
281 archivo
282 <filename>&lt;filename&gt;.&lt;ext&gt;</filename>, donde <literal>png</literal>
283 y <literal>PNG</literal> son probados para <filename>&lt;ext&gt;</filename>
284 (en ese orden). El primer nombre de archivo que coincida será el que se use.
285 </para>
287 <para>
288 Finalmente unas palabras acerca del posicionamiento. La ventana principal y la
289 subventana pueden ser colocadas en las diferentes esquinas de la pantalla dando
290 las coordenadas <literal>X</literal> e <literal>Y</literal> . <literal>0</literal>
291 es arriba o izquierda, <literal>-1</literal> es el centro y <literal>-2</literal>
292 es a la derecha o abajo, como se muestra en la ilustracion:
293 </para>
294 <informalfigure>
295 <screen>
296 (0, 0)----(-1, 0)----(-2, 0)
297   |          |          |
298   |          |          |
299 (0,-1)----(-1,-1)----(-2,-1)
300   |          |          |
301   |          |          |
302 (0,-2)----(-1,-2)----(-2,-2)
303 </screen>
304 </informalfigure>
306 <para>
307 Aquí tiene un ejemplo para clarificar esto. Suponga que tiene una imagen llamada
308 <filename>main.png</filename> que usa para la ventana principal:
309 <programlisting>base = main, -1, -1</programlisting>
310 <application>MPlayer</application> intentará cargar los archivos
311 <filename>main</filename>, <filename>main.png</filename>,
312 <filename>main.PNG</filename>.
313 </para>
316 <sect2 id="skin-file-main">
317 <title>Ventana principal y barra de reproducción</title>
318 <para>
319 Más abajo tiene la lista de entradas que pueden usarse en los bloques
320 '<literal>window = main</literal>' ... '<literal>end</literal>',
321 y '<literal>window = playbar</literal>' ... '<literal>end</literal>'.
322 </para>
324 <variablelist>
325 <varlistentry>
326   <term><literal>
327   <anchor id="skin-main-base"/>base = image, X, Y
328   </literal></term>
329   <listitem><para>
330 Le permite especificar la imagen de fondo para usar en la ventana principal.
331 La ventana aparecerá en la posición <literal>X,Y</literal> dada de la pantalla.
332 La ventana tendrá el tamaño de la imagen.
333     </para>
334     <note><para>Estas coordenadas no funcionan actualmente para la ventana de
335     reproducción.</para></note><warning><para>Las regiones transparentes en la
336     imagen (coloreadas con #FF00FF) aparecen en negro en servidores X sin la
337     extensión XShape. El ancho de la imagen debe ser divisible por 8.</para></warning>
338     </listitem>
339 </varlistentry>
341 <varlistentry>
342   <term><literal>
343   <anchor id="skin-button"/>button = imagen, X, Y, ancho, alto, mensaje
344   </literal></term>
345   <listitem><para>
346 Coloca un botón de tamaño <literal>ancho</literal> * <literal>alto</literal> en
347 la posición <literal>X,Y</literal>. El <literal>mensaje</literal> especificado
348 es generado cuando se hace clic en el botón. La imagen dada en
349 <literal>imagen</literal> debe tener tres partes una debajo de otra (de acuerdo con
350 los posibles estados del botón), como esto:
351 </para>
352 <informalfigure>
353 <screen>
354 +--------------+
355 |  pulsado     |
356 +--------------+
357 |  soltado     |
358 +--------------+
359 |  desactivado |
360 +--------------+
361 </screen>
362 </informalfigure>
363   </listitem>
364 </varlistentry>
366 <varlistentry>
367   <term><literal>
368   <anchor id="skin-decoration"/>decoration = enable|disable
369   </literal></term>
370   <listitem><para>
371 Activa o desactiva la decoración del administrador de ventanas para la
372 ventana principal. Por defecto toma el valor <emphasis role="bold">disable</emphasis>.
373     </para>
374     <note><para>Esto no funciona para la ventana de reproducción, no lo necesita.</para></note>
375   </listitem>
376 </varlistentry>
378 <varlistentry>
379   <term><literal>
380   <anchor id="skin-hpotmeter"/>hpotmeter = botón, bancho, balto, fases, numfases, defecto, X, Y, ancho, alto, mensaje
381   </literal></term>
382   <listitem><para>
384     </para></listitem>
385 </varlistentry>
387 <varlistentry>
388   <term><literal>
389   <anchor id="skin-vpotmeter"/>vpotmeter = botón, bancho, balto, fases, numfases, defecto, X, Y, ancho, alto, mensaje
390   </literal></term>
391   <listitem><para>
392 Coloca un medidor horizontal (hpotmeter) o vertical (vpotmeter) de tamaño
393 <literal>ancho</literal> * <literal>alto</literal> en la posición
394 <literal>X,Y</literal>. La imagen puede ser dividida en diferentes partes para
395 las diferentes fases del medidor (por ejemplo, puede tener un medidor para
396 el control del volumen que vaya de verde a rojo mientras sus valores cambian
397 desde el mínimo al máximo.). <literal>hpotmeter</literal> puede tener un botón
398 que se desplaze horizontalmente. Los parámetros son:
399     </para>
400     <itemizedlist>
401     <listitem><para><literal>botón</literal> - la imagen que se usará para el
402     botón (debe tener tres partes una debajo de otra, como en el caso de
403     <link linkend="skin-button">botón</link>)
404     </para></listitem>
405     <listitem><para><literal>bancho</literal>,<literal>balto</literal> - tamaño
406     del botón
407     </para></listitem>
408    <listitem><para><literal>fases</literal> - la imagen que se usará para las
409    diferentes fases del medidor horizontal. Un valor especial <literal>NULL</literal>
410    puede usarse si no desea una imagen. La imagen debe estar dividida en
411    <literal>numfasespartes</literal> verticalmente como esto:
412     </para>
413 <informalfigure>
414 <screen>
415 +------------+
416 |  fase #1   |
417 +------------+
418 |  fase #2   |
419 +------------+
420      ...
421 +------------+
422 |  fase #n   |
423 +------------+
424 </screen>
425 </informalfigure>
426     </listitem>
427     <listitem><para><literal>numfases</literal> - número de fases almacenadas en la
428     imagen de <literal>fases</literal>
429     </para></listitem>
430     <listitem><para><literal>defecto</literal> - valor por defecto en el medidor
431     (en el rango de <literal>0</literal> a <literal>100</literal>)
432     </para></listitem>
433     <listitem><para><literal>X</literal>,<literal>Y</literal> - posición del medidor
434     </para></listitem>
435     <listitem><para><literal>ancho</literal>,<literal>alto</literal> - ancho y alto
436     del <literal>medidor</literal>
437     </para></listitem>
438     <listitem><para><literal>mensaje</literal> - el mensaje que se ha de generar cuando
439     se cambia el valor del <literal>hpotmeter</literal>
440     </para></listitem>
441     </itemizedlist>
443     </listitem>
444 </varlistentry>
446 <varlistentry>
447   <term><literal>
448   <anchor id="skin-potmeter"/>potmeter = fases, numfases, defecto, X, Y, ancho, alto, mensaje
449   </literal></term>
450   <listitem><para>
451 Un <literal>hpotmeter</literal> sin un botón. (Creo que está hecho para hacer una especie
452 de botón que gire sobre sí mismo, pero reacciona a arrastre horizontal solamente). Para la
453 descripción de los parámetros vea <link linkend="skin-hpotmeter">hpotmeter</link>.
454 <literal>fases</literal> puede ser <literal>NULL</literal>, pero es poco útil,
455 porque no le permite ver donde está establecido el valor del <literal>potmeter</literal>.
456     </para></listitem>
457 </varlistentry>
459 <varlistentry>
460   <term><literal>
461   <anchor id="skin-font"/>font = fontfile, fontid
462   </literal></term>
463   <listitem><para>
464 Define una tipografía. <literal>fontfile</literal> es el nombre del archivo de
465 descripción de la tipografía con extensión <filename>.fnt</filename> (no especifique
466 la extensión aquí). <literal>fontid</literal> es usado para referirse a la tipografía
467 (vea <link linkend="skin-dlabel">dlabel</link> y <link linkend="skin-slabel">slabel</link>).
468 Pueden definirse hasta 25 tipografías.
469     </para></listitem>
470 </varlistentry>
472 <varlistentry>
473   <term><literal>
474   <anchor id="skin-slabel"/>slabel = X, Y, fontid, &quot;text&quot;
475   </literal></term>
476   <listitem><para>
477 Coloca una etiqueta estática en la posición <literal>X,Y</literal>. <literal>text</literal>
478 se muestra usando la tipografía identificada con <literal>fontid</literal>. El texto es
479 una cadena de texto en crudo (variables como <literal>$x</literal> no funcionarán) que debe
480 ser encerrada entre comillas dobles (el caracter &quot; no puede ser parte del texto).
481 La etiqueta es mostrada usando la tipografía identificada por <literal>fontid</literal>.
482     </para></listitem>
483 </varlistentry>
485 <varlistentry>
486   <term><literal>
487   <anchor id="skin-dlabel"/>dlabel = X, Y, length, align, fontid, &quot;text&quot;
488   </literal></term>
489   <listitem>
490 <para>
491 Coloca una etiqueta dinámica en la posición <literal>X,Y</literal>. La etiqueta se
492 llama dinámica porque su texto es refrescado periódicamente. La longitud máxima de la
493 etiqueta viene dada por <literal>length</literal> (su altura es la altura de un caracter).
494 Si el texto que ha de ser mostrado es más ancho que esta, será desplazado,
495 si no será alineado dentro del espacio especificado por el valor del parámetro
496 <literal>align</literal>: <literal>0</literal> es para derecha,
497 <literal>1</literal> para centrado, <literal>2</literal> para izquierda.
498 </para>
499 <para>
500 El texto que ha de ser mostrado viene dado por <literal>text</literal>: Debe ser
501 escrito entre comillas dobles (por eso el caracter &quot; no puede ser parte del
502 texto). La etiqueta es mostrada usando la tipografía identificada por
503 <literal>fontid</literal>. Puede usar las siguientes variables en el texto:
504 </para>
506 <informaltable>
507 <tgroup cols="2">
508 <thead>
509   <row><entry>Variable</entry><entry>Significado</entry></row>
510 </thead>
511 <tbody>
512 <row>
513 <entry>$1</entry>
514 <entry>tiempo de reproducción en formato <emphasis>hh:mm:ss</emphasis></entry>
515 </row>
516 <row>
517 <entry>$2</entry>
518 <entry>tiempo de reproducción en formato <emphasis>mmmm:ss</emphasis></entry>
519 </row>
520 <row>
521 <entry>$3</entry>
522 <entry>tiempo de reproducción en formato <emphasis>hh</emphasis> (horas)</entry>
523 </row>
524 <row>
525 <entry>$4</entry>
526 <entry>tiempo de reproducción en formato<emphasis>mm</emphasis> (minutos)</entry>
527 </row>
528 <row>
529 <entry>$5</entry>
530 <entry>tiempo de reproducción en formato <emphasis>ss</emphasis> (segundos)</entry>
531 </row>
532 <row>
533 <entry>$6</entry>
534 <entry>longitud de película en formato <emphasis>hh:mm:ss</emphasis></entry>
535 </row>
536 <row>
537 <entry>$7</entry>
538 <entry>longitud de película en formato <emphasis>mmmm:ss</emphasis></entry>
539 </row>
540 <row>
541 <entry>$8</entry>
542 <entry>tiempo de reproducción en formato <emphasis>h:mm:ss</emphasis></entry>
543 </row>
544 <row>
545 <entry>$v</entry>
546 <entry>volumen en formato <emphasis>xxx.xx</emphasis>%</entry>
547 </row>
548 <row>
549 <entry>$V</entry>
550 <entry>volumen en formato <emphasis>xxx.xx</emphasis></entry>
551 </row>
552 <row>
553 <entry>$b</entry>
554 <entry>balance en formato <emphasis>xxx.xx</emphasis>%</entry>
555 </row>
556 <row>
557 <entry>$B</entry>
558 <entry>balance en formato <emphasis>xxx.xx</emphasis></entry>
559 </row>
560 <row>
561 <entry>$$</entry>
562 <entry>el caracter $</entry>
563 </row>
564 <row>
565 <entry>$a</entry>
566 <entry>un caracter de acuerdo con el tipo de audio (ninguno: <literal>n</literal>,
567 mono: <literal>m</literal>, estéreo: <literal>t</literal>)</entry>
568 </row>
569 <row>
570 <entry>$t</entry>
571 <entry>número de pista (en lista de reproducción)</entry>
572 </row>
573 <row>
574 <entry>$o</entry>
575 <entry>nombre del archivo</entry>
576 </row>
577 <row>
578 <entry>$f</entry>
579 <entry>nombre del archivo en minúsculas</entry>
580 </row>
581 <row>
582 <entry>$F</entry>
583 <entry>nombre del archivo en mayúsculas</entry>
584 </row>
585 <row>
586 <entry>$T</entry>
587 <entry>un caracter en función del tipo de flujo (archivo: <literal>f</literal>,
588 Video CD: <literal>v</literal>, DVD: <literal>d</literal>, URL: <literal>u</literal>)</entry>
589 </row>
590 <row>
591 <entry>$p</entry>
592 <entry>el caracter <keycap>p</keycap> (si una película está siendo mostrada y la
593 tipografía tiene el caracter <keycap>p</keycap></entry>
594 </row>
595 <row>
596 <entry>$s</entry>
597 <entry>el caracter <keycap>s</keycap> (si la película ha sido detenida y la
598 tipografía tiene el caracter <keycap>s</keycap></entry>
599 </row>
600 <row>
601 <entry>$e</entry>
602 <entry>el caracter <keycap>e</keycap> (si se ha pausado la reproducción y la
603 tipografía tiene el caracter <keycap>e</keycap></entry>
604 </row>
605 <row>
606 <entry>$x</entry>
607 <entry>ancho de la película</entry>
608 </row>
609 <row>
610 <entry>$y</entry>
611 <entry>alto de la película</entry>
612 </row>
613 <row>
614 <entry>$C</entry>
615 <entry>nombre del codec usado</entry>
616 </row>
618 </tbody>
619 </tgroup>
620 </informaltable>
621 </listitem>
623 </varlistentry>
624 </variablelist>
626 <note><para>
627 Las variables <literal>$a, $T, $p, $s</literal> y <literal>$e</literal> devuelven
628 caracteres que deben mostrarse como símbolos especiales (por ejemplo, <keycap>e</keycap>
629 es para el símbolo de la pausa que normalmente es algo parecido a ||). Debe tener
630 una tipografía para caracteres normales y una diferente para los símbolos. Vea la
631 sección acerca de <link linkend="skin-fonts-symbols">símbolos</link> para más
632 información.
633 </para></note>
634 </sect2>
636 <sect2 id="skin-file-subwindow">
637 <title>Subventana</title>
638 <para>
639 Las siguientes entradas pueden ser usadas en el bloque
640 '<literal>window = sub</literal>' . . . '<literal>end</literal>'.
641 </para>
643 <variablelist>
644 <varlistentry>
645   <term><literal>
646   <anchor id="skin-sub-base"/>base = image, X, Y, width, height
647   </literal></term>
648   <listitem><para>
649 La imagen que se mostrará en la ventana. La ventana aparecerá en la posición
650 <literal>X,Y</literal> dada de la pantalla (<literal>0,0</literal> es la
651 esquina arriba a la izquierda). Puede especificar <literal>-1</literal> para
652 el centro y <literal>-2</literal> para el lado derecho (<literal>X</literal>) y
653 abajo (<literal>Y</literal>). La ventana será tan grande como sea la imagen.
654 <literal>width</literal> y <literal>height</literal> definen el tamaño de la ventana;
655 son opcionales (si no se especifican, la ventana tendrá el mismo tamaño que la imagen).
656     </para></listitem>
657 </varlistentry>
659 <varlistentry>
660   <term><literal>
661   <anchor id="skin-background"/>background = R, G, B
662   </literal></term>
663   <listitem><para>
664 Le permite especificar el color de fondo. Es útil si la imagen es más pequeña
665 que la ventana. <literal>R</literal>, <literal>G</literal> y <literal>B</literal>
666 especifican los valores de las componentes de color para rojo, verde y azul (cada
667 uno ha de tener un valor decimal de 0 a 255).
668     </para></listitem>
669 </varlistentry>
670 </variablelist>
671 </sect2>
673 <sect2 id="skin-file-menu">
674 <title>Menú del skin</title>
675 <para>
676 Como se mencionó anteriormente, el menú es mostrado usando dos imágenes. Las entradas
677 normales para el menú se toman de la imagen especificada por el objeto <literal>base</literal>,
678 mientras que la entrada que actualmente esté seleccionada es tomada desde la imagen
679 especificada por el objeto <literal>selected</literal>. Debe definir la posición y el
680 tamaño de cada entrada de menú a través del objeto de menú.
681 </para>
683 <para>
684 Las siguientes entradas pueden usarse en el bloque de
685 '<literal>window = menu</literal>'. . .'<literal>end</literal>'.
686 </para>
688 <variablelist>
689 <varlistentry>
690   <term><literal>
691   <anchor id="skin-menu-base"/>base = image
692   </literal></term>
693   <listitem><para>
694 La imagen para las entradas normales del menú.
695     </para></listitem>
696 </varlistentry>
698 <varlistentry>
699   <term><literal>
700   <anchor id="skin-selected"/>selected = image
701   </literal></term>
702   <listitem><para>
703 La imagen mostrando el menú con todas las entradas seleccionadas.
704     </para></listitem>
705 </varlistentry>
707 <varlistentry>
708   <term><literal>
709   <anchor id="skin-menu"/>menu = X, Y, width, height, message
710   </literal></term>
711   <listitem><para>
712 Define la posición <literal>X,Y</literal> y el tamaño de una entrada
713 de menú en la imagen. <literal>message</literal> es el mensaje que ha de
714 generarse cuando el ratón del botón es soltado sobre la entrada.
715     </para></listitem>
716 </varlistentry>
717 </variablelist>
718 </sect2>
719 </sect1>
721 <sect1 id="skin-fonts">
722 <title>Tipografías</title>
723 <para>
724 Como se mencionó en la sección acerca de las partes de un skin, una tipografía
725 viene definida por una imagen y un archivo de descripción. Puede colocar caracteres
726 en cualquier parte de la imagen, pero ha de asegurarse de que su posición y tamaño
727 vienen dados en el archivo de descripción de manera exacta.
728 </para>
730 <para>
731 El archivo de descripción de la tipografía (con extensión <filename>.fnt</filename>)
732 puede tener líneas de comentarios que empiecen por '<literal>;</literal>'. El archivo
733 debe tener una línea en la forma
734 <anchor id="skin-font-image"/>
735 <programlisting>image = <replaceable>image</replaceable></programlisting>
736 Donde <literal><replaceable>image</replaceable></literal> es el nombre del
737 archivo de imagen que se usará para la tipografía (puede no especificar la extensión).
738 <anchor id="skin-font-char"/>
739 <programlisting>&quot;char&quot; = X, Y, width, height</programlisting>
740 Aquí <literal>X</literal> e <literal>Y</literal> especifican la posición del
741 caracter <literal>char</literal> en la imagen (<literal>0,0</literal> es la
742 esquina superior izquierda). <literal>width</literal> y <literal>height</literal>
743 son las dimensiones del caracter en pixels.
744 </para>
746 <para>
747 Este ejemplo define los caracteres A, B, C usando <filename>font.png</filename>.
748 <programlisting>
749 ; Puede ser &quot;font&quot; en lugar de &quot;font.png&quot;.
750 image = font.png
752 ; Tres caracteres son suficientes para el propósito de esta demostración :-)
753 &quot;A&quot; =  0,0, 7,13
754 &quot;B&quot; =  7,0, 7,13
755 &quot;C&quot; = 14,0, 7,13
756 </programlisting>
757 </para>
759 <sect2 id="skin-fonts-symbols">
760 <title>Símbolos</title>
761 <para>
762 Algunos caracteres tienen significado especial cuando son devueltos por algunas
763 de las variables usadas en <link linkend="skin-dlabel">dlabel</link>. Estos
764 caracteres se deben mostrar como símbolos para que parezca un bonito logotipo
765 de DVD en lugar del caracter '<literal>d</literal>' para un flujo de DVD por ejemplo.
766 </para>
767 <para>
768 La siguiente tabla lista todos los caracters que pueden ser usados para
769 mostrar símbolos (y que por lo tanto requieren una tipografía diferente).
770 </para>
772 <informaltable>
773 <tgroup cols="2">
774 <thead>
775   <row><entry>Caracter</entry><entry>Símbolo</entry></row>
776 </thead>
777 <tbody>
778 <row><entry><keycap>p</keycap></entry><entry>play</entry></row>
779 <row><entry><keycap>s</keycap></entry><entry>stop</entry></row>
780 <row><entry><keycap>e</keycap></entry><entry>pausa</entry></row>
781 <row><entry><keycap>n</keycap></entry><entry>no sound</entry></row>
782 <row><entry><keycap>m</keycap></entry><entry>mono sound</entry></row>
783 <row><entry><keycap>t</keycap></entry><entry>stereo sound</entry></row>
784 <row><entry><keycap>f</keycap></entry><entry>stream es un archivo</entry></row>
785 <row><entry><keycap>v</keycap></entry><entry>stream es un Video CD</entry></row>
786 <row><entry><keycap>d</keycap></entry><entry>stream es un DVD</entry></row>
787 <row><entry><keycap>u</keycap></entry><entry>stream es una URL</entry></row>
788 </tbody>
789 </tgroup>
790 </informaltable>
791 </sect2>
792 </sect1>
794 <sect1 id="skin-gui">
795 <title>Mensajes GUI</title>
796 <para>
797 Son los mensajes que pueden ser generados por los botones, potmetros y entradas
798 de menú.
799 </para>
800 <note><para>
801 Algunos de los mensajes pueden no funcionar como se espera (o ni funcionar).
802 Como ya sabe, el GUI está bajo desarrollo.
803 </para></note>
805 <variablelist>
806 <title>Control de reproducción:</title>
807 <varlistentry>
808   <term><emphasis role="bold">evNext</emphasis></term>
809   <listitem><para>
810 Salta a la siguiente pista en la lista de reproducción.
811     </para></listitem>
812 </varlistentry>
814 <varlistentry>
815   <term><emphasis role="bold">evPause</emphasis></term>
816   <listitem><para>
817 Forma un cambio junto con <literal>evPlaySwitchToPause</literal>. Puede ser
818 usado para tener un botón normal de play/pausa. Ambos mensajes deben ser asignados
819 a botones que se muestren exactamente en la misma posición en la ventana. Este mensaje
820 pausa la reproducción y la imagen para el botón <literal>evPlaySwitchToPause</literal>
821 es mostrada (para indicar que el botón puede ser pulsado de nuevo para continuar
822 la reproducción).
823     </para></listitem>
824 </varlistentry>
826 <varlistentry>
827   <term><emphasis role="bold">evPlay</emphasis></term>
828   <listitem><para>
829 Inicia la reproducción.
830     </para></listitem>
831 </varlistentry>
833 <varlistentry>
834   <term><emphasis role="bold">evPlaySwitchToPause</emphasis></term>
835   <listitem><para>
836 Lo contrario a <literal>evPauseSwitchToPlay</literal>. Este mensaje inicia
837 la reproducción y la imagen para el botón <literal>evPauseSwitchToPlay</literal>
838 es mostrada (para indicar que el botón puede ser pulsado de nuevo para
839 volver a pausar la reproducción).
840     </para></listitem>
841 </varlistentry>
843 <varlistentry>
844   <term><emphasis role="bold">evPrev</emphasis></term>
845   <listitem><para>
846 Salta a la pista previa en la lista de reproducción.
847     </para></listitem>
848 </varlistentry>
850 <varlistentry>
851   <term><emphasis role="bold">evStop</emphasis></term>
852   <listitem><para>
853 Detiene la reproducción.
854     </para></listitem>
855 </varlistentry>
856 </variablelist>
858 <variablelist>
859 <title>Búsqueda:</title>
860 <varlistentry>
861   <term><emphasis role="bold">evBackward10sec</emphasis></term>
862   <listitem><para>
863 Busca 10 segundos hacia atrás.
864     </para></listitem>
865 </varlistentry>
867 <varlistentry>
868   <term><emphasis role="bold">evBackward1min</emphasis></term>
869   <listitem><para>
870 Busca 1 minuto hacia atrás.
871     </para></listitem>
872 </varlistentry>
874 <varlistentry>
875   <term><emphasis role="bold">evBackward10min</emphasis></term>
876   <listitem><para>
877 Busca 10 minutos hacia atrás.
878     </para></listitem>
879 </varlistentry>
881 <varlistentry>
882   <term><emphasis role="bold">evForward10sec</emphasis></term>
883   <listitem><para>
884 Busca 10 segundos hacia adelante.
885     </para></listitem>
886 </varlistentry>
888 <varlistentry>
889   <term><emphasis role="bold">evForward1min</emphasis></term>
890   <listitem><para>
891 Busca 1 minuto hacia adelante.
892     </para></listitem>
893 </varlistentry>
895 <varlistentry>
896   <term><emphasis role="bold">evForward10min</emphasis></term>
897   <listitem><para>
898 Busca 10 minutos hacia adelante.
899     </para></listitem>
900 </varlistentry>
902 <varlistentry>
903   <term><emphasis role="bold">evSetMoviePosition</emphasis></term>
904   <listitem><para>
905 Busca la posición (puede ser usado por un potmetro; el
906 valor relativo (0-100%) del potmetro será el que se use).
907     </para></listitem>
908 </varlistentry>
909 </variablelist>
911 <variablelist>
912 <title>Control de video:</title>
913 <varlistentry>
914   <term><emphasis role="bold">evDoubleSize</emphasis></term>
915   <listitem><para>
916 Establece doble tamaño para la ventana de la película.
917     </para></listitem>
918 </varlistentry>
919 <varlistentry>
920   <term><emphasis role="bold">evFullScreen</emphasis></term>
921   <listitem><para>
922 Cambia el modo pantalla completa activado/desactivado.
923     </para></listitem>
924 </varlistentry>
925 <varlistentry>
926   <term><emphasis role="bold">evNormalSize</emphasis></term>
927   <listitem><para>
928 Establece la ventana de video a tu tamaño normal
929     </para></listitem>
930 </varlistentry>
931 </variablelist>
933 <variablelist>
934 <title>Control de audio:</title>
935 <varlistentry>
936   <term><emphasis role="bold">evDecAudioBufDelay</emphasis></term>
937   <listitem><para>
938 Decrementa el retardo en el buffer de audio.
939     </para></listitem>
940 </varlistentry>
942 <varlistentry>
943   <term><emphasis role="bold">evDecBalance</emphasis></term>
944   <listitem><para>
945 Decrementa el balance.
946     </para></listitem>
947 </varlistentry>
949 <varlistentry>
950   <term><emphasis role="bold">evDecVolume</emphasis></term>
951   <listitem><para>
952 Decrementa el volumen.
953     </para></listitem>
954 </varlistentry>
956 <varlistentry>
957   <term><emphasis role="bold">evIncAudioBufDelay</emphasis></term>
958   <listitem><para>
959 Incrementa el retardo en el buffer de audio.
960     </para></listitem>
961 </varlistentry>
963 <varlistentry>
964   <term><emphasis role="bold">evIncBalance</emphasis></term>
965   <listitem><para>
966 Incrementa el balance.
967     </para></listitem>
968 </varlistentry>
970 <varlistentry>
971   <term><emphasis role="bold">evIncVolume</emphasis></term>
972   <listitem><para>
973 Incrementa el volumen.
974     </para></listitem>
975 </varlistentry>
977 <varlistentry>
978   <term><emphasis role="bold">evMute</emphasis></term>
979   <listitem><para>
980 Silencia/activa el sonido.
981     </para></listitem>
982 </varlistentry>
984 <varlistentry>
985   <term><emphasis role="bold">evSetBalance</emphasis></term>
986   <listitem><para>
987 Establece el balance (puede ser usado por un potmetro; el
988 valor relativo (0-100%) del potmetro será el que se use).
989     </para></listitem>
990 </varlistentry>
992 <varlistentry>
993   <term><emphasis role="bold">evSetVolume</emphasis></term>
994   <listitem><para>
995 Establece el volumen (puede ser usado por un potmetro; el
996 valor relativo (0-100%) del potmetro será el que se use).
997     </para></listitem>
998 </varlistentry>
999 </variablelist>
1001 <variablelist>
1002 <title>Miscelánea:</title>
1003 <varlistentry>
1004   <term><emphasis role="bold">evAbout</emphasis></term>
1005   <listitem><para>
1006 Abre la ventana de acerca de.
1007     </para></listitem>
1008 </varlistentry>
1010 <varlistentry>
1011   <term><emphasis role="bold">evDropSubtitle</emphasis></term>
1012   <listitem><para>
1013 Desactiva el uso de subtítulos actual.
1014     </para></listitem>
1015 </varlistentry>
1017 <varlistentry>
1018   <term><emphasis role="bold">evEqualizer</emphasis></term>
1019   <listitem><para>
1020 Activa/desactiva el ecualizador.
1021     </para></listitem>
1022 </varlistentry>
1024 <varlistentry>
1025   <term><emphasis role="bold">evExit</emphasis></term>
1026   <listitem><para>
1027 Sale del programa.
1028     </para></listitem>
1029 </varlistentry>
1031 <varlistentry>
1032   <term><emphasis role="bold">evIconify</emphasis></term>
1033   <listitem><para>
1034 Iconifica la ventana.
1035     </para></listitem>
1036 </varlistentry>
1038 <varlistentry>
1039   <term><emphasis role="bold">evLoad</emphasis></term>
1040   <listitem><para>
1041 Carga un archivo (abriendo una ventana del navegador de archivos, para que pueda elegir uno).
1042     </para></listitem>
1043 </varlistentry>
1045 <varlistentry>
1046   <term><emphasis role="bold">evLoadPlay</emphasis></term>
1047   <listitem><para>
1048 Hace lo mismo que <literal>evLoad</literal>, pero inicia automáticamente la reproducción
1049 después de cargar el archivo.
1050     </para></listitem>
1051 </varlistentry>
1053 <varlistentry>
1054   <term><emphasis role="bold">evLoadSubtitle</emphasis></term>
1055   <listitem><para>
1056 Carga un archivo de subtítulos (con el selector de archivos)
1057     </para></listitem>
1058 </varlistentry>
1060 <varlistentry>
1061   <term><emphasis role="bold">evLoadAudioFile</emphasis></term>
1062   <listitem><para>
1063 Carga un archivo de audio (con el selector de archivos)
1064     </para></listitem>
1065 </varlistentry>
1067 <varlistentry>
1068   <term><emphasis role="bold">evNone</emphasis></term>
1069   <listitem><para>
1070 Mensaje vacío, no tiene efecto (excepto quizá en las versiones CVS :-)).
1071     </para></listitem>
1072 </varlistentry>
1074 <varlistentry>
1075   <term><emphasis role="bold">evPlaylist</emphasis></term>
1076   <listitem><para>
1077 Abre/cierra la ventana de lista de reproducción.
1078     </para></listitem>
1079 </varlistentry>
1081 <varlistentry>
1082   <term><emphasis role="bold">evPlayDVD</emphasis></term>
1083   <listitem><para>
1084 Intenta abrir el disco en la unidad de DVD-ROM dada.
1085     </para></listitem>
1086 </varlistentry>
1088 <varlistentry>
1089   <term><emphasis role="bold">evPlayVCD</emphasis></term>
1090   <listitem><para>
1091 Intenta abrir el disco en la unidad de CD-ROM dada.
1092     </para></listitem>
1093 </varlistentry>
1095 <varlistentry>
1096   <term><emphasis role="bold">evPreferences</emphasis></term>
1097   <listitem><para>
1098 Abre la ventana de preferencias.
1099     </para></listitem>
1100 </varlistentry>
1102 <varlistentry>
1103   <term><emphasis role="bold">evSetAspect</emphasis></term>
1104   <listitem><para>
1105 Establece el aspecto de la imagen mostrada.
1106     </para></listitem>
1107 </varlistentry>
1109 <varlistentry>
1110   <term><emphasis role="bold">evSetURL</emphasis></term>
1111   <listitem><para>
1112 Muestra la ventana de diálogo para URL.
1113     </para></listitem>
1114 </varlistentry>
1116 <varlistentry>
1117   <term><emphasis role="bold">evSkinBrowser</emphasis></term>
1118   <listitem><para>
1119 Abre la ventana del navegador de skins.
1120     </para></listitem>
1121 </varlistentry>
1122 </variablelist>
1124 </sect1>
1126 </appendix>