Menu theme development guide
Menu themes allow the user to customize where certain myth features are located. By creating a customized menu theme, users can tailor MythTV to there own usage. The goal of this guide is to familiarize users with the menu's XML format and to create a comprehensive list of actions that will allow the user to invoke plugins and other menus. This document assumes that mythtv is installed in the "/usr" directory. If it is installed in the "/usr/local" directory, substitute everywhere that says "/usr/" with "/usr/local/". This document is currently incomplete.
Menu themes are a series of XML documents. The XML document defines what "buttons" are shown on each menu. Each XML document describes one menu.
The first step is to create a directory to hold the menu's XML document. If unsure, a good place is in the home folder. The directory can be called anything that is not already a theme of any kind. To find out what not to call the menu theme, use the following command in a terminal:
$ ls /usr/share/mythtv/themes
Type the following to create a directory for a menutheme in "~/mymenuthemes/mymenu".
$ cd ~ $ mkdir mymenuthemes $ cd mymenuthemes $ mkdir mymenu $ cd mymenu
It is generally a good idea to sketch out how the new menu is to be laid out. This will decrease the chance of error as well as speed up the development process.
Creating a Main Menu
To create the main menu, create a new document called "mainmenu.xml" For example, this command can be typed at the terminal:
$ gedit mainmenu.xml
The first line of the document will always be
After the mythmenu tag, one or more button tags will define the buttons shown on the screen. Finally, the document will end with
A button defines what text appears on the screen and what action will be taken when the user selects the button.
<button> <type>SOME_TYPE</type> <text>My Text</text> <text lang="XX">My Text in XX</text> <action>SOME_TYPE_ACTION</action> <depends>myplugin</depends> </button>
Below is a description of each tag
- <type> This tag defines what kind of button this is. This will determine what picture is shown when the button is highlighted. A list of known types can be found in Apendix A: Types.
- <text> The default text that appears on the screen. This is generally written in English.
- <text lang="XX"> Text that will appear if the user's local is XX. There may be more than one of these tags
- <action> The action that will result when the user selects the button. A complete list of known actions can be found in Apendix B: Actions
- <depends> Indicates that the button will only be shown if the indicated plugin is installed
TODO: Complete Guide.