Como se menciona más arriba, este es el archivo de configuración del skin.
Su orientación en lineal; las líneas que son comentarios comienzan por
un caracter ';
' al principio de la línea (solo espacios
y tabuladores están permitidos antes del ';
').
El archivo está dividido en secciones. Cada sección describe el skin para una aplicación y tiene la siguiente forma:
section = nombre de la sección
.
.
.
end
Actualmente solo hay una aplicación, por lo que necesita una sola sección: su nombre es movieplayer.
Dentro de esta sección cada ventana está descrita por un bloque de la siguiente forma:
window = nombre de la ventana
.
.
.
end
donde nombre de la ventana
puede ser una de las siguientes
cadenas de texto:
main - para la ventana principal
sub - para la subventana
menu - para el skin del menú
playbar - barra de reproducción
(Los bloques sub y menú son opcionales - no necesita crear un menú o decorar la subventana.)
Dentro de un bloque de ventana, puede definir cada objeto para la ventana con una línea del siguiente modo:
objeto = parámetro
Donde objeto
es una cadena que identifica el tipo de objeto GUI,
parámetro
es un valor numérico o textual (o una lista
de valores separados por comas).
Poniendo todo lo de arriba jutno, el archivo entero quedará algo similar a esto:
section = movieplayer window = main ; ... objetos para la ventana principal ... end window = sub ; ... objetos para la subventana ... end window = menu ; ... objetos para el menú ... end window = playbar ; ... objetos para la barra de reproducción ... end end
El nombre de un archivo de imagen se debe dar sin los directorios - las imágenes
se buscan en el directorio skins.
También puede (pero necesita ser root) especificar la extensión del archivo. Si
el archivo no existe, MPlayer intentará cargar el
archivo
<filename>.<ext>, donde png
y PNG
son probados para <ext>
(en ese orden). El primer nombre de archivo que coincida será el que se use.
Finalmente unas palabras acerca del posicionamiento. La ventana principal y la
subventana pueden ser colocadas en las diferentes esquinas de la pantalla dando
las coordenadas X
e Y
. 0
es arriba o izquierda, -1
es el centro y -2
es a la derecha o abajo, como se muestra en la ilustracion:
(0, 0)----(-1, 0)----(-2, 0) | | | | | | (0,-1)----(-1,-1)----(-2,-1) | | | | | | (0,-2)----(-1,-2)----(-2,-2)
Aquí tiene un ejemplo para clarificar esto. Suponga que tiene una imagen llamada main.png que usa para la ventana principal:
base = main, -1, -1
MPlayer intentará cargar los archivos main, main.png, main.PNG.
Más abajo tiene la lista de entradas que pueden usarse en los bloques
'window = main
' ... 'end
',
y 'window = playbar
' ... 'end
'.
base = image, X, Y
Le permite especificar la imagen de fondo para usar en la ventana principal.
La ventana aparecerá en la posición X,Y
dada de la pantalla.
La ventana tendrá el tamaño de la imagen.
Estas coordenadas no funcionan actualmente para la ventana de reproducción.
Las regiones transparentes en la imagen (coloreadas con #FF00FF) aparecen en negro en servidores X sin la extensión XShape. El ancho de la imagen debe ser divisible por 8.
button = imagen, X, Y, ancho, alto, mensaje
Coloca un botón de tamaño ancho
* alto
en
la posición X,Y
. El mensaje
especificado
es generado cuando se hace clic en el botón. La imagen dada en
imagen
debe tener tres partes una debajo de otra (de acuerdo con
los posibles estados del botón), como esto:
+--------------+ | pulsado | +--------------+ | soltado | +--------------+ | desactivado | +--------------+
decoration = enable|disable
Activa o desactiva la decoración del administrador de ventanas para la ventana principal. Por defecto toma el valor disable.
Esto no funciona para la ventana de reproducción, no lo necesita.
hpotmeter = botón, bancho, balto, fases, numfases, defecto, X, Y, ancho, alto, mensaje
vpotmeter = botón, bancho, balto, fases, numfases, defecto, X, Y, ancho, alto, mensaje
Coloca un medidor horizontal (hpotmeter) o vertical (vpotmeter) de tamaño
ancho
* alto
en la posición
X,Y
. La imagen puede ser dividida en diferentes partes para
las diferentes fases del medidor (por ejemplo, puede tener un medidor para
el control del volumen que vaya de verde a rojo mientras sus valores cambian
desde el mínimo al máximo.). hpotmeter
puede tener un botón
que se desplaze horizontalmente. Los parámetros son:
botón
- la imagen que se usará para el
botón (debe tener tres partes una debajo de otra, como en el caso de
botón)
bancho
,balto
- tamaño
del botón
fases
- la imagen que se usará para las
diferentes fases del medidor horizontal. Un valor especial NULL
puede usarse si no desea una imagen. La imagen debe estar dividida en
numfasespartes
verticalmente como esto:
+------------+ | fase #1 | +------------+ | fase #2 | +------------+ ... +------------+ | fase #n | +------------+
numfases
- número de fases almacenadas en la
imagen de fases
defecto
- valor por defecto en el medidor
(en el rango de 0
a 100
)
X
,Y
- posición del medidor
ancho
,alto
- ancho y alto
del medidor
mensaje
- el mensaje que se ha de generar cuando
se cambia el valor del hpotmeter
potmeter = fases, numfases, defecto, X, Y, ancho, alto, mensaje
Un hpotmeter
sin un botón. (Creo que está hecho para hacer una especie
de botón que gire sobre sí mismo, pero reacciona a arrastre horizontal solamente). Para la
descripción de los parámetros vea hpotmeter.
fases
puede ser NULL
, pero es poco útil,
porque no le permite ver donde está establecido el valor del potmeter
.
font = fontfile, fontid
Define una tipografía. fontfile
es el nombre del archivo de
descripción de la tipografía con extensión .fnt (no especifique
la extensión aquí). fontid
es usado para referirse a la tipografía
(vea dlabel y slabel).
Pueden definirse hasta 25 tipografías.
slabel = X, Y, fontid, "text"
Coloca una etiqueta estática en la posición X,Y
. text
se muestra usando la tipografía identificada con fontid
. El texto es
una cadena de texto en crudo (variables como $x
no funcionarán) que debe
ser encerrada entre comillas dobles (el caracter " no puede ser parte del texto).
La etiqueta es mostrada usando la tipografía identificada por fontid
.
dlabel = X, Y, length, align, fontid, "text"
Coloca una etiqueta dinámica en la posición X,Y
. La etiqueta se
llama dinámica porque su texto es refrescado periódicamente. La longitud máxima de la
etiqueta viene dada por length
(su altura es la altura de un caracter).
Si el texto que ha de ser mostrado es más ancho que esta, será desplazado,
si no será alineado dentro del espacio especificado por el valor del parámetro
align
: 0
es para derecha,
1
para centrado, 2
para izquierda.
El texto que ha de ser mostrado viene dado por text
: Debe ser
escrito entre comillas dobles (por eso el caracter " no puede ser parte del
texto). La etiqueta es mostrada usando la tipografía identificada por
fontid
. Puede usar las siguientes variables en el texto:
Variable | Significado |
---|---|
$1 | tiempo de reproducción en formato hh:mm:ss |
$2 | tiempo de reproducción en formato mmmm:ss |
$3 | tiempo de reproducción en formato hh (horas) |
$4 | tiempo de reproducción en formatomm (minutos) |
$5 | tiempo de reproducción en formato ss (segundos) |
$6 | longitud de película en formato hh:mm:ss |
$7 | longitud de película en formato mmmm:ss |
$8 | tiempo de reproducción en formato h:mm:ss |
$v | volumen en formato xxx.xx% |
$V | volumen en formato xxx.xx |
$b | balance en formato xxx.xx% |
$B | balance en formato xxx.xx |
$$ | el caracter $ |
$a | un caracter de acuerdo con el tipo de audio (ninguno: n ,
mono: m , estéreo: t ) |
$t | número de pista (en lista de reproducción) |
$o | nombre del archivo |
$f | nombre del archivo en minúsculas |
$F | nombre del archivo en mayúsculas |
$T | un caracter en función del tipo de flujo (archivo: f ,
Video CD: v , DVD: d , URL: u ) |
$p | el caracter p (si una película está siendo mostrada y la tipografía tiene el caracter p |
$s | el caracter s (si la película ha sido detenida y la tipografía tiene el caracter s |
$e | el caracter e (si se ha pausado la reproducción y la tipografía tiene el caracter e |
$x | ancho de la película |
$y | alto de la película |
$C | nombre del codec usado |
Las variables $a, $T, $p, $s
y $e
devuelven
caracteres que deben mostrarse como símbolos especiales (por ejemplo, e
es para el símbolo de la pausa que normalmente es algo parecido a ||). Debe tener
una tipografía para caracteres normales y una diferente para los símbolos. Vea la
sección acerca de símbolos para más
información.
Las siguientes entradas pueden ser usadas en el bloque
'window = sub
' . . . 'end
'.
base = image, X, Y, width, height
La imagen que se mostrará en la ventana. La ventana aparecerá en la posición
X,Y
dada de la pantalla (0,0
es la
esquina arriba a la izquierda). Puede especificar -1
para
el centro y -2
para el lado derecho (X
) y
abajo (Y
). La ventana será tan grande como sea la imagen.
width
y height
definen el tamaño de la ventana;
son opcionales (si no se especifican, la ventana tendrá el mismo tamaño que la imagen).
background = R, G, B
Le permite especificar el color de fondo. Es útil si la imagen es más pequeña
que la ventana. R
, G
y B
especifican los valores de las componentes de color para rojo, verde y azul (cada
uno ha de tener un valor decimal de 0 a 255).
Como se mencionó anteriormente, el menú es mostrado usando dos imágenes. Las entradas
normales para el menú se toman de la imagen especificada por el objeto base
,
mientras que la entrada que actualmente esté seleccionada es tomada desde la imagen
especificada por el objeto selected
. Debe definir la posición y el
tamaño de cada entrada de menú a través del objeto de menú.
Las siguientes entradas pueden usarse en el bloque de
'window = menu
'. . .'end
'.
base = image
La imagen para las entradas normales del menú.
selected = image
La imagen mostrando el menú con todas las entradas seleccionadas.
menu = X, Y, width, height, message
Define la posición X,Y
y el tamaño de una entrada
de menú en la imagen. message
es el mensaje que ha de
generarse cuando el ratón del botón es soltado sobre la entrada.