El tema mínimo que funciona
Las cuatro vistas, en un solo archivo.
Un tema encaja siempre de la misma manera, y es el plan de toda esta documentación:
un tema contiene vistas — una pantalla cada una; una vista contiene componentes — una imagen, un texto, una lista; un componente lleva propiedades — su posición, su tamaño, su color.
Aquí tienes un tema completo y funcional: están las cuatro vistas. Crea una carpeta mon-theme/ en /recalbox/share/themes/, pon dentro este theme.xml, y aparecerá en la lista de temas.
<?xml version="1.0" encoding="UTF-8"?>
<theme name="Mi Tema" version="1.0" author="Yo"
recalbox="10.0" compatibility="hdmi,crt" resolutions="hd,fhd">
<!-- ── 1. LA LISTA DE SISTEMAS ─────────────────────────────── -->
<view name="system">
<box name="fond" extra="true">
<pos>0 0</pos><size>1 1</size>
<color>101820</color><zIndex>1</zIndex>
</box>
<carousel name="systemcarousel">
<type>horizontal</type>
<pos>0 0.35</pos><size>1 0.3</size>
<logoSize>0.2 0.12</logoSize>
<maxLogoCount>5</maxLogoCount>
</carousel>
<image name="logo"/>
<text name="systemInfo">
<pos>0.5 0.75</pos><origin>0.5 0.5</origin>
<fontSize>0.03</fontSize><color>8A92A6</color>
<alignment>center</alignment>
<backgroundColor>00000000</backgroundColor>
</text>
</view>
<!-- ── 2. LA LISTA DE JUEGOS ───────────────────────────────── -->
<view name="detailed">
<box name="fond" extra="true">
<pos>0 0</pos><size>1 1</size>
<color>101820</color><zIndex>1</zIndex>
</box>
<textlist name="gamelist">
<pos>0.05 0.15</pos><size>0.42 0.75</size>
<primaryColor>C6CBD8</primaryColor>
<secondaryColor>8A92A6</secondaryColor>
<selectedColor>101820</selectedColor>
<selectorColor>4FE3C1</selectorColor>
<fontSize>0.035</fontSize>
</textlist>
<image name="md_image">
<pos>0.74 0.4</pos><origin>0.5 0.5</origin>
<maxSize>0.4 0.45</maxSize>
</image>
<text name="md_description">
<pos>0.54 0.68</pos><size>0.4 0.22</size>
<fontSize>0.024</fontSize><color>A0A8BA</color>
</text>
</view>
<!-- ── 3. EL ESTILO DE LOS MENÚS ───────────────────────────── -->
<view name="menu">
<menuBackground>
<color>101820F0</color>
</menuBackground>
<menuText>
<fontSize>0.038</fontSize>
<color>C6CBD8</color>
<selectedColor>101820</selectedColor>
<selectorColor>4FE3C1</selectorColor>
</menuText>
</view>
<!-- ── 4. EL SALVAPANTALLAS ────────────────────────────────── -->
<view name="gameclip">
<extras>
<text name="titre">
<pos>0.06 0.86</pos>
<text>${game.name}</text>
<fontSize>0.05</fontSize><color>FFFFFF</color>
</text>
</extras>
</view>
</theme>
Lo que hay que observar
extra="true"en el fondo: sin él, no se mostraría. Es la regla que hay que recordar, explicada en La regla más importante;systemcarousel,logo,gamelist,md_imageson nombres reservados: es ese nombre — no el tipo de la etiqueta — lo que los conecta con el motor. Hay una treintena, y cada vista tiene los suyos: la lista completa está en Las vistas y sus componentes;${system}y${game.name}son variables: Recalbox las sustituye al mostrar, por el nombre del sistema actual o del juego resaltado. Es lo que hace vivo un tema sin escribir nada especial — ver Usar las variables;- la vista
menuno se compone: no se coloca nada en ella, se viste lo que Recalbox construye; - la vista
gameclipes el salvapantallas — Recalbox encadena allí extractos de juegos, y el tema apenas añade información sobre el juego mostrado.
Aquí todo cabe en un solo archivo, para poder leerlo de un vistazo. En cuanto el tema crece, se divide — ver Dividir el tema.