Faire un thème Recalbox

45 pages · 8 sections
FRENESDE Tout afficher Créer mon thème

⚠️ La règle la plus importante

Pourquoi votre composant n’apparaît pas.

C’est la cause du « j’ai posé mon image et je ne la vois pas ».

Une vue ne dessine que deux choses :

  1. ses composants réservés, qu’elle construit elle-même ;
  2. les composants marqués extra="true".

Un composant libre sans extra n’apparaît jamais.

extra="true" → dessiné votre composant sans extra → invisible rien le moteur ne dessine que ses composants réservés + ceux marqués extra
<view name="system">
  <image name="mon-decor" extra="true">      <!-- ✅ s’affiche -->
    <path>${root}/data/arts/decor.png</path>
  </image>

  <image name="autre-decor">                  <!-- ❌ invisible -->
    <path>${root}/data/arts/decor.png</path>
  </image>
</view>

L’autre écriture, équivalente, est de les regrouper :

<view name="system">
  <extras>
    <image name="mon-decor"> … </image>
    <text name="ma-legende"> … </text>
  </extras>
</view>

Seuls SIX types peuvent être posés librement

La fabrique des composants libres ne sait construire que ceux-ci :

✅ Utilisable en extra❌ Refusé
image · box · video · text · scrolltext · markdowntextlist · carousel · datetime · rating · sound · helpsystem · keyboard · container · ninepatch · tous les menu*

Un type refusé écrit dans le journal Extra type unknown: Rating et rien n’est dessiné.

➡️ rating, datetime, textlist et carousel ne s’utilisent que sous leur nom réservé, dans une vue qui les prévoit. Vous ne pouvez pas ajouter une deuxième note ou une deuxième liste.

➡️ ninepatch n’a de nom réservé nulle part : refusé en composant libre, et aucune vue ne le construit. Il est donc inutilisable en pratique, malgré sa présence dans le moteur.

➡️ container ne se pose pas non plus, mais il n’est pas inutile : le moteur l’applique par-dessus un autre composant. Dans la liste de jeux, md_description déclaré en <text> règle du même coup le cadre défilant qui l’entoure — pos, size et zIndex vont au cadre, le reste au texte. Vous ne l’écrivez jamais vous-même.

Trois autres limites

L’exception

helpsystem continue de fonctionner même écrit dans un bloc <extras> : la vue le retrouve par son nom. L’avertissement du journal est sans conséquence.