Crear un tema de Recalbox

45 páginas · 8 secciones
FRENESDE Mostrar todo Crear mi tema

Tus propias variables: <variables>

Lo que se escribe en el archivo: la etiqueta, las reglas de nombre, el alcance.

Esta página describe lo que se escribe en el archivo. Para crearlas sin escribir una línea de XML, ver Tus variables a medida, en «Los datos dinámicos».

Es el mecanismo más útil de un tema serio, y sin embargo el menos conocido.

<variables>
  <variable name="CouleurPrincipale" value="2E447C" />
  <variable name="PoliceTitre"       value="${root}/data/fonts/Exo2.otf" />
  <variable name="Alpha50"           value="80" />
</variables>

Después, en cualquier parte del tema:

<box name="fond">
  <color>${CouleurPrincipale}</color>
</box>
<text name="titre">
  <fontPath>${PoliceTitre}</fontPath>
  <color>${CouleurPrincipale}${Alpha50}</color>
</text>

Cambia el valor en un solo sitio, y todo el tema le sigue. Es lo que hace posibles las opciones de color: un archivo de capa redefine la variable, y nada más.

Las reglas

  <variable name="CheminLogo" value="${root}/data/logos/${system.name}.svg" />
  <variables if="crt">
    <variable name="TailleTitre" value="0.09" />
  </variables>

⚠️ El bloque se declara arriba del todo

<variables> vale para todo lo que se lee DESPUÉS de él.

Recalbox sustituye cada ${nom} a medida que lee los archivos. Una variable declarada en lo alto del tema vale por tanto en todas partes; declarada en medio, solo vale para lo que sigue.

De ahí la regla, válida para todos los temas: el bloque de variables primero, antes de las vistas, antes de todo lo demás.

Una variable redefinida más adelante sustituye a la anterior para el resto de la lectura — eso es lo que permite a una elección de opción recolorear todo un tema, siempre que se cargue antes de las vistas. Ver Declarar una opción.

Dónde declararlas

En theme.xml, antes de los <include> que las usan: el motor lee las variables de un archivo antes de tratar sus inclusiones.

La costumbre, tomada del tema oficial, es darles su propio archivovariables.xml — incluido el primero de todos:

<include>${root}/variables.xml</include>