MythUI XML Examples
From MythTV Official Wiki
For documentation of the mythui theme format, see: MythUIThemeFormat
This page will hold a few examples of different layouts possible.
Contents
MythUIButtonList - <buttonlist>
Tags
<area>
- Total widget area, includes arrows which should always displayed for touchscreens
<spacing>
- Spacing between entries. Zero is the default. (Optional)
<layout>
- Grid, Horizontal,Vertical. Vertical is the default (Optional)
<scrollstyle>
- Free, Center. Free is the default (Optional)
<buttonarea>
- Area relative to the total area that the buttons may use, the rest is free for arrows
<statetype name="buttonitem">
- Describes the layout, content of the buttons
Use of named textareas
Every button has a default textarea, buttontext but in addition you can define an infinite number of textareas which can be referred to by name in SetText() e.g.
m_buttonList->SetText("This is the default textarea"); m_buttonList->SetText("This is column one", "column1"); m_buttonList->SetText("This is column two", "column2");
I suggest giving them more meaningful names, i.e. If they display name and description of a video then "title", "description" would be clearer to the themer.
Examples
Simple Multi-column list
<buttonlist name="column_example" from="basebuttonlist"> <area>x,y,w,h</area> <spacing>2</spacing> <layout>vertical</layout> <buttonarea>x2,y2,w2,h2</buttonarea> <statetype name="buttonitem"> <state name="active"> <statetype name="buttoncheck"> <position>2,2</position> </statetype> <textarea name="column1"> <area>25,0,100,30</area> <font>fonta</font> </textarea> <textarea name="column2" from="column1"> <position>135,0</position> </textarea> </state> <state name="selected" from="active"> <textarea name="column1"> <font>fontb</font> </textarea> <textarea name="column2" from="column1" /> <!-- Picks up font change in selected state --> </state> </statetype> </buttonlist>
N.B. This example inherits from basebuttonlist which saves us defining the checkbox images, fonts, arrows etc. These can all be overridden.
Image Grid
<buttonlist name="iamgegrid_example" from="basebuttonlist"> <area>x,y,w,h</area> <spacing>5</spacing> <layout>grid</layout> <buttonarea>x2,y2,w2,h2</buttonarea> <statetype name="buttonitem"> <state name="active"> <imagetype name="buttonimage"> <area>10,10,150,150</area> </imagetype> </state> <state name="selected" from="active"> <imagetype name="buttonimage"> <area>-20,-20,220,220</area> <!-- Enlarged selected image, overlaps neighbouring images --> </imagetype> </state> </statetype> </buttonlist>