La structure est très complexe à appréhender, ce document donne les bases pour mieux comprendre cette architecture
Le point d'entrée d'un thème est le “mainmenu”. Mythtv est configuré pour que “QT Painter” affiche ce menu lorsque vous lancez le frontend (par exemple). Pour cela il va utiliser 3 éléments:
Les 2 premiers éléments sont des fichiers .xml modifiables alors que le 3eme est inclus dans le code source et du coup il est moins facilement modifiable. Et ce schéma se reproduit au fil des menus et sous-menus que vous affichez. Comme vous n'avez pas accès au “script de liaison”, il faut utiliser des noms pré-définis que ce programme pourra comprendre; les noms des boutons, les actions à entreprendre, les noms des fenêtres, …. doivent respecter cette règle de base sous peine de ne pas être compris par le “script de liaison”. ATTENTION les noms utilisés dans les menus ne sont pas les mêmes que ceux des feuilles de style (menu-ui)
Plusieurs actions sont possible au sein d'un menu:
Chaque bouton de ces menus se définit de la façon suivante :
<button>
<type>MENU_INFO_CENTER</type> –> il s'agit d'un champ pré-défini dont vous trouverez la liste ici
<text>Information Center</text> –> ce texte sera affiché dans le bouton, sa formulation est libre mais si votre thème en éligible dans Mythtv je vous conseille de le mettre en anglais. Si ce texte existe dans un autre thème il sera traduit, si il est distribué par mythtv.org alors le processus de traduction s'applique et ce champ sera proposé pour être traduit.
<description>Informations et communications</description> —> ce texte sera affiché comme commentaire sous votre bouton (selon votre thème)
<action>MENU info_menu.xml</action> –> c'est l'action qui sera exécuté quand vous choisirez ce bouton. Il s'agit également d'un champ pré-défini dont vous trouverez la liste ici
<depends> </depends> –> il s'agit d'un champ facultatif (non utile pour notre exemple): si ce bouton est utilisé par un module complémentaire (plugin), il ne sera pas affiché si le module n'est pas installé
</button>
Mythtv est fourni avec 4 types de menu
Si vous voulez créer votre menu personnel, commencez par copier un des dossiers ci-dessus et renommez le. Puis ouvrez le dossier et le fichier “mainmenu.xml” avec votre éditeur préféré et ajoutez ceci entre le premier et le deuxième bouton
<button> <type>TV_WATCH_RECORDINGS</type> <text>Watch Recordings</text> <description>Browse your recordings</description> <action>TV_WATCH_RECORDING</action> </button>
Relancez votre frontend, voilà vous avez modifié votre premier menu, simple non et maintenant à vous de jouer.
Petite précision, vous pouvez faire appel à un sous-menu personnel; exemple si vous mettez
<action>MENU mon_menu</action>
il faut créer un fichier mon_menu.xml et y mettre ce que vous voulez voir apparaitre.