Difference between revisions of "OSD development guide"

From MythTV Official Wiki
Jump to: navigation, search
m (Fadeaway Container: Even more beautification)
m (Font Container: Filled in table)
Line 37: Line 37:
 
=== Font Container ===
 
=== Font Container ===
 
As with all the other types of themes, you will need to declare named fonts for use for any text elements in the display.  The name attribute defines the name of the font as other elements will refer to it.
 
As with all the other types of themes, you will need to declare named fonts for use for any text elements in the display.  The name attribute defines the name of the font as other elements will refer to it.
 +
{| border=1 cellspacing=0 cellpadding=2
 +
|-
 +
!width="100pt"|Attribute
 +
!width="500pt"|Description
 +
|-
 +
|align=center|name
 +
|The name the rest of the theme will refer to the font by
 +
|-
 +
|valign=top align=center|color
 +
|The color that will be used to draw the font.
 +
''Note:'' This element in turn two attributes, 'content' (which appears to be the alpha-channel value) and 'normal' (which is actually the color).
 +
|-
 +
|align=center|filename
 +
|The filename of the ttf file to be used.
 +
|-
 +
|align=center|size
 +
|Point size of the font face to be used.
 +
|-
 +
|align=center|size:big (optional)
 +
|Point size of the font face to be used.
 +
|-
 +
|align=center|size:small (optional)
 +
|Point size of the font face to be used.
 +
|-
 +
|align=center|shadow
 +
|x,y offset of the dropshadow to be used under the text
 +
|}
  
 
=== Program Info Container ===
 
=== Program Info Container ===

Revision as of 12:48, 13 June 2007

MythTV supports theming of the On Screen Display (OSD) items used when watching Live TV or recordings. This theme development guide covers the steps necessary to develop your own look-and-feel for the OSD.

Technical Details

Layout Coordinates

All x,y coordinates used in OSD themes are based on a grid of 640x480. In contrast to the menu themes, which use 800x600 for 4:3 displays and 1280x720 for 16:9 (widescreen), the grid used for OSD elements stays the same regardless of the actual aspect-ratio of the display being used. (this last bit is merely an assumption I'm making--edit if it's wrong)

Filenames

OSD themes can be put in a subdirectory of their own under the themes directory (typically "/usr/share/mythtv/themes") or they may reside in the same directory as the other theme files of a set. Since there is no difference in the was OSD themes are handled based on the aspect ratio, there is no need to add "-widescreen" to the end of the directory name. OSD themes are stored in a file named simply "osd.xml".

List of Containers

OSD themes are XML documents with the top-level container being named "mythtvosdtheme". Within the mythtvosdtheme container, there are a number of other container types that can be used.

Timeformat Container

This is a container with only one thing inside, namely the format string to be used for displaying the time in the display for the elements that show the time. If you use the special token FROMSETTINGS, MythTV will use the time format specified in General settings.

Type Description
format string Format of time to be displayed

or special token 'FROMSETTINGS'

Fadeaway Container

Similar to timeformat, this container only has one value which is the number of ms it should take for a display element to be faded to 100% transparency when it is being removed from the screen.

Type Description
Integer Duration of fade effect in ms

Font Container

As with all the other types of themes, you will need to declare named fonts for use for any text elements in the display. The name attribute defines the name of the font as other elements will refer to it.

Attribute Description
name The name the rest of the theme will refer to the font by
color The color that will be used to draw the font.

Note: This element in turn two attributes, 'content' (which appears to be the alpha-channel value) and 'normal' (which is actually the color).

filename The filename of the ttf file to be used.
size Point size of the font face to be used.
size:big (optional) Point size of the font face to be used.
size:small (optional) Point size of the font face to be used.
shadow x,y offset of the dropshadow to be used under the text

Program Info Container

The program info container shows any information available about the content currently being watched, including the name, number, and icon of the channel, the name of the program being watched, and it's description.

Channel Number Container

The channel number container is merely a widget that displays the channel number as the user enters it to change the channel.

Browse Info Container

Status Container

The status container shows the current position information for the recording.

It allows the following elements:

  • slidertext - Position info in text form e.g. 1:24 of 2:01
  • extendedslidertext - Extends the position info with time remaining e.g. (0:37 minutes remaining)
  • statusslider - Displays a fill type position bar or slider
  • statusposition - Another slider? Maybe allows you to overlay a position marker on statusslider?
  • progbefore - In livetv allows you to display an image indicating a programme exists before in the livetv chain
  • progbefore - In livetv allows you to display an image indicating a programme exists after in the livetv chain

Notify CID Info Container

Notify Alert Text Container

Editmode Container

Settings Container

Base Dialog Container

News Scroller Container

Menu Container

Channel Editor Container