Difference between revisions of "Menu theme development guide"

From MythTV Official Wiki
Jump to: navigation, search
Line 20: Line 20:
  
 
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.
 
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
 +
<mythmenu name="MAIN">
 +
 +
After the mythmenu tag, one or more button tags will define the buttons shown on the screen.  Finally, the document will end with
 +
</mythmenu>
 +
 +
==Buttons==
 +
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.

Revision as of 00:20, 13 March 2006

Introduction

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/".

Overview

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.

First Step

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

<mythmenu name="MAIN">

After the mythmenu tag, one or more button tags will define the buttons shown on the screen. Finally, the document will end with

</mythmenu>

Buttons

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.