XBMC Skinning Manual - XBMC1

180
XBMC Skinning Manual From XBMC Jump to: navigation , search Development Add-on development Skinning XBMC Skinning Manual Contents [hide ] 1 Anatomy of a Skin 2 Skin Themes 3 Includes 4 The Window XML Files 5 addon.xml 6 Windows o 6.1 Window Structure o 6.2 About the Window XML Files o 6.3 Window Header 6.3.1 The Different Types of Controls 6.3.2 Adding Extra Windows 7 Controls o 7.1 Label Control 7.1.1 Example 7.1.2 Auto Size Labels 7.1.3 Multi-Line Labels 7.1.4 Available Tags o 7.2 See also o 7.3 Fade Label Control 7.3.1 Example 7.3.2 Tag Descriptions o 7.4 See also o 7.5 Button Control 7.5.1 Example 7.5.2 Available Tags o 7.6 See also o 7.7 Multiselect Control 7.7.1 Example 7.7.2 Available Tags o 7.8 See also o 7.9 Image Control

description

the best

Transcript of XBMC Skinning Manual - XBMC1

Page 1: XBMC Skinning Manual - XBMC1

XBMC Skinning Manual

From XBMC

Jump to: navigation, search

Development Add-on development Skinning XBMC Skinning Manual

Contents

[hide]

1 Anatomy of a Skin

2 Skin Themes

3 Includes

4 The Window XML Files

5 addon.xml

6 Windows

o 6.1 Window Structure

o 6.2 About the Window XML Files

o 6.3 Window Header

6.3.1 The Different Types of Controls

6.3.2 Adding Extra Windows

7 Controls

o 7.1 Label Control

7.1.1 Example

7.1.2 Auto Size Labels

7.1.3 Multi-Line Labels

7.1.4 Available Tags

o 7.2 See also

o 7.3 Fade Label Control

7.3.1 Example

7.3.2 Tag Descriptions

o 7.4 See also

o 7.5 Button Control

7.5.1 Example

7.5.2 Available Tags

o 7.6 See also

o 7.7 Multiselect Control

7.7.1 Example

7.7.2 Available Tags

o 7.8 See also

o 7.9 Image Control

Page 2: XBMC Skinning Manual - XBMC1

7.9.1 Example

7.9.2 Image Size and Type Restrictions

7.9.2.1 Size

7.9.2.2 Formats

7.9.3 Available Tags and Attributes

o 7.10 See also

o 7.11 MultiImage Control

7.11.1 Example

7.11.2 Image Size and Type Restrictions

7.11.2.1 Formats

7.11.3 Available Tags and Attributes

o 7.12 See also

o 7.13 Radio button Control

7.13.1 Example

7.13.2 Available Tags

o 7.14 See also

o 7.15 Select button control

7.15.1 Example

7.15.2 Available Tags

o 7.16 See also

o 7.17 Toggle button control

7.17.1 Example

7.17.2 Available Tags

o 7.18 See also

o 7.19 Spin Control

7.19.1 Example

7.19.2 Available Tags

o 7.20 See also

o 7.21 Settings Spin Control

7.21.1 Example

7.21.2 Available Tags

o 7.22 See also

o 7.23 Slider Control

7.23.1 Example

7.23.2 Available Tags

o 7.24 See also

o 7.25 List Container

7.25.1 Example

7.25.2 Available Tags

o 7.26 See also

o 7.27 Wraplist Container

7.27.1 Example

7.27.2 Available Tags

o 7.28 See also

o 7.29 FixedList Container

7.29.1 Available Tags

Page 3: XBMC Skinning Manual - XBMC1

o 7.30 See also

o 7.31 Panel Container

7.31.1 Example

7.31.2 Available Tags

o 7.32 See also

o 7.33 Progress Control

7.33.1 Example

7.33.2 Available Tags

o 7.34 See also

o 7.35 Text Box

7.35.1 Example

7.35.2 Available Tags

o 7.36 See also

o 7.37 RSS feed Control

o 7.38 RSS ticker settings

o 7.39 Technical documentation for skinners

7.39.1 RSS control

7.39.2 Available Tags and attributes

7.39.3 RssFeeds.xml

o 7.40 See also

o 7.41 Visualisation Control

7.41.1 Example

7.41.2 Available Tags

o 7.42 See also

o 7.43 Video Control

7.43.1 Example

7.43.2 Available Tags

o 7.44 See also

o 7.45 Mover Control

7.45.1 Example

7.45.2 Available Tags

o 7.46 See also

o 7.47 Resize Control

7.47.1 Example

7.47.2 Available Tags

o 7.48 See also

o 7.49 Edit Control

7.49.1 Example

7.49.2 Available Tags

o 7.50 See also

o 7.51 EPGGrid Control

7.51.1 Example

7.51.2 Available Tags

o 7.52 See also

o 7.53 Console Control

o 7.54 Checkmark Control

Page 4: XBMC Skinning Manual - XBMC1

o 7.55 Extended List Control

8 Conditional_Visibility

o 8.1 How They Work

o 8.2 Conditional Visibility for Dialogs

o 8.3 List of Boolean Conditions

o 8.4 Combining Conditions

o 8.5 Specifying the Transition Animation

o 8.6 See also

9 Animating Your Skin

o 9.1 Window Animations

o 9.2 Control Animations

o 9.3 Format of Animation Tags

9.3.1 Types

9.3.2 Attributes

o 9.4 Examples

o 9.5 See also

10 Fonts

o 10.1 Format of the Font.xml File

o 10.2 Supported Font Types

10.2.1 True type Fonts

11 Apendix I: List of Windows

12 Apendix II: List of Boolean Conditions

o 12.1 See also

13 Apendix III: List of Info Labels

o 13.1 Container

o 13.2 Control

o 13.3 Fanart

o 13.4 Listitem

o 13.5 Musicpartymode labels

o 13.6 Network labels

o 13.7 Player labels

13.7.1 Music player

13.7.2 Video player

o 13.8 Playlist

o 13.9 PVR

o 13.10 Skin

o 13.11 Slideshow

o 13.12 System

o 13.13 System params

o 13.14 Visualisation

o 13.15 Weather labels

o 13.16 Window

o 13.17 Images Available in XBMC

o 13.18 See also

14 Apendix IV: List of Built In Functions

o 14.1 List of functions

Page 5: XBMC Skinning Manual - XBMC1

15 Apendix V: List of Built In Controls

o 15.1 .xml files

15.1.1 AddonBrowser.xml

15.1.2 DialogAddonInfo.xml

15.1.3 DialogAddonSettings.xml

15.1.4 DialogAlbumInfo.xml

15.1.5 DialogBusy.xml

15.1.6 DialogButtonMenu.xml

15.1.7 DialogContentSettings.xml

15.1.8 DialogContextMenu.xml

15.1.9 DialogExtendedProgressBar.xml

15.1.10 DialogFavourites.xml

15.1.11 DialogFileStacking.xml

15.1.12 DialogGamePad.xml

15.1.13 DialogKaiToast.xml

15.1.14 DialogKaraokeSongSelector.xml

15.1.15 DialogKaraokeSongSelectorLarge.xml

15.1.16 DialogKeyboard.xml

15.1.17 DialogMediaFilter.xml

15.1.18 DialogMediaSource.xml

15.1.19 DialogMusicScan.xml

15.1.20 DialogMuteBug.xml

15.1.21 DialogNetworkSetup.xml

15.1.22 DialogNumeric.xml

15.1.23 DialogOK.xml

15.1.24 DialogPeripheralManager.xml

15.1.25 DialogPeripheralSettings.xml

15.1.26 DialogPictureInfo.xml

15.1.27 DialogProgress.xml

15.1.28 DialogPVRChannelManager.xml

15.1.29 DialogPVRChannelsOSD.xml

15.1.30 DialogPVRGroupManager.xml

15.1.31 DialogPVRGuideInfo.xml

15.1.32 DialogPVRGuideOSD.xml

15.1.33 DialogPVRGuideSearch.xml

15.1.34 DialogPVRRecordingInfo.xml

15.1.35 DialogPVRTimerSettings.xml

15.1.36 DialogSeekBar.xml

15.1.37 DialogSelect.xml

15.1.38 DialogSlider.xml

15.1.39 DialogSongInfo.xml

15.1.40 DialogTextViewer.xml

15.1.41 DialogVideoInfo.xml

15.1.42 DialogVideoScan.xml

15.1.43 DialogYesNo.xml

15.1.44 FileBrowser.xml

Page 6: XBMC Skinning Manual - XBMC1

15.1.45 FileManager.xml

15.1.46 LockSettings.xml

15.1.47 LoginScreen.xml

15.1.48 MusicKaraokeLyrics.xml

15.1.49 MusicOSD.xml

15.1.50 MusicOverlay.xml

15.1.51 MusicVisualisation.xml

15.1.52 MyMusicNav.xml

15.1.53 MyMusicPlaylist.xml

15.1.54 MyMusicPlaylistEditor.xml

15.1.55 MyMusicSongs.xml

15.1.56 MyPics.xml

15.1.57 MyPrograms.xml

15.1.58 MyPVR.xml

15.1.59 MyVideo.xml (deprecated)

15.1.60 MyVideoNav.xml

15.1.61 MyVideoPlaylist.xml

15.1.62 MyWeather.xml

15.1.63 Pointer.xml

15.1.64 ProfileSettings.xml

15.1.65 Settings.xml

15.1.66 SettingsCategory.xml

15.1.67 SettingsProfile.xml

15.1.68 SettingsScreenCalibration.xml

15.1.69 SlideShow.xml

15.1.70 SettingsSystemInfo.xml

15.1.71 SmartPlaylistEditor.xml

15.1.72 SmartPlaylistRule.xml

15.1.73 VideoFullScreen.xml

15.1.74 VideoOSDBookmarks.xml

15.1.75 VideoOSDSettings.xml

15.1.76 VideoOverlay.xml

15.1.77 VisualisationPresetList.xml

o 15.2 See also

16 Apendix VI: List of Default Icons

o 16.1 Icons used in XBMC skins

16.1.1 Add-ons

16.1.2 Music

16.1.3 Videos

16.1.4 Generic

o 16.2 See also

XBMC includes a new GUI library written from scratch. This library allows you to skin/change

everything you see in XBMC, from the images, the sizes and positions of all controls, colours,

fonts, and text, through to altering navigation and even adding new functionality.

Page 7: XBMC Skinning Manual - XBMC1

The skin system is quite complex, and this portion of the manual is dedicated to providing in

depth information on how it all works, along with tips to make the experience a little more

pleasant.

If you are just getting started with skinning XBMC, then it is suggested that the best way to learn

is by modifying one of the many existing skins that are available. The default skin, Confluence,

includes almost all the various tricks and features that make the XBMC skinning engine so

powerful, so is an ideal place to start. You may wish to start by having a look through the tutorial

section on skinning XBMC as well as the "Skinning XBMC" article, and try modifying a

window or two by adding a button, or altering the textures or layout.

1 Anatomy of a Skin

XBMC skins once installed are located in userdata addons folder. This is the folder where all

skins are placed and listed.

Any additional skins you create, or download from or be installed via zip XBMC will load and

ask you if you would like to load the skin and also allow you to load them up from within the

Appearance Settings. It is suggested that if you want to make your own skin, then starting by

copying an existing skins files over into a new folder (let's say skin/myskin) is a good place to

start. You can then edit each of the files as you become more familiar with the skinning system.

Each skin folder contains several subdirectorys, and one file:

myskin/font

This subdirectory contains all fonts used by the skin. you can add/replace fonts here

myskin/media

This subdirectory contains all the media files (.png/.gif/.jpg...) You can replace/edit these

as you like.

myskin/addon.xml

This contains the information that XBMC uses to find the other files that XBMC requires

to describe it's skin. It also contains credits information, and versioning information.

myskin/720p

This is a resolution-specific directory. XBMC can run in multiple resolutions, and thus

can use different files for some resolutions (as there is a big difference between NTSC at

720x480 pixels and 1080i at 1920x1080 pixels!) See here for the order in which it looks

for skin files.

2 Skin Themes

Page 8: XBMC Skinning Manual - XBMC1

All the basic media files for a skin should be compressed into the Textures.xbt file, and placed in

the media/ folder. You can use the tool Texturepacker for this. All the images that make up the

default skin theme should be in the Textures.xbt file.

In addition to this, XBMC allows other .xbt files in the media/ folder, each one representing a

different theme for your skin. For instance, you could tint all your main textures a red colour, and

create a new theme package Red.xbt. This gives users more choice in the look of a particular

skin, and only the textures change when you change themes – the layout stays the same. If the

user has selected a theme, then when a control requires a texture, XBMC will first look in the

<themename>.xbt file for the texture. It will fall back to the Textures.xbt file if

<themename>.xbt doesn't contain the image. This means that the theme .xbt files need only

contain the changed textures – all other textures will fallback to using Textures.xbt as usual.

A suggested method of creating a theme is as follows:

1. Run Texturepacker.exe on the folder containing the default texture files, to generate

Textures.xbt as you would normally do.

2. Identify the textures you wish to have themed and copy them to a separate folder.

3. Create a separate folder for each theme outside of your normal skin work area, and place

the altered copies of each of the textures in them.

4. Run Texturepacker.exe on each of the theme folders created in step 3 to create the

themed .xbt files (note you can use the -output switch with Texturepacker.exe to name

the theme appropriately).

5. Place Textures.xbt and each of the theme .xbt files in the media/ folder of your skin.

XBMC will automatically pick them up.

3 Includes

The other special (and arguably the most important skinning file of all) is includes.xml. This is,

as its title suggests, a place from which you can define the default look, size, and positioning of

controls, to save you replicating many of the control's attributes throughout the window .xml

files. For instance, you can setup the size, and textures used for a button control, thus allowing

you to leave those details out in the rest of the skin files, unless of course you want to override

the default look or size etc. in a particular window.

This is extremely valuable as it allows you to greatly simplify a lot of the work in building a

skin. For one thing, it means that once you have include files setup, many of the default

parameters for a different resolution can be done by just altering the parameters within the

include file(s) for the different resolution.

With the 2.1 skinning engine, you can infact have more than one include file - you can specify

the file attribute when including from a different file, allowing you to have an include file

dedicated to a particular set of attributes.

The layout of an includes file is as follows.

Page 9: XBMC Skinning Manual - XBMC1

<includes>

<include name="whitetext">

<textcolor>ffffffff</textcolor>

</include>

<include file="listdefaults.xml" />

<default type="button">

<include>whitetext</include>

</default>

<constant name="leftedge">50</constant>

</includes>

You'll notice in the above example that we have 4 different types of includes. The first <include>

tag basically allows a substitution of the tags underneath it whenever it occurs. For instance, if in

a window .xml file you have this:

<control type="togglebutton">

<include>whitetext</include>

... other tags go here

</control>

Then it would substitute the <textcolor> tag for where the include tag is. You can have as many

includes as you like, and as many tags can be inside an include - even complete controls, or

complete control groups.

The second <include> tag in the example demonstrates how to include from a different file. As

there is no include name specified, it will include the contents of the entire file at that point.

The <default> tag is similar to an include, except that it is used in every control of that type -

even if you don't specify that the control is to use includes. Thus every buttoncontrol will have

the whitetext include in it. Note that you can override this by specifying the <textcolor> tag in

the buttoncontrol.

And finally, the <constant> tag allows you to define a numeric (floating point) constant by name

for use in place of numeric values (<posx>, height="" etc.) would otherwise be used. This allows

alignment of items using the same position values which can then easily be altered in one place.

4 The Window XML Files

The other xml files each define the skin for a single window. They all have the same basic

layout, allowing you to place different controls on the window, and define how navigation

should operate.

A list of all window .xml files and what they represent may be found in Apendix I: List of

Windows.

The important thing to remember is that each window has a unique identifying number (id). This

is how XBMC identifies the window from within the source code.

Page 10: XBMC Skinning Manual - XBMC1

Furthermore, many of the controls within each window should have a unique id as well, unless

they're just used as images or labels where navigation is unimportant and XBMC does not need

to be able to identify them uniquely. The window id's are all listed in the Apendix I: List of

Windows.

The structure of the window .xml files can be found below in the Window Structure.

5 addon.xml

See also: addon.xml

6 Windows

6.1 Window Structure

6.2 About the Window XML Files

Each window in an XBMC skin is represented by a single .xml file. See here for a list of the

standard windows and links to their .xml files.

Each .xml file has the same basic structure – it starts with some heading information that pertains

to the window as a whole, and then contains a <controls> block within which all the controls that

describe the window are defined.

6.3 Window Header

<window>

<onload>RunScript(script.foobar)</onload>

<onunload>SetProperty(foo,bar)</onunload>

<defaultcontrol always="false">2</defaultcontrol>

<allowoverlay>yes</allowoverlay>

<backgroundcolor>0xff00ff00</backgroundcolor>

<views>50,51,509,510</views>

<visible>Window.IsActive(Home)</visible>

<animation effect="fade" time="100">WindowOpen</animation>

<animation effect="slide" end="0,576" time="100">WindowClose</animation>

<zorder>1</zorder>

<coordinates>

<posx>40</posx>

<posy>50</posy>

<origin x="100" y="50">Window.IsActive(Home)</origin>

</coordinates>

<previouswindow>MyVideos</previouswindow>

<controls>

<control>

</control>

....

Page 11: XBMC Skinning Manual - XBMC1

</controls>

</window>

One thing to note is that all tag names are lower case. XML tag names are case sensitive!

The header contains the following tags:

onload

Optional: the build-in function to execute when the window opens

onunload

Optional: the build-in function to execute when the window closes

defaultcontrol

This specifies the default control of the window. This is the id of the control that will

receive focus when the window is first opened. Note that most XBMC windows save the

current focus when you leave the window, and will return to the last focused item when

you return to a window. This behaviour can be stopped by specifying the attribute

always="true".

backgroundcolor

Specifies whether the window needs clearing prior to rendering, and if so which colour to

use. Defaults to clearing to black. Set to 0 (or 0x00000000) to have no clearing at all. If

your skin always renders opaque textures over the entire screen (eg using a backdrop

image or multiple backdrop images) then setting the background color to 0 is the most

optimal value and may improve performance significantly on slow GPUs.

allowoverlay

Setting this tag to true, or yes, indicates that the music or video overlay may be shown

when this window is active. If this tag is not present, the state of the previous (or parent)

window is used.

visible

Specifies the conditions under which a dialog will be visible. XBMC evaluates this at

render time, and shows or hides a dialog depending on the evaluation of this tag. See here

for more details. Applies only to <type>dialog</type>.

animation

Specifies the animation effect to perform when opening or closing the window. See here

for more details.

zorder

This specifies the “depth” that the window should be drawn at. Windows with higher

zorder are drawn on top of windows with lower z-order. All dialogs by default have

zorder 1, so if you have a particular dialog that you want underneath all others, give it a

zorder of 0. (Note that the normal render order is: The base window, then the overlays

(music + video), then dialogs. <zorder> only effects the rendering of the dialogs.

coordinates

This block is used to specify how XBMC should compute the coordinates of all controls.

posx

Sets the horizontal “origin” position of the window. Defaults to 0 if not present.

posy

Sets the vertical “origin” position of the window. Defaults to 0 if not present.

origin

Page 12: XBMC Skinning Manual - XBMC1

Sets a conditional origin for the window. The window will display at (x,y) whenever the

origin condition is met. You can have as many origin tags as you like – they are evaluated

in the order present in the file, and the first one for which the condition is met wins. If

none of the origin conditions are met, we fall back to the <posx> and <posy> tags.

previouswindow

This can be used to specify a window to force XBMC to go to on press of the Back

button. Normally XBMC keeps a “window stack” of previous windows to handle this.

This tag allows you to override this behaviour. The value is the name of the window.

views

This tag lets you use view id's beyond 50 to 59 it also lets you set the order in which they

cycle with the change view button in the skin. Only useful in My<Foo>.xml windows.

controls

This is the block the defines all controls that will appear on this window.

6.3.1 The Different Types of Controls

XBMC supports many different types of controls.

Click here for the control types and what they all do.

Some of these controls are required on specific windows, as they're necessary for that window to

perform it's duty, or, the contents of the control are only valid on a particular window. The

mandatory controls for each window are listed here. While the controls are mandatory, you can

ofcourse move them about and change their appearance within the windows to your hearts

content!

6.3.2 Adding Extra Windows

All of the windows in the window list are defined within the executeable of XBMC itself, as

most of them have a specific purpose. However, the skinner may add extra windows as and when

they are needed or wanted. The only restriction to this is that only controls that do not require

specific source code to operate can be used. This is not too much of a restriction though, as many

skinners have found out.

To add an extra window, all you need to do is design up the window's .xml file in the usual way,

assign it an <id> outside of the ones defined in the window list, and then name the file

customN.xml, where N is a number. You can have as many as you like, as long as they have

unique <id>'s, and are named differently. Then just define the <type> of window you want, the

coordinate system and so on, add the controls and setup the navigation. To activate your window,

you can do it by adding a button control elsewhere in the skin, or you can get it to popup on a

press of the controller or remote via keymap.xml and so on. Basically you just need to run

XBMC.ActivateWindow(id) from a suitable place.

7 Controls

Page 13: XBMC Skinning Manual - XBMC1

Controls are the substance of your skin. They define everything from buttons, to text labels, to

visualization placement. This portion of the manual will explain each and every control in detail.

7.1 Label Control

The label control is used for displaying text in XBMC. You can choose the font, size, colour,

location and contents of the text to be displayed.

7.1.1 Example

<control type="label" id="1">

<description>My First label</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<visible>true</visible>

<align>center</align>

<aligny>center</aligny>

<scroll>false</scroll>

<label>6</label>

<info>MusicPlayer.Artist</info>

<number></number>

<angle>30</angle>

<haspath>false</haspath>

<font>font14</font>

<textcolor>FFB2D4F5</textcolor>

<shadowcolor>ff000000</shadowcolor>

<wrapmultiline>false</wrapmultiline>

<scrollspeed>50</scrollspeed>

<scrollsuffix> - </scrollsuffix>

</control>

7.1.2 Auto Size Labels

Wrapping your label in a grouplist with the auto width and appropriate minium and maximum

values. Allows the labels width to dynamically change relevalant to how long the label text is.

This allows a image or other control to be alligned to the right of the actual label text no matter

how wide the label is.

<width min="29" max="200">auto</width>

7.1.3 Multi-Line Labels

If you want your label control to span multiple lines, you can insert a new line character in your

label. For example:

<label>This will be on the first line[CR]And this will be on the second

line</label>

Page 14: XBMC Skinning Manual - XBMC1

Also, if you want your label control to conform to the <width> parameter, but still want to be

able to give it more content than will fit on one line, then setting:

<wrapmultiline>true</wrapmultiline>

will cause the text to be cut up (at the spaces in the text) onto multiple lines. Note that if a single

word is larger than <width> then it will not be cut, and will still overflow.

7.1.4 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

Tag Description

align Can be left, right, or center. Aligns the text within the given label <width>.

Defaults to left

aligny Can be top or center. Aligns the text within its given label <height>. Defaults to

top

scroll When true, the text will scroll if longer than the label's <width>. If false, the text

will be truncated. Defaults to false.

label

Specifies the text which should be drawn. You should specify an entry from the

strings.xml here (either the XBMC strings.xml or your skin's strings.xml file),

however you may also hardcode a piece of text also if you wish, though ofcourse

it will not be localisable. You can use the full label formatting syntax and you

may also specify more than one piece of information here by using the $INFO

and $LOCALIZE formats.

info Specifies the information that should be presented. XBMC will auto-fill in this

info in place of the <label>. See here for more information.

number

Specifies a number that should be presented. This is just here to allow a skinner

to use a number rather than a text label (as any number given to <label> will be

used to lookup in strings.xml)

Page 15: XBMC Skinning Manual - XBMC1

angle The angle the text should be rendered at, in degrees. A value of 0 is horizontal.

haspath Specifies whether or not this label is filled with a path. Long paths are shortened

by compressing the file path while keeping the actual filename full length.

font Specifies the font to use from the font.xml file.

textcolor Specifies the color the text should be, in hex AARRGGBB format, or a name

from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text, in AARRGGBB format, or a

name from the colour theme.

wrapmultiline If true, any text that doesn't fit on one line will be wrapped onto multiple lines.

scrollspeed Scroll speed of text in pixels per second. Defaults to 60.

scrollsuffix Specifies the suffix used in scrolling labels. Defaults to " | ".

7.2 See also

Development:

Add-on development

Skinning

7.3 Fade Label Control

The fade label control is used for displaying multiple pieces of text in the same space in XBMC.

You can choose the font, size, colour, location and contents of the text to be displayed. The first

piece of information to display fades in over 50 frames, then scrolls off to the left. Once it is

finished scrolling off screen, the second piece of information fades in and the process repeats. A

fade label control is not supported in a list container.

7.3.1 Example

Page 16: XBMC Skinning Manual - XBMC1

<control type="fadelabel" id="1">

<description>My First fadelabel</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<visible>true</visible>

<scroll>false</scroll>

<scrollout>true</scrollout>

<pauseatend>200</pauseatend>

<label>6</label>

<info>MusicPlayer.Genre</info>

<info>MusicPlayer.Artist</info>

<info>MusicPlayer.Album</info>

<info>MusicPlayer.Year</info>

<font>font14</font>

<textcolor>FFB2D4F5</textcolor>

<textoffsetx>20</textoffsetx>

</control>

7.3.2 Tag Descriptions

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

label

Specifies the text which should be drawn. You should specify an entry from

the strings.xml here, however you may also specify a piece of text yourself

if you wish, though ofcourse it will not be localisable. You may also

specify more than one piece of information here by using the $INFO and

$LOCALIZE formats.

info Specifies the information that should be presented. XBMC will auto-fill in

this info in place of the <label>. See here for more information.

font Specifies the font to use from the font.xml file.

textcolor Specified the color the text should be, in hex AARRGGBB format, or a

name from the colour theme.

textoffsetx

Specify the offset from the left edge that the text should be rendered at

when static (not scrolling). The scrolling text will still scroll using the full

<width> of the control.

shadowcolor Specifies the color of the drop shadow on the text, in AARRGGBB format,

or a name from the colour theme.

angle Specifies the angle at which the text should be drawn, measured counter

clockwise from the horizontal.

scrollout If set to False the fadelabel will only scroll until the last char is to the right

side of the width of the fadelabel instead of all the way out to the left.

pauseatend Specifies the time that the text will wait until it fades away before it scrolls

again or moves to the next item.

Page 17: XBMC Skinning Manual - XBMC1

resetonlabelchange

If set to false the fadelabel will not reset the scrolling offset when the

label's content changes. Useful if you have things such as the play time (in

seconds) inside a fadelabel. Defaults to true.

scrollspeed Scroll speed of text in pixels per second. Defaults to 60.

7.4 See also

Development:

Add-on development

Skinning

7.5 Button Control

The button control is used for creating push buttons in XBMC. You can choose the position,

size, and look of the button, as well as choosing what action(s) should be performed when

pushed.

7.5.1 Example

<control type="button" id="1">

<description>My first button control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<colordiffuse>FFFFFFFF</colordiffuse>

<texturefocus>myfocustexture.png</texturefocus>

<texturenofocus>mynormaltexture.png</texturenofocus>

<label>29</label>

<font>font12</font>

<textcolor>FFFFFFFF</textcolor>

<focusedcolor>FFFFFFFF</focusedcolor>

<disabledcolor>80FFFFFF</disabledcolor>

<align></align>

<aligny></aligny>

<textoffsetx></textoffsetx>

<textoffsety></textoffsety>

<pulseonselect></pulseonselect>

<onclick>XBMC.ActivateWindow(MyVideos)</onclick>

<onfocus>-</onfocus>

<onunfocus>-</onunfocus>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

</control>

Page 18: XBMC Skinning Manual - XBMC1

7.5.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturefocus Specifies the image file which should be displayed when the button has focus.

See here for additional information about textures.

texturenofocus Specifies the image file which should be displayed when the button does not

have focus.

label The label used on the button. It can be a link into strings.xml, or an actual text

label.

font Font used for the button label. From fonts.xml.

textcolor Color used for displaying the button label. In AARRGGBB hex format, or a

name from the colour theme.

focusedcolor Color used for the button label when the button has in focus. In AARRGGBB

hex format or a name from the colour theme.

disabledcolor Color used for the button label if the button is disabled. In AARRGGBB hex

format or a name from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text, in AARRGGBB format, or a

name from the colour theme.

angle The angle the text should be rendered at, in degrees. A value of 0 is horizontal.

align Label horizontal alignment on the button. Defaults to left, can also be center or

right.

aligny Label vertical alignment on the button. Defaults to top, can also be center.

textoffsetx Amount to offset the label from the left (or right) edge of the button when using

left or right alignment.

textoffsety Amount to offset the label from the top edge of the button when using top

alignment.

textwidth Will truncate any text that's too long.

onclick

Specifies the action to perform when the button is pressed. Should be a built in

function. See here for more information. You may have more than one

<onclick> tag, and they'll be executed in sequence.

onfocus

Specifies the action to perform when the button is focused. Should be a built in

function. The action is performed after any focus animations have completed.

See here for more information.

onunfocus Specifies the action to perform when the button loses focus. Should be a built in

function.

Page 19: XBMC Skinning Manual - XBMC1

7.6 See also

Development:

Add-on development

Skinning

7.7 Multiselect Control

The multiselect control is used for creating a single line of text with multiple selectable pieces of

text that can perform various actions. You can choose the position, size, and look of the text and

highlights as well as choosing what action(s) should be performed when items are selected.

7.7.1 Example

<control type="multiselect" id="13">

<description>My first multiselect control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<texturefocus>myfocustexture.png</texturefocus>

<texturenofocus>mynormaltexture.png</texturenofocus>

<label>[ONCLICK Shutdown]Shutdown[/ONCLICK] or [ONCLICK

Reboot]Reboot[/ONCLICK] XBMC</label>

<font>font12</font>

<textcolor>FFFFFFFF</textcolor>

<disabledcolor>80FFFFFF</disabledcolor>

<aligny>center</aligny>

<textoffsetx></textoffsetx>

<textoffsety></textoffsety>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

</control>

7.7.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturefocus

Specifies the image file which should be displayed when a selectable item has

focus. It is sized to fit the text, and <textoffsetx> and <textoffsety> are used to

space out around the text. See here for additional information about textures.

texturenofocus Specifies the image file which should be displayed behind any selectable text.

label The label used. Selectable text is surrounded in [ONCLICK

Page 20: XBMC Skinning Manual - XBMC1

action]text[/ONCLICK] blocks. You can use the full label formatting syntax as

well as info labels.

font Font used for the button label. From fonts.xml.

textcolor Color used for displaying the standard label. In AARRGGBB hex format, or a

name from the colour theme.

focusedcolor Color used for the selected text when an item has focus. In AARRGGBB hex

format or a name from the colour theme.

disabledcolor Color used for the text when the control is disabled. In AARRGGBB hex format

or a name from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text, in AARRGGBB format, or a

name from the colour theme.

aligny Label vertical alignment. Defaults to top, can also be center.

textoffsetx Amount to offset the highlight textures from the left and right edges of the

selectable text.

textoffsety Amount to offset the label from the top edge of the control when using top

alignment.

7.8 See also

Development:

Add-on development

Skinning

7.9 Image Control

The image control is used for displaying images in XBMC. You can choose the position, size,

transparency and contents of the image to be displayed.

7.9.1 Example

<control type="image" id="1">

<description>My first image control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<colordiffuse>FFFFFFFF</colordiffuse>

<fadetime>200</fadetime>

<texture border="5" flipy="true" flipx="false">mytexture.png</texture>

<bordertexture border="5">mybordertexture.png</bordertexture>

<bordersize>5</bordersize>

<texture>$INFO[MusicPlayer.Cover]</texture>

Page 21: XBMC Skinning Manual - XBMC1

<aspectratio>keep</aspectratio>

</control>

7.9.2 Image Size and Type Restrictions

For the <texture> tags, and for all <texture> tags in other controls, there is a small set of rules

that you should follow if at all possible:

7.9.2.1 Size

Images can be any size, though some graphics cards allow only power of 2 textures, so this may

be a consideration. For the most case, it doesn't really matter what size things are - XBMC will

quite happily load most files.

7.9.2.2 Formats

If you wish to use transparency, then use PNG. It is suggested that you use PNG and JPG as

much as possible. Note that once the images are injected into Textures.xbt, they are not stored as

JPG or PNG – rather they are stored in a native format used for GPUs for faster loading, such as

ARGB or DXTc textures. The size of the images (in kb) is therefore not as important as the size

of the images in pixels – so feel free to store them in a lossless (eg PNG) manner if you wish.

The only exception to this is if you require an animated texture. In this case, we support only

animated GIF. There are also some animated gifs that may not work. Use ImageReady CS and

make sure you set the gif-anim to “restore to background” and they should work fine.

7.9.3 Available Tags and Attributes

In addition to the default control tags, the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

Tags Definition

aspectratio This specifies how the image will be drawn inside the box defined by <width>

and <height>. See here for more information.

texture Specifies the image file which should be displayed. See here for additional

information about textures.

bordertexture Specifies the image file which should be displayed as a border around the

image. Use the <bordersize> to specify the size of the border. The

Page 22: XBMC Skinning Manual - XBMC1

<width>,<height> box specifies the size of the image plus border.

bordersize

Specifies the size of the border. A single number specifies the border should be

the same size all the way around the image, whereas a comma separated list of

4 values indicates left,top,right,bottom values.

info Specifies the information that this image control is presenting. XBMC will

select the texture to use based on this tag. See here for more information.

fadetime

This specifies a crossfade time that will be used whenever the underlying

<texture> filename changes. The previous image will be held until the new

image is ready, and then they will be crossfaded. This is particularly useful for

a large thumbnail image showing the focused item in a list, or for fanart or

other large backdrops.

background

For images inside a container, you can specify background="true" to load the

textures in a background worker thread. See here for additional information

about background loading.

7.10 See also

Development:

Add-on development

Skinning

7.11 MultiImage Control

The MultiImage control is used for displaying a slideshow of images from a folder in XBMC.

You can choose the position and size of the slideshow, as well as timing information.

7.11.1 Example

<control type="multiimage" id="1">

<description>My first slideshow control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<imagepath>myimagepath</imagepath>

Page 23: XBMC Skinning Manual - XBMC1

<info></info>

<timeperimage>5000</timeperimage>

<fadetime>2000</fadetime>

<pauseatend>10000</pauseatend>

<randomize>true</randomize>

<loop>no</loop>

<aspectratio>stretch</aspectratio>

</control>

7.11.2 Image Size and Type Restrictions

For the <texture> tags, and for all <texture> tags in other controls, there is a small set of rules

that you should follow if at all possible:

7.11.2.1 Formats

If you wish to use full 8 bit transparency, then use PNG. If you only need a single transparent

colour, then you can specify this in the <colorkey> tag, so any image will be fine. It is suggested

that you use PNG and JPG as much as possible. The size of the images (in kb) is therefore not as

important as the size of the images in pixels – so feel free to store them in a lossless (eg PNG)

manner if you wish.

The only exception to this is if you require an animated texture. In this case, we only support

animated GIF. There are also SOME animated gifs that may not work. Use ImageReady CS and

make sure you set the gif-anim to “restore to background” and they should work fine.

7.11.3 Available Tags and Attributes

In addition to the default control tags, the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

imagepath

Specifies the path containing the images to use for the slideshow. XBMC will

first look inside the compressed Textures.xbt file for images, and then will look

in the actual folder. The path is relative to the media/ folder if it is not specified

completely. It must be a local path (ie on the local harddisk) for speed purposes.

info Specifies the information that this image control is presenting. XBMC will select

the texture to use based on this tag. See here for more information.

timeperimage Time in milliseconds that an image is shown for.

fadetime Time in milliseconds to fade between images.

Page 24: XBMC Skinning Manual - XBMC1

pauseatend

Time in milliseconds to pause (in addition to <timeperimage>) on the last image

at the end of a complete cycle through the images. Only useful if <loop> is set to

yes.

loop If set to no, the last image will display indefinitely. Setting it to yes will loop

around once they reach the last image. Defaults to yes.

aspectratio This specifies how the image will be drawn inside the box defined by <width>

and <height>. See here for more info

7.12 See also

Development:

Add-on development

Skinning

7.13 Radio button Control

The radio button control is used for creating push button on/off settings in XBMC. You can

choose the position, size, and look of the button. When the user clicks on the radio button, the

state will change, toggling the extra textures (textureradioon and textureradiooff). Used for

settings controls.

7.13.1 Example

<control type="radiobutton" id="2">

<description>My first radiobutton control</description>

<type>radiobutton</type>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<colordiffuse>FFFFFFFF</colordiffuse>

<texturefocus>myfocustexture.png</texturefocus>

<texturenofocus>mynormaltexture.png</texturenofocus>

<textureradioon>myradiobutton.png</textureradioon>

<textureradiooff>myradiobutton_nf.png</textureradiooff>

<selected>Player.Paused</selected>

<onclick>PlayerControls(Pause)</onclick>

<label>29</label>

<font>font12</font>

<textcolor>FFFFFFFF</textcolor>

Page 25: XBMC Skinning Manual - XBMC1

<focusedcolor>FFFFFFFF</focusedcolor>

<disabledcolor>80FFFFFF</disabledcolor>

<align>left</align>

<aligny>center</aligny>

<textoffsetx>4</textoffsetx>

<textoffsety>5</textoffsety>

<pulseonselect>false</pulseonselect>

<onfocus>-</onfocus>

<onunfocus>-</onunfocus>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

</control>

7.13.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturefocus Specifies the image file which should be displayed when the button has focus.

See here for additional information about textures.

texturenofocus Specifies the image file which should be displayed when the button does not

have focus.

textureradioon

Specifies the image file which should be displayed for the radio button portion

when it's the button is on. This texture is positioned on the right of the button –

it's positioned 24 pixels from the right edge of the button, and 8 pixels above

the center vertically.

textureradiooff Specifies the image file which should be displayed for the radio button portion

when the button is off.

label The label used on the button. It can be a link into strings.xml, or an actual text

label.

font Font used for the button label. From fonts.xml.

textcolor Color used for displaying the button label. In AARRGGBB hex format, or a

name from the colour theme.

focusedcolor Color used for the button label when the button has in focus. In AARRGGBB

hex format or a name from the colour theme.

disabledcolor Color used for the button label if the button is disabled. In AARRGGBB hex

format, or a name from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text, in AARRGGBB format, or a

name from the colour theme.

align Label horizontal alignment on the button. Defaults to left, can also be center or

right.

Page 26: XBMC Skinning Manual - XBMC1

aligny Label vertical alignment on the button. Defaults to top, can also be center.

textoffsetx Amount to offset the label from the left (or right) edge of the button when using

left or right alignment.

textoffsety Amount to offset the label from the top edge of the button when using top

alignment.

selected The boolean condition that when met will cause the control to become selected.

see here for more information.

onclick The function to perform when the radio button is clicked. Should be a built in

function.

radioposx X offset of the dot or radio button itself

radioposy Y offset of the dot or radio button itself

radiowidth Width in Pixels of the dot or radio button itself

radioheight Height in Pixels offset of the dot or radio button itself

onfocus

Specifies the action to perform when the button is focused. Should be a built in

function. The action is performed after any focus animations have completed.

See here for more information.

onunfocus Specifies the action to perform when the button loses focus. Should be a built in

function.

7.14 See also

Development:

Add-on development

Skinning

7.15 Select button control

The select button control is used for creating a push button that hides multiple options in XBMC.

You can choose the position, size, and look of the button, as well as what it looks like when it's

pushed in (option arrows etc.)

When the button is pushed, two arrows pop up allowing you to alter the contents of the button

(thus select different options). Used to alter the current View mode in My Videos and My Music.

7.15.1 Example

<control type="selectbutton" id="4">

<description>My first select button control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

Page 27: XBMC Skinning Manual - XBMC1

<height>200</height>

<visible>true</visible>

<colordiffuse>FFFFFFFF</colordiffuse>

<texturefocus>myfocustexture.png</texturefocus>

<texturenofocus>mynormaltexture.png</texturenofocus>

<texturebg>mybgtexture.png</texturebg>

<textureleft>mylefttexture.png</textureleft>

<textureleftfocus>myleftfocustexture.png</textureleftfocus>

<textureright>myrighttexture.png</textureright>

<texturerightfocus>myrightfocustexture.png</texturerightfocus>

<label>29</label>

<font>font12</font>

<textcolor>FFFFFFFF</textcolor>

<disabledcolor>80FFFFFF</disabledcolor>

<align></align>

<alignY></alignY>

<textoffsetx></textoffsetx>

<textoffsety></textoffsety>

<pulseonselect>false</pulseonselect>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

</control>

7.15.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturefocus Specifies the image file which should be displayed when the button has

focus. See here for additional information about textures.

texturenofocus Specifies the image file which should be displayed when the button does not

have focus.

texturebg This texture is rendered in the background, replacing the texturefocus and

texturenofocus textures, when the button is pushed in.

textureleft The texture of the left arrow item when it's not focused. Displayed at the left

of the button when it is selected.

textureleftfocus The texture of the left arrow item when it's focused. Displayed at the left of

the button when it is selected.

textureright The texture of the right arrow item when it's not focused. Displayed at the

right of the button when it is selected.

texturerightfocus The texture of the right arrow item when it's focused. Displayed at the right

of the button when it is selected.

label The label used on the button. It can be a link into strings.xml, or an actual

text label.

Page 28: XBMC Skinning Manual - XBMC1

font Font used for the button label. From fonts.xml.

textcolor Color used for displaying the button label. In AARRGGBB hex format, or a

name from the colour theme.

disabledcolor Color used for the button label if the button is disabled. In AARRGGBB hex

format, or a name from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text. In AARRGGBB hex

format, or a name from the colour theme.

align Label horizontal alignment on the button. Defaults to left, can also be center

or right.

aligny Label vertical alignment on the button. Defaults to top, can also be center.

textoffsetx Amount to offset the label from the left (or right) edge of the button when

using left or right alignment.

textoffsety Amount to offset the label from the top edge of the button when using top

alignment.

7.16 See also

Development:

Add-on development

Skinning

7.17 Toggle button control

The toggle button control is used for creating buttons that have 2 states. You can choose the

position, size, and look of the button. When the user clicks on the toggle button, the state will

change, toggling the extra textures (alttexturefocus and alttexturenofocus). Used for controls

where two states are needed (pushed in and pushed out for instance).

7.17.1 Example

<control type="togglebutton" id="25">

<description>My first togglebutton control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<colordiffuse>FFFFFFFF</colordiffuse>

<texturefocus>myfocustexture.png</texturefocus>

<texturenofocus>mynormaltexture.png</texturenofocus>

<alttexturefocus>myselectedTexture.png</alttexturefocus>

<alttexturenofocus>myselectedTexture_nf.png</alttexturenofocus>

<usealttexture>!Player.IsPaused</usealttexture>

Page 29: XBMC Skinning Manual - XBMC1

<label>29</label>

<altlabel>29</altlabel>

<font>font12</font>

<textcolor>FFFFFFFF</textcolor>

<disabledcolor>80FFFFFF</disabledcolor>

<align>left</align>

<aligny>center</aligny>

<textoffsetx>4</textoffsetx>

<textoffsety>5</textoffsety>

<pulseonselect>false</pulseonselect>

<onclick>Player.Pause</onclick>

<onfocus>-</onfocus>

<onunfocus>-</onunfocus>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

</control>

7.17.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturefocus Specifies the image file which should be displayed when the button has

focus. See here for additional information about texture tags.

texturenofocus Specifies the image file which should be displayed when the button does not

have focus.

alttexturefocus

Specifies the image file which should be displayed when the toggle button is

in it's selected state. This texture replaces the <texturefocus> texture when

the toggle button is selected.

alttexturenofocus Specifies the image file which should be displayed when the button is in it's

selected state but unfocused.

usealttexture

Specifies the conditions under which the Alternative Textures should be

shown. Some toggle button controls are handled by XBMC internally, but

any extra ones that the skinner has can be controlled using this tag. See here

for more information.

label The label used on the button. It can be a link into strings.xml, or an actual

text label.

altlabel The label used on the button. It can be a link into strings.xml, or an actual

text label.

font Font used for the button label. From fonts.xml.

textcolor Color used for displaying the button label. In AARRGGBB hex format, or a

name from the colour theme.

disabledcolor Color used for the button label if the button is disabled. In AARRGGBB hex

Page 30: XBMC Skinning Manual - XBMC1

format, or a name from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text. In AARRGGBB hex

format, or a name from the colour theme.

align Label horizontal alignment on the button. Defaults to left, can also be center

or right.

aligny Label vertical alignment on the button. Defaults to top, can also be center.

textoffsetx Amount to offset the label from the left (or right) edge of the button when

using left or right alignment.

textoffsety Amount to offset the label from the top edge of the button when using top

alignment.

onclick

Specifies the action to perform when the button is pressed. Should be a built

in function. See here for more information. You may have more than one

<onclick> tag, and they'll be executed in sequence.

onfocus

Specifies the action to perform when the button is focused. Should be a built

in function. The action is performed after any focus animations have

completed. See here for more information.

onunfocus Specifies the action to perform when the button loses focus. Should be a built

in function.

7.18 See also

Development:

Add-on development

Skinning

7.19 Spin Control

The spin control is used for when a list of options can be chosen (such as a page up/down

control). You can choose the position, size, and look of the spin control.

7.19.1 Example

<control type="spincontrol" id="14">

<description>My first spin control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<colordiffuse>FFFFFFFF</colordiffuse>

<textureup>myuptexture.png</textureup>

<textureupfocus>myupfocustexture.png</textureupfocus>

<texturedown>mydowntexture.png</texturedown>

Page 31: XBMC Skinning Manual - XBMC1

<texturedownfocus>mydownfocustexture.png</texturedownfocus>

<subtype>page</subtype>

<font>font12</font>

<textcolor>FFFFFFFF</textcolor>

<disabledcolor>80FFFFFF</disabledcolor>

<align></align>

<aligny></aligny>

<textoffsetx></textoffsetx>

<textoffsety></textoffsety>

<pulseonselect></pulseonselect>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

</control>

7.19.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

textureup Specifies the image file which should be displayed for the up arrow when it

doesn't have focus. See here for additional information about textures.

textureupfocus Specifies the image file which should be displayed for the up button when it

has focus.

texturedown Specifies the image file which should be displayed for the down button when

it is not focused.

texturedownfocus Specifies the image file which should be displayed for the down button when

it has focus.

font Font used for the button label. From fonts.xml.

textcolor Color used for displaying the label. In AARRGGBB hex format, or a name

from the colour theme..

disabledcolor Color used for the label if the control is disabled. In AARRGGBB hex

format, or a name from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text. In AARRGGBB format,

or a name from the colour theme.

subtype Defines what type of information the spinner holds. Can be int, float, text or

page. Defaults to text. Make sure you use page for a page control.

align Label horizontal alignment on the control. Defaults to right, can also be left.

aligny Label vertical alignment on the control. Defaults to top, can also be center.

textoffsetx Amount to offset the label from the left (or right) edge of the button when

using left or right alignment.

textoffsety Amount to offset the label from the top edge of the button when using top

Page 32: XBMC Skinning Manual - XBMC1

alignment.

7.20 See also

Development:

Add-on development

Skinning

7.21 Settings Spin Control

The settings spin control is used in the settings screens for when a list of options can be chosen

from using up/down arrows. You can choose the position, size, and look of the spin control. It is

basically a cross between the button control and a spin control. It has a label and focus and non

focus textures, as well as a spin control on the right.

7.21.1 Example

<control type="spincontrolex" id="12">

<description>My first settings spin control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<colordiffuse>FFFFFFFF</colordiffuse>

<texturefocus>myfocustexture.png</texturefocus>

<texturenofocus>mynofocustexture.png</texturenofocus>

<textureup>myuptexture.png</textureup>

<textureupfocus>myupfocustexture.png</textureupfocus>

<texturedown>mydowntexture.png</texturedown>

<texturedownfocus>mydownfocustexture.png</texturedownfocus>

<label>46</label>

<font>font12</font>

<textcolor>FFFFFFFF</textcolor>

<disabledcolor>80FFFFFF</disabledcolor>

<align></align>

<aligny></aligny>

<textoffsetx></textoffsetx>

<textoffsety></textoffsety>

<pulseonselect></pulseonselect>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

</control>

7.21.2 Available Tags

Page 33: XBMC Skinning Manual - XBMC1

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturefocus Specifies the image file which should be displayed for the control when it

has focus. See here for additional information about textures.

texturenofocus Specifies the image file which should be displayed for the control when it

doesn't focus.

textureup Specifies the image file which should be displayed for the up arrow when it

doesn't have focus. It is displayed to the left of the down arrow.

textureupfocus Specifies the image file which should be displayed for the up arrow when it

has focus.

texturedown

Specifies the image file which should be displayed for the down arrow when

it is not focused. It is displayed to the right of the up arrow so that it's right

edge is <textoffsetx> pixels away from the right edge of the control.

texturedownfocus Specifies the image file which should be displayed for the down arrow when

it has focus.

label Either a numeric reference into strings.xml (for localization), or a string that

will be shown on the left of the control.

font Font used for the controls label. From fonts.xml.

textcolor Color used for displaying the label. In AARRGGBB hex format, or a name

from the colour theme.

disabledcolor Color used for the label if the control is disabled. In AARRGGBB hex

format, or a name from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text. In AARRGGBB hex

format, or a name from the colour theme.

align Label horizontal alignment on the control. Defaults to left.

aligny Label vertical alignment on the control. Defaults to top, can also be center.

textoffsetx Amount to offset the label from the left (or right) edge of the button when

using left or right alignment.

textoffsety Amount to offset the label from the top edge of the button when using top

alignment.

7.22 See also

Development:

Add-on development

Skinning

Page 34: XBMC Skinning Manual - XBMC1

7.23 Slider Control

The slider control is used for things where a sliding bar best represents the operation at hand

(such as a volume control or seek control). You can choose the position, size, and look of the

slider control.

7.23.1 Example

<control type="slider" id="17">

<description>My first slider control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>30</height>

<visible>true</visible>

<texturesliderbar>mybackgroundtexture.png</texturesliderbar>

<textureslidernib>mydowntexture.png</textureslidernib>

<textureslidernibfocus>mydownfocustexture.png</textureslidernibfocus>

<info></info>

<action></action>

<controloffsetx></controloffsetx>

<controloffsety></controloffsety>

<pulseonselect></pulseonselect>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

</control>

7.23.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturesliderbar Specifies the image file which should be displayed in the background of

the slider control. See here for additional information about textures.

textureslidernib Specifies the image file which should be displayed for the slider nib.

textureslidernibfocus Specifies the image file which should be displayed for the slider nib

when it has focus.

controloffsetx

Amount to offset the slider background texture from the left edge of the

control. Only useful if a value is being rendered as well (ie in int or float

mode).

controloffsety Amount to offset the slider background texture from the top edge of the

control.

info Specifies the information that the slider controls. See here for more

information.

Page 35: XBMC Skinning Manual - XBMC1

action Can be 'volume' to adjust the volume or 'seek' to change the seek

position.

7.24 See also

Development:

Add-on development

Skinning

7.25 List Container

The list container is one of several containers used to display items from file lists in various

ways. The list container is very flexible - it's only restriction is that it is a list - i.e. a single

column or row of items. The layout of the items is very flexible and is up to the skinner.

7.25.1 Example

<control type="list" id="50">

<description>My first list container</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

<viewtype label="3D list">list</viewtype>

<orientation>vertical</orientation>

<pagecontrol>25</pagecontrol>

<scrolltime tween="sine" easing="out">200</scrolltime>

<itemlayout width="250" height="29">

<control type="image">

<posx>5</posx>

<posy>3</posy>

<width>22</width>

<height>22</height>

<info>ListItem.Icon</info>

</control>

<control type="label">

<posx>30</posx>

<posy>3</posy>

<width>430</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<align>left</align>

<info>ListItem.Label</info>

Page 36: XBMC Skinning Manual - XBMC1

</control>

<control type="label">

<posx>475</posx>

<posy>3</posy>

<width>300</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<textcolor>grey</textcolor>

<align>right</align>

<info>ListItem.Label2</info>

</control>

</itemlayout>

<focusedlayout height="29" width="250">

<control type="image">

<width>485</width>

<height>29</height>

<posx>0</posx>

<posy>0</posy>

<visible>Control.HasFocus(50)</visible>

<texture>list-focus.png</texture>

</control>

<control type="image">

<posx>5</posx>

<posy>3</posy>

<width>22</width>

<height>22</height>

<info>ListItem.Icon</info>

</control>

<control type="label">

<posx>30</posx>

<posy>3</posy>

<width>430</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<align>left</align>

<info>ListItem.Label</info>

</control>

<control type="label">

<posx>475</posx>

<posy>3</posy>

<width>300</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<textcolor>grey</textcolor>

<align>right</align>

<info>ListItem.Label2</info>

</control>

</focusedlayout>

</control>

Page 37: XBMC Skinning Manual - XBMC1

7.25.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

viewtype

The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide,

bigwrap, info and biginfo. The label attribute indicates the label that will be used

in the "View As" control within the GUI. It is localizable via strings.xml.

orientation The orientation of the list. Defaults to vertical.

pagecontrol Used to set the <id> of the page control used to control this list.

scrolltime

The time (in ms) to scroll from one item to another. By default, this is 200ms.

The list will scroll smoothly from one item to another as needed. Set it to zero to

disable the smooth scrolling. The scroll movement can be further adjusted by

selecting one of the available tween methods.

itemlayout

Specifies the layout of items in the list. Requires the height attribute set in a

vertical list, and the width attribute set for a horizontal list. The <itemlayout>

then contains as many label and image controls as required. See here for more

information.

focusedlayout

Specifies the layout of items in the list that have focus. Requires the height

attribute set in a vertical list, and the width attribute set for a horizontal list. The

<focusedlayout> then contains as many label and image controls as required. See

here for more information.

content

Used to set the item content that this list will contain. Allows the skinner to setup

a list anywhere they want with a static set of content, as a useful alternative to the

grouplist control. See here for more information

preloaditems Used in association with the background image loader. See here for more

information

7.26 See also

Page 38: XBMC Skinning Manual - XBMC1

Development:

Add-on development

Skinning

7.27 Wraplist Container

The wrap list container is one of several containers used to display items from file lists in various

ways. The wrap list container is the same as the List Container, with two exceptions:

1. The focused item is fixed.

2. The items "wrap" around once they reach the end.

As with all container controls, the layout of the items within the control is very flexible.

7.27.1 Example

<control type="wraplist" id="50">

<description>My first wraplist container</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

<viewtype label="3D list">list</viewtype>

<orientation>vertical</orientation>

<pagecontrol>25</pagecontrol>

<focusposition>3</focusposition>

<scrolltime tween="sine" easing="out">200</scrolltime>

<itemlayout width="250" height="29">

<control type="image">

<posx>5</posx>

<posy>3</posy>

<width>22</width>

<height>22</height>

<info>ListItem.Icon</info>

</control>

<control type="label">

<posx>30</posx>

<posy>3</posy>

<width>430</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<align>left</align>

<info>ListItem.Label</info>

</control>

Page 39: XBMC Skinning Manual - XBMC1

<control type="label">

<posx>475</posx>

<posy>3</posy>

<width>300</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<textcolor>grey</textcolor>

<align>right</align>

<info>ListItem.Label2</info>

</control>

</itemlayout>

<focusedlayout height="29" width="250">

<control type="image">

<width>485</width>

<height>29</height>

<posx>0</posx>

<posy>0</posy>

<visible>Control.HasFocus(50)</visible>

<texture>list-focus.png</texture>

</control>

<control type="image">

<posx>5</posx>

<posy>3</posy>

<width>22</width>

<height>22</height>

<info>ListItem.Icon</info>

</control>

<control type="label">

<posx>30</posx>

<posy>3</posy>

<width>430</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<align>left</align>

<info>ListItem.Label</info>

</control>

<control type="label">

<posx>475</posx>

<posy>3</posy>

<width>300</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<textcolor>grey</textcolor>

<align>right</align>

<info>ListItem.Label2</info>

</control>

</focusedlayout>

</control>

7.27.2 Available Tags

Page 40: XBMC Skinning Manual - XBMC1

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

viewtype

The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide,

bigwrap, info and biginfo. The label attribute indicates the label that will be used

in the "View As" control within the GUI. It is localizable via strings.xml.

orientation The orientation of the list. Defaults to vertical.

pagecontrol Used to set the <id> of the page control used to control this list.

scrolltime

The time (in ms) to scroll from one item to another. By default, this is 200ms.

The list will scroll smoothly from one item to another as needed. Set it to zero to

disable the smooth scrolling. The scroll movement can be further adjusted by

selecting one of the available tween methods.

focusposition

Specifies the index (from 0 -> number items displayable - 1) of the focused item.

The focused item doesn't move - as the user moves up and down (or left and

right) the items scroll instead.

itemlayout

Specifies the layout of items in the list. Requires the height attribute set in a

vertical list, and the width attribute set for a horizontal list. The <itemlayout>

then contains as many label and image controls as required. See here for more

information.

focusedlayout

Specifies the layout of items in the list that have focus. Requires the height

attribute set in a vertical list, and the width attribute set for a horizontal list. The

<focusedlayout> then contains as many label and image controls as required. See

here for more information.

content

Used to set the item content that this list will contain. Allows the skinner to setup

a list anywhere they want with a static set of content, as a useful alternative to the

grouplist control. See here for more information

7.28 See also

Page 41: XBMC Skinning Manual - XBMC1

Development:

Add-on development

Skinning

7.29 FixedList Container

The fixed list container is one of several containers used to display items from file lists in various

ways. The fixed list container is the same as the List Container, with one exception: the focused

item is fixed. Thus, moving up or down scrolls the items, not the focused position. As with all

container controls, the layout of the items within the control is very flexible.

<control type="fixedlist" id="50">

<description>My first fixed list container</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<onup>2</onup>

<ondown>3</ondown>

<onleft>1</onleft>

<onright>1</onright>

<viewtype label="3D list">list</viewtype>

<orientation>vertical</orientation>

<pagecontrol>25</pagecontrol>

<scrolltime tween="sine" easing="out">200</scrolltime>

<focusposition>4</focusposition>

<itemlayout width="250" height="29">

<control type="image">

<posx>5</posx>

<posy>3</posy>

<width>22</width>

<height>22</height>

<info>ListItem.Icon</info>

</control>

<control type="label">

<posx>30</posx>

<posy>3</posy>

<width>430</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<align>left</align>

<info>ListItem.Label</info>

</control>

<control type="label">

<posx>475</posx>

<posy>3</posy>

<width>300</width>

<height>22</height>

<font>font13</font>

Page 42: XBMC Skinning Manual - XBMC1

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<textcolor>grey</textcolor>

<align>right</align>

<info>ListItem.Label2</info>

</control>

</itemlayout>

<focusedlayout height="29" width="250">

<control type="image">

<width>485</width>

<height>29</height>

<posx>0</posx>

<posy>0</posy>

<visible>Control.HasFocus(50)</visible>

<texture>list-focus.png</texture>

</control>

<control type="image">

<posx>5</posx>

<posy>3</posy>

<width>22</width>

<height>22</height>

<info>ListItem.Icon</info>

</control>

<control type="label">

<posx>30</posx>

<posy>3</posy>

<width>430</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<align>left</align>

<info>ListItem.Label</info>

</control>

<control type="label">

<posx>475</posx>

<posy>3</posy>

<width>300</width>

<height>22</height>

<font>font13</font>

<aligny>center</aligny>

<selectedcolor>green</selectedcolor>

<textcolor>grey</textcolor>

<align>right</align>

<info>ListItem.Label2</info>

</control>

</focusedlayout>

</control>

7.29.1 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

Page 43: XBMC Skinning Manual - XBMC1

viewtype

The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide,

bigwrap, info and biginfo. The label attribute indicates the label that will be used

in the "View As" control within the GUI. It is localizable via strings.xml.

orientation The orientation of the list. Defaults to vertical.

pagecontrol Used to set the <id> of the page control used to control this list.

scrolltime

The time (in ms) to scroll from one item to another. By default, this is 200ms.

The list will scroll smoothly from one item to another as needed. Set it to zero to

disable the smooth scrolling. The scroll movement can be further adjusted by

selecting one of the available tween methods.

focusposition

Specifies the focus position (from 0 -> number of displayable items - 1). The

focused position doesn't change - instead, the items move up or down (or left and

right) as focus changes.

itemlayout

Specifies the layout of items in the list. Requires the height attribute set in a

vertical list, and the width attribute set for a horizontal list. The <itemlayout>

then contains as many label and image controls as required. See here for more

information.

focusedlayout

Specifies the layout of items in the list that have focus. Requires the height

attribute set in a vertical list, and the width attribute set for a horizontal list. The

<focusedlayout> then contains as many label and image controls as required. See

here for more information.

content

Used to set the item content that this list will contain. Allows the skinner to setup

a list anywhere they want with a static set of content, as a useful alternative to the

grouplist control. See here for more information

preloaditems Used in association with the background image loader. See here for more

information

7.30 See also

Page 44: XBMC Skinning Manual - XBMC1

Development:

Add-on development

Skinning

7.31 Panel Container

The panel container is one of several containers used to display items from file lists in various

ways. The panel container is very flexible - it's essentially a multi-column list. The layout of the

items is very flexible and is up to the skinner.

7.31.1 Example

<control type="panel" id="52">

<posx>190</posx>

<posy>100</posy>

<width>485</width>

<height>425</height>

<onleft>9000</onleft>

<onright>60</onright>

<onup>52</onup>

<ondown>52</ondown>

<scrolltime tween="sine" easing="out">200</scrolltime>

<viewtype label="536">icon</viewtype>

<pagecontrol>60</pagecontrol>

<include>contentpanelslide</include>

<itemlayout height="141" width="120">

<control type="image">

<posx>10</posx>

<posy>10</posy>

<width>100</width>

<height>100</height>

<info>ListItem.Icon</info>

</control>

<control type="image">

<posx>80</posx>

<posy>75</posy>

<width>32</width>

<height>32</height>

<info>ListItem.Overlay</info>

</control>

<control type="label">

<posx>60</posx>

<posy>115</posy>

<width>110</width>

<height>22</height>

<font>font13</font>

<selectedcolor>green</selectedcolor>

<align>center</align>

<info>ListItem.Label</info>

</control>

</itemlayout>

<focusedlayout height="141" width="120">

Page 45: XBMC Skinning Manual - XBMC1

<control type="image">

<width>110</width>

<height>110</height>

<posx>5</posx>

<posy>5</posy>

<texture>folder-focus.png</texture>

<animation effect="zoom" end="0,0,120,120"

time="100">focus</animation>

</control>

<control type="image">

<posx>10</posx>

<posy>10</posy>

<width>100</width>

<height>100</height>

<info>ListItem.Icon</info>

<animation effect="zoom" end="5,5,110,110"

time="100">focus</animation>

</control>

<control type="image">

<posx>80</posx>

<posy>75</posy>

<width>32</width>

<height>32</height>

<info>ListItem.Overlay</info>

<animation effect="slide" end="5,5"

time="100">focus</animation>

</control>

<control type="label">

<posx>60</posx>

<posy>120</posy>

<width>110</width>

<height>22</height>

<font>font13</font>

<selectedcolor>green</selectedcolor>

<align>center</align>

<info>ListItem.Label</info>

</control>

</focusedlayout>

</control>

7.31.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

viewtype

The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide,

bigwrap, info and biginfo. The label attribute indicates the label that will be used

in the "View As" control within the GUI. It is localizable via strings.xml.

orientation The orientation of the panel. Defaults to vertical.

Page 46: XBMC Skinning Manual - XBMC1

pagecontrol Used to set the <id> of the page control used to control this panel.

scrolltime

The time (in ms) to scroll from one item to another. By default, this is 200ms.

The panel will scroll smoothly from one item to another as needed. Set it to zero

to disable the smooth scrolling. The scroll movement can be further adjusted by

selecting one of the available tween methods.

itemlayout

Specifies the layout of items in the list. Requires both width and height attributes

set. The <itemlayout> then contains as many label and image controls as

required. See here for more information.

focusedlayout

Specifies the layout of items in the list that have focus. Requires both width and

height attributes set. The <focusedlayout> then contains as many label and image

controls as required. See here for more information.

content

Used to set the item content that this panel will contain. Allows the skinner to

setup a panel anywhere they want with a static set of content, as a useful

alternative to the grouplist control. See here for more information

preloaditems Used in association with the background image loader. See here for more

information

7.32 See also

Development:

Add-on development

Skinning

7.33 Progress Control

The progress control is used to show the progress of an item that may take a long time, or to

show how far through a movie you are. You can choose the position, size, and look of the

progress control.

7.33.1 Example

<control type="progress" id="12">

Page 47: XBMC Skinning Manual - XBMC1

<description>My first progress control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>30</height>

<visible>true</visible>

<reveal>false</reveal>

<texturebg>mybackgroundtexture.png</texturebg>

<lefttexture>mydowntexture.png</lefttexture>

<midtexture>mymidtexture.png</midtexture>

<righttexture>myrighttexture.png</righttexture>

<overlaytexture>myoverlaytexture.png</overlaytexture>

<info></info>

</control>

7.33.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

reveal If set to true the midtexture will reveal itself instead of stretching to file the gap

(works best when its the same size as texturebg)

texturebg Specifies the image file which should be displayed in the background of the

progress control. See here for additional information about textures.

lefttexture Specifies the image file which should be displayed for the left side of the

progress bar. This is rendered on the left side of the bar.

midtexture

Specifies the image file which should be displayed for the middle portion of the

progress bar. This is the “ fill” texture used to fill up the bar. It's positioned on

the right of the <lefttexture> texture, and fills the gap between the <lefttexture>

and <righttexture> textures, depending on how far progressed the item is.

righttexture Specifies the image file which should be displayed for the right side of the

progress bar. This is rendered on the right side of the bar.

overlaytexture

Specifies the image file which should be displayed over the top of all other

images in the progress bar. It is centered vertically and horizontally within the

space taken up by the background image.

info Specifies the information that the progress bar is reporting on. See here for more

information.

7.34 See also

Development:

Add-on development

Page 48: XBMC Skinning Manual - XBMC1

Skinning

7.35 Text Box

The text box is used for showing a large multipage piece of text in XBMC. You can choose the

position, size, and look of the text.

7.35.1 Example

<control type="textbox" id="2">

<description>My first text box control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

<colordiffuse>FFFFFFFF</colordiffuse>

<font>font13</font>

<textcolor>FFFFFFFF</textcolor>

<pulseonselect></pulseonselect>

<pagecontrol>13</pagecontrol>

<autoscroll delay="3000" time="1000"

repeat="10000">!Control.HasFocus(13)</autoscroll>

<label>Text to display goes here [CR] next line...</label>

</control>

7.35.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

font Font used for the items first label. From fonts.xml.

textcolor Color used for displaying the text. In AARRGGBB hex format, or a name from

the colour theme.

shadowcolor Specifies the color of the drop shadow on the text. In AARRGGBB format, or a

name from the colour theme.

pagecontrol Specifies the <id> of the page control used to control this textbox. The page

control can either be a Spin Control or a Scroll Bar Control.

Page 49: XBMC Skinning Manual - XBMC1

autoscroll

Specifies the timing and conditions of any autoscrolling this textbox should have.

Times are in milliseconds. The content is delayed for the given delay, then scrolls

at a rate of one line per time interval until the end. If the repeat tag is present, it

then delays for the repeat time, fades out over 1 second, and repeats. It does not

wrap or reset to the top at the end of the scroll. You can use any bool condition to

specify when autoscrolling should be allowed.

7.36 See also

Development:

Add-on development

Skinning

7.37 RSS feed Control

General topics Basic controls XBMC Skinning Manual

XBMC can display an RSS feed on the home screen of the default skin/interface (Confluence),

as well as any other skin that supports RSS feeds. By default, the RSS news feed is taken from

http://xbmc.org, but the feed can be changed to almost any RSS feed.

Note: Don't confuse the RSS ticker with RSS media source, which allows access to video

and/or audio RSS streams.

7.38 RSS ticker settings

The RSS ticker can be toggled on or off by going to Settings -> Appearance -> Skin -> Show

RSS news feed

Below this setting one can also change the RSS news feed address.

7.39 Technical documentation for skinners

Main page: Skin development

7.39.1 RSS control

The rss control is used for displaying scrolling RSS feeds from the internet in XBMC. You can

choose the font, size, colour, location and the RSS feed to be displayed.

Page 50: XBMC Skinning Manual - XBMC1

Example

<control type="rss" id="1">

<description>My First RSS control</description>

<posx>80</posx>

<posy>60</posy>

<width>500</width>

<visible>true</visible>

<font>font14</font>

<textcolor>FFB2D4F5</textcolor>

<headlinecolor>FFFFFFFF</headlinecolor>

<titlecolor>FF655656</titlecolor>

</control>

7.39.2 Available Tags and attributes

In addition to the default control tags, the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

id This refers to the feedset to be displayed. This is the id reference to the <set>

section in RssFeeds.xml (see below):

font Specifies the font to use from the font.xml file.

textcolor Specified the color the text should be. In hex AARRGGBB format, or a name

from the colour theme.

shadowcolor Specifies the color of the drop shadow on the text. In AARRGGBB format, or a

name from the colour theme.

headlinecolor Specified the color that any highlighted text should be. In hex AARRGGBB

format, or a name from the colour theme.

titlecolor Specified the color the titles of the feeds should be. In hex AARRGGBB format,

or a name from the colour theme.

scrollspeed Scroll speed of text in pixels per second.

Page 51: XBMC Skinning Manual - XBMC1

7.39.3 RssFeeds.xml

Main page: RssFeeds.xml

The actual content of the RSS feed is defined in the RssFeeds.xml file stored in the user's profile.

Here is an example :

<rssfeeds>

<set id="1">

<feed updateinterval="30">http://feeds.feedburner.com/XboxScene</feed>

<feed updateinterval="30">http://feeds.wired.com/wired/topheadlines</feed>

</set>

<set id="2">

<feed updateinterval="30">http://www.cnet.co.uk/feeds/public/rss_news_10.htm</feed>

</set>

</rssfeeds>

As can be seen, each feedset has an id attribute – this is what we are referencing in the <id>

attribute of the control. There can be more than one <set> defined, and more than one <feed> per

set. The <feed>'s must be escaped so that they're xml-safe (ie replace & with & etc.). Each feed

in the set runs through in the order they are defined.

7.40 See also

RssFeeds.xml

Development:

Add-on development

Skinning

7.41 Visualisation Control

The visualisation control is used for displaying those funky patterns that jump to the music in

XBMC. You can choose the position, and size of the visualisation displayed. Note that the

control is only rendered if music is being played.

7.41.1 Example

<control type="visualisation" id ="3">

<description>My first visualisation control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

Page 52: XBMC Skinning Manual - XBMC1

</control>

7.41.2 Available Tags

Only the default control tags are applicable to this control.

7.42 See also

Development:

Add-on development

Skinning

7.43 Video Control

The video control is used for displaying the currently playing video elsewhere in the XBMC

GUI. You can choose the position, and size of the video displayed. Note that the control is only

rendered if video is being played.

7.43.1 Example

<control type="videowindow" id="2">

<description>My first video control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<visible>true</visible>

</control>

7.43.2 Available Tags

Only the default control tags are applicable to this control.

7.44 See also

Development:

Add-on development

Skinning

7.45 Mover Control

The mover control is used for the screen calibration portions of XBMC. You can choose the size

and look of the mover control.

Page 53: XBMC Skinning Manual - XBMC1

7.45.1 Example

<control type="mover" id="3">

<description>My first mover control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<texturefocus>mytexture.png</texturefocus>

<texturenofocus>mytexture.png</texturenofocus>

<pulseonselect>true</pulseonselect>

</control>

7.45.2 Available Tags

In addition to the default control tags, the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturefocus Specifies the image file which should be displayed when the mover has focus.

See here for additional information about textures.

texturenofocus Specifies the image file which should be displayed when the mover does not

have focus.

7.46 See also

Development:

Add-on development

Skinning

7.47 Resize Control

The resize control is used to specify an area of changeable ratio for use in the screen calibration

portion of XBMC. You can choose the size, and look of the resizer.

7.47.1 Example

<control type="resize" id="3">

<description>My first resize control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<height>200</height>

<texturefocus>mytexture.png</texturefocus>

<texturenofocus>mytexture.png</texturenofocus>

<pulseonselect>true</pulseonselect>

</control>

Page 54: XBMC Skinning Manual - XBMC1

7.47.2 Available Tags

In addition to the default control tags, the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

texturefocus Specifies the image file which should be displayed when the resizer has focus.

See here for additional information about textures.

texturenofocus Specifies the image file which should be displayed when the resizer does not

have focus.

7.48 See also

Development:

Add-on development

Skinning

7.49 Edit Control

The edit control allows a user to input text in XBMC. You can choose the font, size, colour,

location and header of the text to be displayed.

7.49.1 Example

<control type="editcontrol" id="1">

<description>My First edit control</description>

<posx>80</posx>

<posy>60</posy>

<width>250</width>

<visible>true</visible>

<aligny>center</aligny>

<label>Search</label>

<hinttext>Enter search string</hinttext>

<font>font14</font>

<textcolor>FFB2D4F5</textcolor>

</control>

7.49.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

aligny Can be top or center. Aligns the text within its given control <height>. Defaults to top

Page 55: XBMC Skinning Manual - XBMC1

label

Specifies the header text which should be shown. You should specify an entry from

the strings.xml here (either the XBMC strings.xml or your skin's strings.xml file),

however you may also hardcode a piece of text also if you wish, though of course it

will not be localized. You can use the full label formatting syntax and you may also

specify more than one piece of information here by using the $INFO and $LOCALIZE

formats.strings.xml)

hinttext

Specifies the text which should be displayed in the edit label control, until the user

enters some text. It can be used to provide a clue as to what a user should enter in this

control.

font Specifies the font to use from the font.xml file.

textcolor Specifies the color the text should be, in hex AARRGGBB format, or a name from the

colour theme.

7.50 See also

Development:

Add-on development

Skinning

7.51 EPGGrid Control

The epggrid control is used for creating an epg timeline in XBMC. You can choose the position,

size, and look of the grid and it's contents.

7.51.1 Example

<control type="epggrid" id="10">

<description>EPG Grid</description>

<posx>80</posx>

<posy>81</posy>

<width>1120</width>

<height>555</height>

<pagecontrol>10</pagecontrol>

<scrolltime>350</scrolltime>

<timeblocks>40</timeblocks>

<rulerunit>6</rulerunit>

<progresstexture border="5">PVR-

EpgProgressIndicator.png</progresstexture>

<onleft>31</onleft>

<onright>31</onright>

<onup>10</onup>

<ondown>10</ondown>

<rulerlayout height="35" width="40">

<control type="image" id="1">

<width>40</width>

<height>29</height>

Page 56: XBMC Skinning Manual - XBMC1

<posx>0</posx>

<posy>0</posy>

<texture border="5">button-nofocus.png</texture>

</control>

<control type="label" id="2">

<posx>10</posx>

<posy>0</posy>

<width>34</width>

<height>29</height>

<font>font12</font>

<aligny>center</aligny>

<selectedcolor>selected</selectedcolor>

<align>left</align>

<label>$INFO[ListItem.Label]</label>

</control>

</rulerlayout>

<channellayout height="52" width="280">

<animation effect="fade" start="110" time="200">UnFocus</animation>

<control type="image" id="1">

<posx>0</posx>

<posy>0</posy>

<width>270</width>

<height>52</height>

<texture border="5">button-nofocus.png</texture>

</control>

<control type="label">

<posx>5</posx>

<posy>5</posy>

<width>40</width>

<height>35</height>

<font>font12</font>

<align>left</align>

<aligny>center</aligny>

<textcolor>grey</textcolor>

<selectedcolor>grey</selectedcolor>

<info>ListItem.ChannelNumber</info>

</control>

<control type="image">

<posx>45</posx>

<posy>4</posy>

<width>45</width>

<height>44</height>

<texture>$INFO[ListItem.Icon]</texture>

</control>

<control type="label" id="1">

<posx>94</posx>

<posy>0</posy>

<width>160</width>

<height>52</height>

<font>special12</font>

<aligny>center</aligny>

<selectedcolor>selected</selectedcolor>

<align>left</align>

<label>$INFO[ListItem.ChannelName]</label>

</control>

</channellayout>

<focusedchannellayout height="52" width="280">

Page 57: XBMC Skinning Manual - XBMC1

<animation effect="fade" start="110" time="200">OnFocus</animation>

<control type="image" id="1">

<posx>0</posx>

<posy>0</posy>

<width>270</width>

<height>52</height>

<texture border="5">button-focus.png</texture>

</control>

<control type="label">

<posx>5</posx>

<posy>5</posy>

<width>40</width>

<height>35</height>

<font>font12</font>

<align>left</align>

<aligny>center</aligny>

<textcolor>grey</textcolor>

<selectedcolor>grey</selectedcolor>

<info>ListItem.ChannelNumber</info>

</control>

<control type="image">

<posx>45</posx>

<posy>4</posy>

<width>45</width>

<height>44</height>

<texture>$INFO[ListItem.Icon]</texture>

</control>

<control type="label" id="1">

<posx>94</posx>

<posy>0</posy>

<width>160</width>

<height>52</height>

<font>special12</font>

<aligny>center</aligny>

<selectedcolor>selected</selectedcolor>

<align>left</align>

<label>$INFO[ListItem.ChannelName]</label>

</control>

</focusedchannellayout>

<itemlayout height="52" width="40">

<control type="image" id="2">

<width>40</width>

<height>52</height>

<posx>0</posx>

<posy>0</posy>

<aspectratio>stretch</aspectratio>

<texture border="3">epg-

genres/$INFO[ListItem.Property(GenreType)].png</texture>

</control>

<control type="label" id="1">

<posx>6</posx>

<posy>3</posy>

<width>30</width>

<height>25</height>

<font>font12</font>

<aligny>center</aligny>

<selectedcolor>selected</selectedcolor>

Page 58: XBMC Skinning Manual - XBMC1

<align>left</align>

<info>ListItem.Label</info>

</control>

<control type="image">

<posx>5</posx>

<posy>28</posy>

<width>30</width>

<height>20</height>

<texture>PVR-IsRecording.png</texture>

<visible>ListItem.IsRecording</visible>

</control>

<control type="image">

<posx>5</posx>

<posy>28</posy>

<width>20</width>

<height>20</height>

<texture>PVR-HasTimer.png</texture>

<visible>ListItem.HasTimer + !ListItem.IsRecording</visible>

</control>

</itemlayout>

<focusedlayout height="52" width="40">

<control type="image" id="14">

<width>40</width>

<height>52</height>

<posx>0</posx>

<posy>0</posy>

<texture border="5">folder-focus.png</texture>

</control>

<control type="image" id="2">

<width>40</width>

<height>52</height>

<posx>0</posx>

<posy>0</posy>

<aspectratio>stretch</aspectratio>

<texture border="3">epg-

genres/$INFO[ListItem.Property(GenreType)].png</texture>

</control>

<control type="label" id="1">

<posx>6</posx>

<posy>3</posy>

<width>30</width>

<height>25</height>

<font>font12</font>

<aligny>center</aligny>

<selectedcolor>selected</selectedcolor>

<align>left</align>

<info>ListItem.Label</info>

</control>

<control type="image">

<posx>5</posx>

<posy>28</posy>

<width>30</width>

<height>20</height>

<texture>PVR-IsRecording.png</texture>

<visible>ListItem.IsRecording</visible>

</control>

<control type="image">

Page 59: XBMC Skinning Manual - XBMC1

<posx>5</posx>

<posy>28</posy>

<width>20</width>

<height>20</height>

<texture>PVR-HasTimer.png</texture>

<visible>ListItem.HasTimer + !ListItem.IsRecording</visible>

</control>

</focusedlayout>

</control>

7.51.2 Available Tags

In addition to the Default Control Tags the following tags are available. Note that each tag is

lower case only. This is important, as xml tags are case-sensitive.

timeblocks The number of timeframes on the top row.

rulerunit Timeframe of each unit on the top row. 1 unit equals 5 minutes.

rulerlayout The layout of the top row.

progresstexture A texture which indicates the current progress time

channellayout The layout of the left column.

focusedchannellayout The focused layout of the left column.

itemlayout The layout of the grid

focusedlayout The focused layout of the grid

7.52 See also

Development:

Add-on development

Skinning

Page 60: XBMC Skinning Manual - XBMC1

7.53 Console Control

used to display the last few items added to the video database.

7.54 Checkmark Control

Used on the Kai Host Dialog. Similar to Radio Button but does not have the button texture, and

the checkmark is on the left

7.55 Extended List Control

used in the XLink Kai window.

8 Conditional_Visibility

XBMC's skinning engine versatility is based upon the fact that the skinner can display and hide

portions of the skin using a variety of conditional statements that can be combined to create very

user friendly UI implementations. For further information of available variable and how they can

be applied. All controls can now benefit from “conditional visibility” support. This means that,

instead of specifying just “yes” or “no” for the <visible> tag, you can now provide one of the

many preset boolean conditions. Not only that, you can also specify how XBMC should

transistion between a visible state and a hidden state.

For example, the Project Mayhem 3 skin has <visible>!Player.HasMedia</visible> tags on all

the background images on the home page. The reason is that we don't want the images being

displayed while a media file (audio or video) is playing or paused, as the video or visualisation

will cover the images anyway, so they only take up memory unnecessarily. They also slow down

navigation, as the need to be loaded/unloaded depending on whether they are visible (ie whether

or not the user has a particular button focused).

8.1 How They Work

The condition given in the <visible> tag is evaluated at during the control's Render() function.

XBMC decides whether or not the condition is true, and updates the control's visibility

accordingly. Thus, it all happens without XBMC having to do the extra chores of maintaining

which controls need to be shown at which points in time. The controls automatically update

themselves.

8.2 Conditional Visibility for Dialogs

Dialogs can also be made to popup automatically based on a visibility condition. This is done by

supplying the <visible> tag at the top of the window file (where the <id>, <type> and

<coordinate> tags are). XBMC once again evaluates this visibility at render time, and if needbe,

Page 61: XBMC Skinning Manual - XBMC1

will create and show the dialog at the appropriate time. It'll also close them once that visibility

has vanished.

This only works with dialogs. For custom windows, you can specify the type of window you

require by specifying it using the <type> tag. For more information see the window .xml

structure page.

8.3 List of Boolean Conditions

8.4 Combining Conditions

You can combine two (or more) of the above settings by using "+" as an AND operator, "|" as an

OR operator, “!" as a NOT operator, and "[" and "]" to bracket expressions. For example,

<visible>Player.HasVideo + Player.Rewinding8x</visible> will only show the control when the

player is rewinding a video at 8x, whereas <visible>Player.HasVideo |

Player.IsRecording</visible> will show the control if a video is playing, or if we are recording

something. The AND operator takes precedence over the OR operator when evaluating the logic,

and operators are read from left to right. So if you want to show something when condition1 OR

condition2 is true AND condition3 is true, you can do:

<visible>[condition1 | condition2] + condition3</visible>

Note that if you missed the brackets, then it would actually be reading «if condition1 or

(condition2 and condition3)" due to AND taking precedence over OR.

Some pointers on boolean logic:

The following holds true:

A + (B | C) = A + B| A + C

A | (B + C) = (A | B) + (A | C)

!(A + B) =! A |! B

!(A | B) =! A +! B

A common mistake is to do something like this:

! A |! B |! C

This is false only if A, B and C are all simultaneously true (as it's the same as !(A + B + C)), and

you may have possibly been after

! A +! B +! C

which is false if A is true, or B is true, or C is true.

Page 62: XBMC Skinning Manual - XBMC1

One thing you will notice, is that when a control is hidden, it can't be focused. This means you

can't move to a control and have it automatically become visible (eg even if it had

Control.HasFocus(myID) it wouldn't come back on, as XBMC wouldn't allow navigation to the

hidden control). To solve this issue, you can use:

<visible allowhiddenfocus="true">Control.HasFocus(21)</visible>

on a control of <id> 21. This will allow the control to be focusable even when it's hidden. When

the user moves to the hidden control, it will automatically unhide itself, due to the

Control.HasFocus(21) visibility condition.

8.5 Specifying the Transition Animation

You can also specify how XBMC renders the transistion between the hidden and visible states

(as well as between other states). See here for how to add animations to your skin.

8.6 See also

Development:

Add-on development

Skinning

9 Animating Your Skin

The XBMC skinning engine supports animations of any control allowing them to rotate, slide,

fade or any combination there-of. Combining animations with conditional statements ensure your

skin will have stunning effects that appear as professional as a 1st party product.

Development Add-on development Skinning XBMC Skinning Manual

The XBMC skin engine has support for animations between control and window states. The

animations are defined through use of the <animation> tag, which has a defined type and various

attributes that specify the animation to be performed. All animations are additive – if two of

them are in effect at the same time, their effects are added together. You may also have more

than one animation of each type.

9.1 Window Animations

There are two valid window animation – the animation to perform when the window is opened,

and the animation to perform when the window is closed. They take the same format as the

control animations. You can, however, have more than one animation performed for the

windowopen or windowclose animation.

Page 63: XBMC Skinning Manual - XBMC1

9.2 Control Animations

There are 6 valid control animations: WindowOpen, WindowClose, Visible, Hidden, Focus, and

Unfocus. There is also a combination animation VisibleChange that constructs the Visible

animation, then reverses it for the Hidden animation.

9.3 Format of Animation Tags

The animation tag is formatted as follows for a single animation:

<animation effect="EFFECT" attributes>TYPE</animation>

and as follows for multiple animations:

<animation type="TYPE" condition="Window.IsActive(Home)" reversible="false">

<effect type="EFFECT" other_attributes />

...

<effect type="EFFECT" other_attributes />

</animation>

9.3.1 Types

The type can be one of the following:

WindowOpen

Performed once only when the window is opened.

WindowClose

Performed once only when the window is closed. No animation is performed when

switching to fullscreen video, however.

Visible

Performed when the control becomes visible via its <visible> tag.

Hidden

Performed when the control becomes hidden via its <visible> tag.

Focus

Performed when the control gains focus.

Unfocus

Performed when the control loses focus.

Conditional

Performed when the control's condition attribute is filled.

VisibleChange

The same as the Visible type, except the reverse animation is auto-created for the Hidden

type. Just saves having to have both animations if the animation is the same in both

directions (ie just reversed)

9.3.2 Attributes

Page 64: XBMC Skinning Manual - XBMC1

The attributes available are as follows. Note that all attributes, like tags, are case sensitive

effect

Specifies the effect to use. Currently “fade”, “slide”, “rotate”, "rotatex", "rotatey", and

“zoom” are supported.

rotatex - rotates a control around the X-Axis (horizontal)

rotatey - rotates a control around the Y-Axis (vertical)

rotate - rotates a control around the Z-Axis

time

Specifies the length of time that the animation will run, in milliseconds.

delay

The time to delay the transistion before starting it, in milliseconds.

start

The start state of the control for this transistion.

For fades, this is the opaqueness as a percentage (ie start="100" is fully opaque,

start="0" is fully transparent.

For slides, this is the relative coordinate offset to start the control at (ie

start="50,60" will start the control off at 50 pixels to the right, and 60 pixels

below it's normal viewing position.

For rotates, this is the starting degree offset from the horizontal. (ie start="30"

will start the control off on an angle of 30 degrees from the horizontal).

For zooms, this is the starting size as a percentage. (ie start="50,60" will start the

control at 50% of it's horizontal size and 60% of it's vertical size).

Note: With zooms you can also specify the coordinates and dimensions of the texture. (ie

start="posx,posy,width,height").

end

The end state of the control for this transistion. Similar to the start state, except that the

end state is always kept after the animation is finished, and until the control changes its

state.

acceleration

Amount to accelerate or decelerate during a “slide”, “zoom” or “rotate” transistion. For

deceleration, use a negative value. A value of -1 will cause the control to come to rest at

its end coordinates. Defaults to 0. (Also see the tween attribute)

center

Center of the rotation or zoom to perform with a “rotate” or “zoom” transistion. This is

the coordinates about which the rotation or zoom will take place. eg center="30,50” will

mean that all points will revolve around (or zoom from) the (30,50) pixel location. You

can set center="auto" to have XBMC automatically zoom from the center of the control.

Center shifts the rotational axis at the level, rotatex - center="y,z" coordinates, rotatey -

center="x,z" coordinates, rotate - center="x,y" coordinates

condition

Page 65: XBMC Skinning Manual - XBMC1

The conditions under which this animation should be performed. Defaults to being

always performed. See here for a list of valid conditionals.

reversible

If “false” the animation is not reversed if it is interrupted when it is finished. For instance

a Visible animation will normally be reversed (instead of running the Hidden animation)

if the control becomes hidden before the visible animation has finished. Setting

reversible="false” prevents this behaviour (the Hidden animation will take its place).

Defaults to true.

loop

If “true” will make your animation loop. (jump back to the start after it reaches the end)

pulse

If “true” will make your animation pulse. (Bounce back from start to end to start to end

.........)

tween

Tween is like an advanced acceleration attribute that can be applied to all animations.

Instead of a steady acceleration or deceleration, you can specify curves that the animation

should follow. Currently, the engine supports “elastic“, “bounce“, “circle“, “back“,

“sine“, “cubic“, “quadratic“ and, the default, “linear“. More information about Tweeners

easing

Easing basically defines the direction of the tween and can be one of “out“, “inout“ and

“in“. The default value is “out“. More information about Easing

9.4 Examples

<visible>Player.HasAudio</visible>

<animation effect="fade" time="400">VisibleChange</animation>

This causes XBMC to fade the control in 400 milliseconds between the visible and hidden states.

The control will start off hidden, and will fade in over 400ms when you play audio, and when it's

finished, it will fade out again over 400ms.

You can also specify different transistion times for transistioning in and out as follows:

<animation effect="fade" time="100">WindowOpen</animation>

<animation effect="fade" time="1000">WindowClose</animation>

This, when used as the animation tag for the ~MusicOSD dialog, will cause it to fade in quickly

(in 100ms) when activated and the fade out again slowly (in 1 second (1000ms)) when it's

cancelled.

You can also specify that a control should always fade in when the window is opened by using

Page 66: XBMC Skinning Manual - XBMC1

<animation effect="fade" time="200">WindowOpen</animation>

This specifies that it will always start hidden, but will fade in immediately (over a time of

200ms) when the window is opened.

There is also ability to add delays preceding the transistions. For instance

<animation effect="fade" time="200" delay="200">Hidden</animation>

would mean that the control will fade out after a delay of 200ms. This is useful for "crossfade"

effects, where you want the new control to fade in while the old control is still on screen (and

then fade the old one out once the new one is completely opaque).

There are also slide effects available.

<animation effect="slide" end="30,0" time="200">Focus</animation>

will slide the control 30 pixels to the right of its normal position when it becomes focused. Note

that when it becomes unfocused it will jump back to it's normal position. A Unfocus animation

will make it slide back gracefully.

There are also rotate effects available.

<animation effect="rotate" end="30" center="360,288"

time="200">Focus</animation>

will rotate the control 30 degrees counter clockwise about the center of a PAL screen (360,288)

when the control becomes focused.

And we also have zoom effects.

<animation effect="zoom" end="120" center="360,288"

time="200">Focus</animation>

will zoom the control to 120% of its normal size when the control becomes focused, with the

zoom centered at the center of a PAL screen (360,288). You can zoom each dimension by

different amounts (effectively a stretch operation) as well. To stretch a control an extra 50%

horizontally when focused, we can use

Page 67: XBMC Skinning Manual - XBMC1

<animation effect="zoom" end="150,100" center="360,288"

time="200">Focus</animation>

An example of a condition attribute is:

<animation effect="slide" start="-120,0" time="200"

condition="Window.Previous(Home)">WindowOpen</animation>

This will cause the slide animation to only be performed if you are coming to this window from

the Home window.

An example of a Conditional animation type is:

<animation effect="slide" start="-120,0" time="200"

condition="Control.HasFocus(2)">Conditional</animation>

This will cause the slide animation to only be performed when the control with the id of 2 gains

focus.

An example of a fade animation with a pulse:

<animation effect="fade" start="20" time="200"

condition="Control.HasFocus(2)" pulse="true">Conditional</animation>

This will cause the control to start at 20% opacity and fade to full in 200 milliseconds and fade

back to 20% opacity and keeping looping in that fashion

An example of two animations at once:

<animation type="WindowOpen">

<effect type="fade" start="0" end="100" time="200"/>

<effect type="zoom" end="150,100" center="auto" time="200" delay="200"/>

</animation>

This will cause the control to fade in over 200 ms, then zoom to 150% it's width from the center

of the control.

9.5 See also

Development:

Page 68: XBMC Skinning Manual - XBMC1

Add-on development

Skinning

10 Fonts

XBMC allows you to customize which fonts are displayed onscreen in the User Interface.

Development Skinning XBMC Skinning Manual

There's one special file called font.xml. This file contains a list of all fonts the skin uses. XBMC

will load all the fonts mentioned in this file from the /myskin/fonts directory first, and if that

fails, will attempt to load them from XBMC/media/fonts. In the event that XBMC is unable to

locate the specified font, it will default to "font13". You can modify this file as you like and

add/delete/change fonts. The user friendly font name is referenced by the other xml files

mentioned below.

See also: HOW-TO:Add a new true type font to the skin

10.1 Format of the Font.xml File

The font.xml file is divided into font sets, which includes a set of fonts used by the skin. Every

font set must contain the same font names in order for the skin to work with all font sets.

<fontset id="Default" idloc="31390" unicode="false">

<font>

....

</font>

<font>

....

</font>

....

</fontset>

<fontset id="Arial" idloc="31391" unicode="true">

<font>

....

</font>

....

</fontset>

A font set has the following attributes:

id

Name of the font set. Displayed to the user. Can have any value.

idloc

Refers to a string in the Skins' language file, so font names can be localized.

unicode

Page 69: XBMC Skinning Manual - XBMC1

Whether or not a font set supports unicode characters. Supported values are “true” or

“false”

There has to be at least one font set with the unicode attribute set to true else languages like

Chinese or Korean will not display properly. There is a font called Arialuni.TTF with a size of

20MB. It is a unicode True Type Font and works with all languages xbmc supports.

Note: XBMC will automatically switch to the first available unicode font set if the user selects a

language that needs one. This switch will not be made if the currently loaded font set already

supports unicode.

10.2 Supported Font Types

10.2.1 True type Fonts

True type fonts must have a .ttf suffix. For a true type font it is possible to define the size (default

20) and a style normal, bold, italics, or bolditalics. Frodo also includes lowercase or uppercase.

Note: Multiple styles can be used by separating them with a space.

Example:

<font>

<name>font12</name>

<filename>arial.ttf</name>

<size>12</size>

<style>uppercase lowercase bold</style>

<aspect>0.75</aspect>

<linespacing>1.0</linespacing>

</font>

The <aspect> tag specifies the aspect ratio of the font. An aspect of 0.75 means that the width of

the font will be 0.75 of the height. By default the aspect is 1.0 for all but the SD 16x9 modes

(PAL16x9, NTSC16x9 and 480p16x9) where the aspect ratio is 0.75, due to the stretched pixels.

The <linespacing> tag defines height of each line (sometimes called leading or inteline spacing).

By default linespacing is set to 1.0.

11 Apendix I: List of Windows

Development Add-on development XBMC Skinning Manual

See also: Python development and Skinning

Page 70: XBMC Skinning Manual - XBMC1

This table cross-references Window names, Window definitions, Window ID, and the delta

Window ID's (this is the delta from the home window.) The code that performs the cross-

reference is found in ButtonTranslator.cpp.

keymap.xml uses the Window name.

XBMC's C++ code uses the Window definitions and Window ID's.

skin .xml files use the Delta Window ID's

XBMC.ActivateWindow() can use either the Window name, the Window ID, or the delta

Window ID.

sounds.xml can use the window name or window ID

You can use secondary parameters with all media windows, as can be seen here:

Opening Windows and Dialogs

Example:

You want a button in your skin or on your remote taking you directly to the movie listing

you let that button do

ActivateWindow(VideoLibrary,MovieTitles) (dharma)

ActivateWindow(Videos,MovieTitles) (eden and up)

NAME DEFINITION

WIND

OW

ID

DELT

A

WIND

OW

ID

SOURCE XML FILE

home WINDOW_HOME 10000 0 Home.xml

programs WINDOW_PROGRAMS 10001 1 MyPrograms.xml

pictures WINDOW_PICTURES 10002 2 MyPics.xml

filemanager WINDOW_FILES 10003 3 FileManager.xml

settings WINDOW_SETTINGS_MENU 10004 4 Settings.xml

music WINDOW_MUSIC 10005 5

None – this is just a

wrapper for the current

My Music view (who's

IDs are 501 and 502)

video WINDOW_VIDEOS 10006 6

None – this is just a

wrapper for the current

My Video view (who's

Page 71: XBMC Skinning Manual - XBMC1

IDs are 21-25)

systeminfo WINDOW_SYSTEM_INFORMA

TION 10007 7 SettingsSystemInfo.xml

screencalibrati

on

WINDOW_MOVIE_CALIBRATI

ON 10011 11

SettingsScreenCalibratio

n.xml

picturessetting

s

WINDOW_SETTINGS_MYPICT

URES 10012 12 SettingsCategory.xml

programssettin

gs

WINDOW_SETTINGS_MYPRO

GRAMS 10013 13 SettingsCategory.xml

weathersetting

s

WINDOW_SETTINGS_MYWEA

THER 10014 14 SettingsCategory.xml

musicsettings WINDOW_SETTINGS_MYMUSI

C 10015 15 SettingsCategory.xml

systemsettings WINDOW_SETTINGS_SYSTEM 10016 16 SettingsCategory.xml

videossettings WINDOW_SETTINGS_MYVIDE

OS 10017 17 SettingsCategory.xml

networksetting

s

WINDOW_SETTINGS_NETWO

RK 10018 18

SettingsCategory.xml

(eden)

servicesettings WINDOW_SETTINGS_SERVICE 10018 18 SettingsCategory.xml

(frodo)

appearancesett

ings

WINDOW_SETTINGS_APPEAR

ANCE 10019 19 SettingsCategory.xml

scripts WINDOW_SCRIPTS 10020 20 MyScripts.xml

videofiles WINDOW_VIDEO_FILES 10024 24 MyVideo.xml

(deprecated)

videolibrary WINDOW_VIDEO_NAV 10025 25

MyVideoNav.xml -

Replaces the following

.XML files:

MyVideoGenre

(WINDOW_VIDEO_G

ENRE), MyVideoActors

(WINDOW_VIDEO_A

CTOR), MyVideoYear

(WINDOW_VIDEO_Y

EAR), MyVideoTitle

(WINDOW_VIDEO_TI

TLE)

videoplaylist WINDOW_VIDEO_PLAYLIST 10028 28 MyVideoPlaylist.xml

Page 72: XBMC Skinning Manual - XBMC1

loginscreen WINDOW_LOGINSCREEN 10029 29 LoginScreen.xml

profiles WINDOW_SETTINGS_PROFILE

S 10034 34 SettingsProfile.xml

addonbrowser WINDOW_ADDON_BROWSER 10040 40 AddonBrowser.xml

yesnodialog WINDOW_DIALOG_YES_NO 10100 100 DialogYesNo.xml

progressdialog WINDOW_DIALOG_PROGRESS 10101 101 DialogProgress.xml

virtualkeyboar

d

WINDOW_DIALOG_KEYBOAR

D 10103 103 DialogKeyboard.xml

volumebar WINDOW_DIALOG_VOLUME_

BAR 10104 104 DialogVolumeBar.xml

contextmenu WINDOW_DIALOG_CONTEXT

_MENU 10106 106 DialogContextMenu.xml

infodialog WINDOW_DIALOG_KAI_TOAS

T 10107 107 DialogKaiToast.xml

numericinput WINDOW_DIALOG_NUMERIC 10109 109 DialogNumeric.xml

shutdownmenu WINDOW_DIALOG_BUTTON_

MENU 10111 111 DialogButtonMenu.xml

musicscan WINDOW_DIALOG_MUSIC_SC

AN 10112 112

DialogMusicScan.xml

(Frodo removal)

mutebug WINDOW_DIALOG_MUTE_BU

G 10113 113 DialogMuteBug.xml

playercontrols WINDOW_DIALOG_PLAYER_C

ONTROLS 10114 114 PlayerControls.xml

seekbar WINDOW_DIALOG_SEEK_BAR 10115 115 DialogSeekBar.xml

musicosd WINDOW_DIALOG_MUSIC_OS

D 10120 120 MusicOSD.xml

visualisationpr

esetlist

WINDOW_DIALOG_VIS_PRES

ET_LIST 10122 122

VisualizationPresetList.x

ml

osdvideosettin

gs

WINDOW_DIALOG_VIDEO_OS

D_SETTINGS 10123 123 VideoOSDSettings.xml

osdaudiosettin

gs

WINDOW_DIALOG_AUDIO_OS

D_SETTINGS 10124 124 VideoOSDSettings.xml

videobookmar

ks

WINDOW_DIALOG_VIDEO_BO

OKMARKS 10125 125

VideoOSDBookmarks.x

ml

filebrowser WINDOW_DIALOG_FILE_BRO 10126 126 FileBrowser.xml

Page 73: XBMC Skinning Manual - XBMC1

WSER

networksetup WINDOW_DIALOG_NETWORK

_SETUP 10128 128

DialogNetworkSetup.xm

l

mediasource WINDOW_DIALOG_MEDIA_SO

URCE 10129 129 DialogMediaSource.xml

profilesettings WINDOW_PROFILE_SETTINGS 10130 130 ProfileSettings.xml

locksettings WINDOW_LOCK_SETTINGS 10131 131 LockSettings.xml

contentsettings WINDOW_DIALOG_CONTENT

_SETTINGS 10132 132

DialogContentSettings.x

ml

videoscan WINDOW_DIALOG_VIDEO_SC

AN 10133 133

DialogVideoScan.xml

(Frodo removal)

favourites WINDOW_DIALOG_FAVOURIT

ES 10134 134 DialogFavourites.xml

songinformatio

n

WINDOW_DIALOG_SONG_INF

O 10135 135 DialogSongInfo.xml

smartplaylisted

itor

WINDOW_DIALOG_SMART_P

LAYLIST_EDITOR 10136 136 SmartPlaylistEditor.xml

smartplaylistru

le

WINDOW_DIALOG_SMART_P

LAYLIST_RULE 10137 137 SmartPlaylistRule.xml

busydialog WINDOW_DIALOG_BUSY 10138 138 DialogBusy.xml

pictureinfo WINDOW_DIALOG_PICTURE_I

NFO 10139 139 DialogPictureInfo.xml

addonsettings WINDOW_DIALOG_ADDON_S

ETTINGS 10140 140

DialogAddonSettings.x

ml

accesspoints WINDOW_DIALOG_ACCESS_P

OINTS 10141 141 DialogAccessPoints.xml

fullscreeninfo WINDOW_DIALOG_FULLSCRE

EN_INFO 10142 142

DialogFullScreenInfo.x

ml

karaokeselecto

r

WINDOW_DIALOG_KARAOKE

_SONGSELECT 10143 143

DialogKaraokeSongSele

ctor.xml

karaokelargese

lector

WINDOW_DIALOG_KARAOKE

_SELECTOR 10144 144

DialogKaraokeSongSele

ctorLarge.xml

sliderdialog WINDOW_DIALOG_SLIDER 10145 145 DialogSlider.xml

addoninformat

ion

WINDOW_DIALOG_ADDON_I

NFO 10146 146 DialogAddonInfo.xml

Page 74: XBMC Skinning Manual - XBMC1

textviewer WINDOW_DIALOG_TEXT_VIE

WER 10147 147 DialogTextViewer.xml

peripherals WINDOW_DIALOG_PERIPHER

AL_MANAGER 10149 149

DialogPeripheralManage

r.xml

peripheralsetti

ngs

WINDOW_DIALOG_PERIPHER

AL_SETTINGS 10150 150

DialogPeripheralSettings

.xml

extendedprogr

essdialog

WINDOW_DIALOG_EXT_PRO

GRESS 10151 151

DialogExtendedProgress

Bar.xml

mediafilter WINDOW_DIALOG_MEDIA_FI

LTER 10152 152

DialogMediaFilter.xml

(Frodo addition)

musicplaylist WINDOW_MUSIC_PLAYLIST 10500 500 MyMusicPlaylist.xml

musicfiles WINDOW_MUSIC_FILES 10501 501 MyMusicSongs.xml

musiclibrary WINDOW_MUSIC_NAV 10502 502 MyMusicNav.xml

musicplayliste

ditor

WINDOW_MUSIC_PLAYLIST_

EDITOR 10503 503

MyMusicPlaylistEditor.

xml

pvr WINDOW_PVR 10601 601 MyPVR.xml (Frodo

addition)

pvrguideinfo WINDOW_DIALOG_PVR_GUID

E_INFO 10602 602

DialogPVRGuideInfo.x

ml (Frodo addition)

pvrrecordingin

fo

WINDOW_DIALOG_PVR_REC

ORDING_INFO 10603 603

DialogPVRRecordingInf

o.xml (Frodo addition)

pvrtimersetting WINDOW_DIALOG_PVR_TIME

R_SETTING 10604 604

DialogPVRTimerSetting

s.xml (Frodo addition)

pvrgroupmana

ger

WINDOW_DIALOG_PVR_GRO

UP_MANAGER 10605 605

DialogPVRGroupManag

er.xml (Frodo addition)

pvrchannelma

nager

WINDOW_DIALOG_PVR_CHA

NNEL_MANAGER 10606 606

DialogPVRChannelMan

ager.xml (Frodo

addition)

pvrguidesearch WINDOW_DIALOG_PVR_GUID

E_SEARCH 10607 607

DialogPVRGuideSearch.

xml (Frodo addition)

pvrosdchannel

s

WINDOW_DIALOG_PVR_OSD_

CHANNELS 10610 610

DialogPVRChannelsOS

D.xml (Frodo addition)

pvrosdguide WINDOW_DIALOG_PVR_OSD_

GUIDE 10611 611

DialogPVRGuideOSD.x

ml (Frodo addition)

virtualkeyboar

d

WINDOW_VIRTUAL_KEYBOA

RD 11000 1000 none

Page 75: XBMC Skinning Manual - XBMC1

selectdialog WINDOW_DIALOG_SELECT 12000 2000 DialogSelect.xml

musicinformati

on WINDOW_MUSIC_INFO 12001 2001 DialogAlbumInfo.xml

okdialog WINDOW_DIALOG_OK 12002 2002 DialogOK.xml

movieinformat

ion WINDOW_VIDEO_INFO 12003 2003 DialogVideoInfo.xml

fullscreenvide

o

WINDOW_FULLSCREEN_VIDE

O 12005 2005 VideoFullScreen.xml

visualisation WINDOW_VISUALISATION 12006 2006 MusicVisualisation.xml

slideshow WINDOW_SLIDESHOW 12007 2007 SlideShow.xml

filestackingdia

log

WINDOW_DIALOG_FILESTAC

KING 12008 2008 DialogFileStacking.xml

karaoke WINDOW_KARAOKELYRICS 12009 2009 MusicKaraokeLyrics.xm

l

weather WINDOW_WEATHER 12600 2600 MyWeather.xml

screensaver WINDOW_SCREENSAVER 12900 2900 none

videoosd WINDOW_OSD 12901 2901 VideoOSD.xml

videomenu WINDOW_MEDIA_MENU 12902 2902 none

startup WINDOW_STARTUP 12999 2999 startup.xml

skinsettings - - - SkinSettings.xml (Frodo

addition)

startwindow - - - shortcut to the current

startwindow

In addition, there are the following "special" windows whose id is not really a concern (and

you'll notice isn't unique)

Pointer - - 105 Pointer.xml

musicoverlay WINDOW_MUSIC_OVERLAY 12903 2903 MusicOverlay.xml

videooverlay WINDOW_VIDEO_OVERLAY 12904 2904 VideoOverlay.xml

Python

Windows - -

3000–

3099 none

12 Apendix II: List of Boolean Conditions

Page 76: XBMC Skinning Manual - XBMC1

AudioScrobbler.Enabled Returns true if songs played are submitted to

audioscrobbler.

ButtonScroller.HasFocus(id) Returns true if the buttonscroller is focused, and

the current button has id ?id?.

Container.HasThumb Returns true if the current container you are in

has a thumb assigned to it

Container.Content(parameter)

Returns true if the current container you are in

contains the following: files, songs, artists,

albums, movies, tvshows, seasons, episodes,

musicvideos, genres, years, actors, playlists,

plugins, studios, directors (Note: these

currently only work in the Video and Music

Library or unless a Plugin has set the value) also

available are Addons true when a list of add-

ons is shown LiveTV true when a htsp

(tvheadend) directory is shown

Container(id).OnNext

Returns true if the container with id (or current

container if id is omitted) is moving to the next

item. Allows views to be custom-designed (such

as 3D coverviews etc.)

Container(id).OnScrollNext

Returns true if the container with id (or current

container if id is omitted) is scrolling to the next

item. Differs from OnNext in that OnNext

triggers on movement even if there is no scroll

involved.

Container(id).OnPrevious

Returns true if the container with id (or current

container if id is omitted) is moving to the

previous item. Allows views to be custom-

designed (such as 3D coverviews etc.)

Page 77: XBMC Skinning Manual - XBMC1

Container(id).OnScrollPrevious

Returns true if the container with id (or current

container if id is omitted) is scrolling to the

previous item. Differs from OnPrevious in that

OnPrevious triggers on movement even if there

is no scroll involved.

Container(id).HasFocus(item_number)

Returns true if the container with id (or current

container if id is omitted) has static content and

is focused on the item with id item_number.

Container(id).HasFiles Returns true if the container contains files (or

current container if id is omitted).

Container(id).HasFolders Returns true if the container contains folders (or

current container if id is omitted).

Container(id).HasNext Returns true if the container (id) has a next

page.

Container(id).HasPrevious Returns true if the container (id) has a previous

page.

Container(id).IsStacked

Returns true if the container is currently in

stacked mode (or current container if id is

omitted).

Container.CanFilter Returns true when the current container can be

filtered. (Frodo addition)

Container.CanFilterAdvanced

Returns true when advanced filtering can be

applied to the current container. (Frodo

addition)

Container.Filtered Returns true when a mediafilter is applied to the

Page 78: XBMC Skinning Manual - XBMC1

current container. (Frodo addition)

Container(id).Row(row)

Returns true if the container with id (or current

container if id is omitted) is focused on the row

given.

Container(id).Column(col)

Returns true if the container with id (or current

container if id is omitted) is focused on the

column given.

Container(id).Position(pos)

Returns true if the container with id (or current

container if id is omitted) is focused on the

position given.

Container(id).Scrolling

Returns true if the user is currently scrolling

through the container with id (or current

container if id is omitted). Note that this is

slightly delayed from the actual scroll start. Use

Container(id).OnScrollNext/OnScrollPrevious

to trigger animations immediately on scroll.

Control.IsEnabled(id) Returns true if the control with id "id" is

enabled.

Control.IsVisible(id) Returns true if the control with id "id" is visible.

Control.HasFocus(id) Returns true if the currently focused control has

id "id".

ControlGroup(group).HasFocus(id)

Returns true if the control group with id

“group” has control id “id” as it's focused item.

If “id” is not present, or is 0, then it will return

true if the currently focused control is in the

control group with id “group”. Note that if the

control group with id “group” does not have

focus, then this will still return true if the last

Page 79: XBMC Skinning Manual - XBMC1

focused item in the group had control id “id”.

IntegerGreaterThan(info,number)

Returns true if the value of the infolabel is

greater than the supplied number.

Example:

IntegerGreaterThan(ListItem.Year,2000)

LastFM.RadioPlaying Returns true if Last.fm radio is playing. (Frodo

removal)

LastFM.CanLov Returns true if the current song can be added to

the users Last.fm loved songs. (Frodo removal)

LastFM.CanBan Returns true if the current song can be banned

from the users Last.fm radio. (Frodo removal)

Library.HasContent(string)

Returns true if the XBMC libraries have the

content from string. Valid Strings are (Video,

Music, Movies, TVShows, MusicVideos,

MovieSets)

Library.IsScanningMusic Returns true if the music library is being

updated

Library.IsScanningVideo Returns true if the video library is being

updated

ListItem.IsFolder Returns whether the current ListItem is a folder

ListItem.IsPlaying Returns whether the current ListItem.* info

labels and images are currently Playing media

ListItem.IsResumable Returns true when the current ListItem has been

partially played

ListItem.IsSelected Returns whether the current ListItem is selected

(f.e. currently playing in playlist window)

ListItem.Property(IsSpecial) Returns whether the current Season/Episode is a

Special

ListItem.HasEpg Returns true when the selected programme has

epg info (PVR) (Frodo addition)

ListItem.HasTimer

Returns true when a recording timer has been

set for the selected programme (PVR) (Frodo

addition)

ListItem.IsRecording Returns true when the selected programme is

being recorded (PVR) (Frodo addition)

ListItem.IsEncrypted Returns true when the selected programme is

encrypted (PVR) (Frodo addition)

Page 80: XBMC Skinning Manual - XBMC1

MusicPlayer.HasNext Returns true if the music player has a next song

queued inthe Playlist.

MusicPlayer.HasPrevious Returns true if the music player has a a Previous

Song in the Playlist .

MusicPlayer.Offset(number).Exists Returns true if the music players playlist has a

song queued in position (number).

MusicPartyMode.Enabled Returns true if Party Mode is enabled

Player.HasMedia Returns true if the player has an audio or video

file.

Player.HasAudio Returns true if the player has an audio file.

Player.HasDuration Returns true if Media isn't a true stream

Player.HasVideo Returns true if the player has a video file.

Player.Playing Returns true if the player is currently playing (ie

not ffwding, rewinding or paused.)

Player.Paused Returns true if the player is paused.

Player.Forwarding Returns true if the player is fast forwarding.

Player.Forwarding2x Returns true if the player is fast forwarding at

2x.

Player.Forwarding4x Returns true if the player is fast forwarding at

4x.

Player.Forwarding8x Returns true if the player is fast forwarding at

8x.

Player.Forwarding16x Returns true if the player is fast forwarding at

16x.

Player.Forwarding32x Returns true if the player is fast forwarding at

32x.

Player.Rewinding Returns true if the player is rewinding.

Player.Rewinding2x Returns true if the player is rewinding at 2x.

Player.Rewinding4x Returns true if the player is rewinding at 4x.

Player.Rewinding8x Returns true if the player is rewinding at 8x.

Player.Rewinding16x Returns true if the player is rewinding at 16x.

Player.Rewinding32x Returns true if the player is rewinding at 32x.

Player.CanRecord Returns true if the player can record the current

internet stream.

Player.Recording Returns true if the player is recording the

current internet stream.

Page 81: XBMC Skinning Manual - XBMC1

Player.Caching Returns true if the player is current re-caching

data (internet based video playback).

Player.SeekBar Returns true for the first 2.5 seconds after a

video seek.

Player.DisplayAfterSeek Returns true after any seek.

Player.Seeking Returns true if a seek is in progress

Player.ShowTime Returns true if the user has requested the time to

show (occurs in video fullscreen)

Player.ShowInfo

Returns true if the user has requested the song

info to show (occurs in visualisation fullscreen

and slideshow)

Player.ShowCodec

Returns true if the user has requested the codec

to show (occurs in visualisation and video

fullscreen)

Player.IsInternetStream Returns true if the player is playing an internet

stream. (Future Gotham addition)

Player.Muted Returns true if the volume is muted.

Playlist.IsRandom Returns true if the player is in random mode.

Playlist.IsRepeat Returns true if the player is in repeat all mode.

Playlist.IsRepeatOne Returns true if the player is in repeat one mode.

Pvr.HasTimer Returns true when a recording timer is active.

(Frodo addition)

Pvr.HasNonRecordingTimer Returns true when a non recording timer is

active. (Frodo addition)

Pvr.HasEpg Returns true when an epg is available. (Frodo

addition)

Pvr.HasTxt Returns true when teletext is available.(Frodo

addition)

Pvr.HasDirector ? (Frodo addition)

Pvr.IsPlayingTv Returns true when live tv is being watched.

(Frodo addition)

Pvr.IsPlayingRadio Returns true when live radio is being listened to.

(Frodo addition)

Pvr.IsPlayingRecording Returns true when a recording is being watched.

(Frodo addition)

Pvr.IsRecording Returns true when the system is recording a tv

programme. (Frodo addition)

Pvr.ActStreamIsEncrypted Returns true if the stream is encrypted (Frodo

Page 82: XBMC Skinning Manual - XBMC1

addition)

Skin.HasTheme(theme) Returns true if the user has selected the theme

with name ?theme?.

Skin.HasSetting(setting)

Returns the state of the skin-specified

setting ?setting?. You can toggle a setting from

a button by using

<onclick>Skin.ToggleSetting(setting)</onclick

>.

Skin.String(string)

Returns whether the skin string (set via

Skin.SetString, Skin.SetPath, or Skin.SetImage)

is non-empty.

Skin.String(string1,string2)

Same as

stringcompare(Skin.String(string1),string2).

Returns true if Skin.String(string1) equals

string2.

Slideshow.IsActive Returns true if the picture slideshow is running

Slideshow.IsPaused Returns true if the picture slideshow is paused

Slideshow.IsRandom Returns true if the picture slideshow is in

random mode

Slideshow.IsVideo Returns true if the picture slideshow is playing a

video (Future Gotham addition)

StringCompare(info,string)

Returns true if the info equals the string.

example of info: ListItem.Title, ListItem.Genre.

Please note that string can also be a

$LOCALIZE[] or info label. Also note that in a

panelview or similar this only works on the

focused item.

SubString(info,string) Returns true if the string is found anywhere in

the info

SubString(info,string,[Left or Right])

Returns true if the string is found from the start

or the end.

Example:

(foobars,foob,Left) -> true

(foobars,foob,Right) -> False

(foobars,bars,Right) -> true

System.HasAddon(id) Returns true if the specified addon is installed

on the system.

System.HasAlarm(alarm) Returns true if the system has the ?alarm? alarm

set.

Page 83: XBMC Skinning Manual - XBMC1

System.HasPVR

Returns true on pvr enabled XBMC builds.

(Note: Replaced with

System.GetBool(pvrmanager.enabled) for

Frodo)

System.AlarmLessOrEqual(alarmname,seconds

)

Returns true if the alarm with ?alarmname? has

less or equal to ?seconds? left. Standard use

would be

system.alarmlessorequal(shutdowntimer,119),

which would return true when the

shutdowntimer has less then 2 minutes left.

System.HasNetwork Returns true if the ethernet cable is plugged in.

System.HasMediadvd Returns true if there is a CD or DVD in the

DVD-ROM drive.

System.IdleTime(time) Returns true if XBMC has had no input

for ?time? amount of seconds.

System.IsStandalone Returns true if XBMC is running in standalone

mode.

System.IsFullscreen Returns true if XBMC is running fullscreen.

System.KaiConnected Returns true if XBMC's Kai client is connected

to the PC engine.

System.IsLoggedOn Returns true if a user is currently logged on

under a profile

System.HasLoginScreen Returns true if the profile login screen is

enabled

System.Time(startTime,endTime)

Returns true if the current system time is >=

startTime and < endTime. endTime is optional.

Time must be specified in the format HH:mm,

using a 24 hour clock.

System.Date(startDate,endDate)

Returns true if the current system date is >=

startDate and < endDate. endDate is optional.

Date must be specified in the format MM-DD.

System.Platform.Linux Returns true if XBMC is running on a

linux/unix based computer.

System.Platform.Linux.RaspberryPi Returns true if XBMC is running on a

Raspberry Pi. (Future Gotham addition)

System.Platform.Windows Returns true if XBMC is running on a windows

based computer.

System.Platform.OSX Returns true if XBMC is running on an OSX

based computer.

System.Platform.IOS Returns true if XBMC is running on an IOS

Page 84: XBMC Skinning Manual - XBMC1

device.

System.Platform.Darwin Returns true if XBMC is running on an OSX or

IOS system. (Frodo addition)

System.Platform.ATV2 Returns true if XBMC is running on an atv2.

System.Platform.Android Returns true if XBMC is running on an android

device.

System.CanPowerDown Returns true if XBMC can powerdown the

system.

System.CanSuspend Returns true if XBMC can suspend the system.

System.CanHibernate Returns true if XBMC can hibernate the system.

System.CanReboot Returns true if XBMC can reboot the system.

System.ScreenSaverActive Returns true if ScreenSaver is active.

System.Setting(hidewatched) Returns true if 'hide watched items' is selected.

System.IsInhibit Returns true when shutdown on idle is disabled.

(Frodo addition)

System.HasShutdown Returns true when shutdown on idle is enabled.

(Frodo addition)

VideoPlayer.UsingOverlays

Returns true if the video player is using the

hardware overlays render method. Useful, as

with hardware overlays you have no alpha

blending to the video image, so shadows etc.

need redoing, or disabling.

VideoPlayer.IsFullscreen Returns true if the video player is in fullscreen

mode.

VideoPlayer.HasMenu Returns true if the video player has a menu (ie

is playing a DVD)

VideoPlayer.HasInfo

Returns true if the current playing video has

information from the library or from a plugin

(eg director/plot etc.)

VideoPlayer.Content(parameter)

Returns true if the current Video you are

playing is contained in corresponding Video

Library sections. The following values are

accepted : files, movies, episodes, musicvideos,

livetv

VideoPlayer.HasSubtitles Returns true if there are subtitles available for

video. (available for version 11.0 and above)

VideoPlayer.SubtitlesEnabled Returns true if subtitles are turned on for video.

(available for version 11.0 and above)

Page 85: XBMC Skinning Manual - XBMC1

VideoPlayer.HasEpg

Returns true when epg information is available

for the currently playing programme (PVR).

(Frodo addition)

Visualisation.Enabled Returns true if any visualisation has been set in

settings (so not None).

Visualisation.Locked Returns true if the current visualisation preset is

locked (eg in Milkdrop.)

Weather.IsFetched Returns true if the weather data has been

downloaded.

Window.IsVisible(window) Returns true if the window is visible (includes

fade out time on dialogs)

Window.IsActive(window)

Returns true if the window with id or

title ?window? is active (excludes fade out time

on dialogs) See here for a list of windows

Window.IsMedia Returns true if this window is a media window

(programs, music, video, scripts, pictures)

Window.Next(window)

Returns true if the window with id or

title ?window? is being moved to. See here for a

list of windows. Only valid while windows are

changing.

Window.Previous(window)

Returns true if the window with id or

title ?window? is being moved from. See here

for a list of windows. Only valid while windows

are changing.

12.1 See also

Development:

Add-on development

Skinning

13 Apendix III: List of Info Labels

Development Add-on development Skinning XBMC Skinning Manual

INCOMPLETE: This page or section is incomplete. Please add information or correct uncertain data which

is marked with a ?

Page 86: XBMC Skinning Manual - XBMC1

An up-to-date list can be found here GUIInfoManager.cpp

13.1 Container

infolabels Definition

Container.FolderPath Shows complete path of currently displayed

folder

Container.FolderName Shows top most folder in currently displayed

folder

Container.Viewmode Returns the current viewmode (list, icons etc.)

Container.SortMethod Returns the current sort method (name, year,

rating, etc.)

Container.PluginName Returns the current plugins base folder name

Container.PluginCategory Returns the current plugins category (set by the

scripter)

Container.ShowPlot

Returns the TV Show Plot of the current

container and can be used at season and episode

level

Container(id).NumPages

Number of pages in the container with given id.

If no id is specified it grabs the current

container.

Container(id).NumItems

Number of items in the container with given id.

If no id is specified it grabs the current

container.

Page 87: XBMC Skinning Manual - XBMC1

Container(id).CurrentPage Current page in the container with given id. If

no id is specified it grabs the current container.

Container(id).Position Returns the current focused position of

Container (id) as a numeric label.

Container(id).Totaltime Returns the total time of all items in the current

container

Container(id).ListItem(offset).Label

Shows ListItem.Label for a specific List or

Panel Container with a offset ( eg:

Container(50).Listitem(2).Label )

Container(id).ListItem(offset).Label2

Shows ListItem.Label2 for a specific List or

Panel Container with a offset ( eg:

Container(50).Listitem(-2).Label2 )

Container(id).ListItem(offset).Icon

Shows ListItem.Icon for a specific List or Panel

Container with a offset ( eg:

Container(52).Listitem(1).Icon)

Container(id).ListItem(offset).ActualIcon

Shows ListItem.ActualIcon for a specific List or

Panel Container with a offset ( eg:

Container(50).Listitem(0).ActualIcon )

Container(id).ListItem(offset).Thumb

Shows ListItem.Thumb for a specific List or

Panel Container with a offset ( eg:

Container(50).Listitem(0).Thumb )

Container(id).ListItemNoWrap(offset).Property

Basically returns the same as ListItem(offset)

but it won't wrap. That means if the last item of

a list is focused, ListItemNoWrap(1) will be

empty while ListItem(1) will return the first

item of the list. Property has to be replaced with

Label, Label2, Icon etc. ( eg:

Page 88: XBMC Skinning Manual - XBMC1

Container(50).ListitemNoWrap(1).Plot )

Container.Property(addoncategory) Returns the current add-on category

Container.Property(reponame) Returns the current add-on repository name

13.2 Control

infolabels Definition

Control.GetLabel(id) Returns the label value or texture name of the control with the given id.

13.3 Fanart

infolabels Definition

Fanart.Color1 Returns the first of three colors included in the currently selected Fanart theme

for the parent TV Show. Colors are arranged Lightest to Darkest.

Fanart.Color2 Returns the second of three colors included in the currently selected Fanart

theme for the parent TV Show. Colors are arranged Lightest to Darkest.

Fanart.Color3 Returns the third of three colors included in the currently selected Fanart

theme for the parent TV Show. Colors are arranged Lightest to Darkest.

13.4 Listitem

infolabels Definition

Listitem.Label Shows the left label of the currently selected item in a

Page 89: XBMC Skinning Manual - XBMC1

list or thumb control

ListItem.Label2 Shows the right label of the currently selected item in a

list or thumb control

ListItem.Title Shows the title of the currently selected song or movie

in a list or thumb control

ListItem.OriginalTitle Shows the original title of the currently selected movie

in a list or thumb control

ListItem.SortLetter Shows the first letter of the current file in a list or

thumb control

ListItem.TrackNumber Shows the track number of the currently selected song

in a list or thumb control

ListItem.Artist Shows the artist of the currently selected song in a list

or thumb control

ListItem.Property(Artist_Born) Date of Birth of the currently selected Artist

ListItem.Property(Artist_Died) Date of Death of the currently selected Artist

ListItem.Property(Artist_Formed) Formation date of the currently selected Band

ListItem.Property(Artist_Disbanded) Disbanding date of the currently selected Band

ListItem.Property(Artist_YearsActive) Years the currently selected artist has been active

ListItem.Property(Artist_Instrument) Instruments played by the currently selected artist

Page 90: XBMC Skinning Manual - XBMC1

ListItem.Property(Artist_Description) Shows a biography of the currently selected artist

ListItem.Property(Artist_Mood) Shows the moods of the currently selected artist

ListItem.Property(Artist_Style) Shows the styles of the currently selected artist

ListItem.Property(Artist_Genre) Shows the genre of the currently selected artist

ListItem.Album Shows the album of the currently selected song in a list

or thumb control

ListItem.Property(Album_Mood) Shows the moods of the currently selected Album

ListItem.Property(Album_Style) Shows the styles of the currently selected Album

ListItem.Property(Album_Theme) Shows the themes of the currently selected Album

ListItem.Property(Album_Type) Shows the Album Type (e.g. compilation, enhanced,

explicit lyrics) of the currently selected Album

ListItem.Property(Album_Label) Shows the record label of the currently selected Album

ListItem.Property(Album_Description) Shows a review of the currently selected Album

ListItem.DiscNumber Shows the disc number of the currently selected song

in a list or thumb control

ListItem.Year Shows the year of the currently selected song, album or

movie in a list or thumb control

Page 91: XBMC Skinning Manual - XBMC1

ListItem.Premiered Shows the release/aired date of the currently selected

episode, show or movie in a list or thumb control

ListItem.Genre Shows the genre of the currently selected song, album

or movie in a list or thumb control

ListItem.Director Shows the director of the currently selected movie in a

list or thumb control

ListItem.Country Shows the production country of the currently selected

movie in a list or thumb control

ListItem.Episode

Shows the episode number value for the currently

selected episode. It also shows the number of total,

watched or unwatched episodes for the currently

selected tvshow or season, based on the the current

watched filter.

ListItem.Season Shows the season value for the currently selected

tvshow

ListItem.TVShowTitle Shows the name value for the currently selected tvshow

in the season and episode depth of the video library

ListItem.Property(TotalSeasons) Shows the total number of seasons for the currently

selected tvshow

ListItem.Property(TotalEpisodes) Shows the total number of episodes for the currently

selected tvshow or season

ListItem.Property(WatchedEpisodes) Shows the number of watched episodes for the

currently selected tvshow or season

Page 92: XBMC Skinning Manual - XBMC1

ListItem.Property(UnWatchedEpisodes) Shows the number of unwatched episodes for the

currently selected tvshow or season

ListItem.Property(NumEpisodes)

Shows the number of total, watched or unwatched

episodes for the currently selected tvshow or season,

based on the the current watched filter.

ListItem.PictureAperture

Shows the F-stop used to take the selected picture. This

is the value of the EXIF FNumber tag (hex code

0x829D).

ListItem.PictureAuthor

Shows the name of the person involved in writing

about the selected picture. This is the value of the IPTC

Writer tag (hex code 0x7A). (Future Gotham

addition)

ListItem.PictureByline

Shows the name of the person who created the selected

picture. This is the value of the IPTC Byline tag (hex

code 0x50). (Future Gotham addition)

ListItem.PictureBylineTitle

Shows the title of the person who created the selected

picture. This is the value of the IPTC BylineTitle tag

(hex code 0x55). (Future Gotham addition)

ListItem.PictureCamMake

Shows the manufacturer of the camera used to take the

selected picture. This is the value of the EXIF Make

tag (hex code 0x010F).

ListItem.PictureCamModel

Shows the manufacturer's model name or number of

the camera used to take the selected picture. This is the

value of the EXIF Model tag (hex code 0x0110).

ListItem.PictureCaption Shows a description of the selected picture. This is the

value of the IPTC Caption tag (hex code 0x78).

Page 93: XBMC Skinning Manual - XBMC1

ListItem.PictureCategory

Shows the subject of the selected picture as a category

code. This is the value of the IPTC Category tag (hex

code 0x0F). (Future Gotham addition)

ListItem.PictureCCDWidth

Shows the width of the CCD in the camera used to take

the selected picture. This is calculated from three EXIF

tags (0xA002 * 0xA210 / 0xA20e). (Future Gotham

addition)

ListItem.PictureCity

Shows the city where the selected picture was taken.

This is the value of the IPTC City tag (hex code 0x5A).

(Future Gotham addition)

ListItem.PictureColour Shows whether the selected picture is "Colour" or

"Black and White". (Future Gotham addition)

ListItem.PictureComment

Shows a description of the selected picture. This is the

value of the EXIF User Comment tag (hex code

0x9286). This is the same value as

Slideshow.SlideComment.

ListItem.PictureCopyrightNotice

Shows the copyright notice of the selected picture. This

is the value of the IPTC Copyright tag (hex code 0x74).

(Future Gotham addition)

ListItem.PictureCountry

Shows the full name of the country where the selected

picture was taken. This is the value of the IPTC

CountryName tag (hex code 0x65). (Future Gotham

addition)

ListItem.PictureCountryCode

Shows the country code of the country where the

selected picture was taken. This is the value of the

IPTC CountryCode tag (hex code 0x64). (Future

Gotham addition)

Page 94: XBMC Skinning Manual - XBMC1

ListItem.PictureCredit

Shows who provided the selected picture. This is the

value of the IPTC Credit tag (hex code 0x6E). (Future

Gotham addition)

ListItem.PictureDate

Shows the localized date of the selected picture. The

short form of the date is used. The value of the EXIF

DateTimeOriginal tag (hex code 0x9003) is preferred.

If the DateTimeOriginal tag is not found, the value of

DateTimeDigitized (hex code 0x9004) or of DateTime

(hex code 0x0132) might be used.

ListItem.PictureDatetime

Shows the date/timestamp of the selected picture. The

localized short form of the date and time is used. The

value of the EXIF DateTimeOriginal tag (hex code

0x9003) is preferred. If the DateTimeOriginal tag is not

found, the value of DateTimeDigitized (hex code

0x9004) or of DateTime (hex code 0x0132) might be

used.

ListItem.PictureDesc

Shows a short description of the selected picture. The

SlideComment, EXIFComment, or Caption values

might contain a longer description. This is the value of

the EXIF ImageDescription tag (hex code 0x010E).

ListItem.PictureDigitalZoom

Shows the digital zoom ratio when the selected picture

was taken. This is the value of the EXIF

DigitalZoomRatio tag (hex code 0xA404). (Future

Gotham addition)

ListItem.PictureExpMode

Shows the exposure mode of the selected picture. The

possible values are "Automatic", "Manual", and "Auto

bracketing". This is the value of the EXIF

ExposureMode tag (hex code 0xA402).

ListItem.PictureExposure

Shows the class of the program used by the camera to

set exposure when the selected picture was taken.

Values include "Manual", "Program (Auto)", "Aperture

priority (Semi-Auto)", "Shutter priority (semi-auto)",

Page 95: XBMC Skinning Manual - XBMC1

etc. This is the value of the EXIF ExposureProgram tag

(hex code 0x8822). (Future Gotham addition)

ListItem.PictureExposureBias

Shows the exposure bias of the selected picture.

Typically this is a number between -99.99 and 99.99.

This is the value of the EXIF ExposureBiasValue tag

(hex code 0x9204). (Future Gotham addition)

ListItem.PictureExpTime

Shows the exposure time of the selected picture, in

seconds. This is the value of the EXIF ExposureTime

tag (hex code 0x829A). If the ExposureTime tag is not

found, the ShutterSpeedValue tag (hex code 0x9201)

might be used.

ListItem.PictureFlashUsed

Shows the status of flash when the selected picture was

taken. The value will be either "Yes" or "No", and

might include additional information. This is the value

of the EXIF Flash tag (hex code 0x9209). (Future

Gotham addition)

ListItem.PictureFocalLen Shows the lens focal length of the selected picture

ListItem.PictureFocusDist Shows the focal length of the lens, in mm. This is the

value of the EXIF FocalLength tag (hex code 0x920A).

ListItem.PictureGPSLat

Shows the latitude where the selected picture was taken

(degrees, minutes, seconds North or South). This is the

value of the EXIF GPSInfo.GPSLatitude and

GPSInfo.GPSLatitudeRef tags.

ListItem.PictureGPSLon

Shows the longitude where the selected picture was

taken (degrees, minutes, seconds East or West). This is

the value of the EXIF GPSInfo.GPSLongitude and

GPSInfo.GPSLongitudeRef tags.

ListItem.PictureGPSAlt Shows the altitude in meters where the selected picture

was taken. This is the value of the EXIF

Page 96: XBMC Skinning Manual - XBMC1

GPSInfo.GPSAltitude tag.

ListItem.PictureHeadline

Shows a synopsis of the contents of the selected

picture. This is the value of the IPTC Headline tag (hex

code 0x69). (Future Gotham addition)

ListItem.PictureImageType

Shows the color components of the selected picture.

This is the value of the IPTC ImageType tag (hex code

0x82). (Future Gotham addition)

ListItem.PictureIPTCDate

Shows the date when the intellectual content of the

selected picture was created, rather than when the

picture was created. This is the value of the IPTC

DateCreated tag (hex code 0x37). (Future Gotham

addition)

ListItem.PictureIPTCTime

Shows the time when the intellectual content of the

selected picture was created, rather than when the

picture was created. This is the value of the IPTC

TimeCreated tag (hex code 0x3C). (Future Gotham

addition)

ListItem.PictureISO

Shows the ISO speed of the camera when the selected

picture was taken. This is the value of the EXIF

ISOSpeedRatings tag (hex code 0x8827).

ListItem.PictureKeywords

Shows keywords assigned to the selected picture. This

is the value of the IPTC Keywords tag (hex code

0x19).

ListItem.PictureLightSource

Shows the kind of light source when the picture was

taken. Possible values include "Daylight",

"Fluorescent", "Incandescent", etc. This is the value of

the EXIF LightSource tag (hex code 0x9208). (Future

Gotham addition)

Page 97: XBMC Skinning Manual - XBMC1

ListItem.PictureLongDate

Shows only the localized date of the selected picture.

The long form of the date is used. The value of the

EXIF DateTimeOriginal tag (hex code 0x9003) is

preferred. If the DateTimeOriginal tag is not found, the

value of DateTimeDigitized (hex code 0x9004) or of

DateTime (hex code 0x0132) might be used. (Future

Gotham addition)

ListItem.PictureLongDatetime

Shows the date/timestamp of the selected picture. The

localized long form of the date and time is used. The

value of the EXIF DateTimeOriginal tag (hex code

0x9003) is preferred. if the DateTimeOriginal tag is not

found, the value of DateTimeDigitized (hex code

0x9004) or of DateTime (hex code 0x0132) might be

used. (Future Gotham addition)

ListItem.PictureMeteringMode

Shows the metering mode used when the selected

picture was taken. The possible values are "Center

weight", "Spot", or "Matrix". This is the value of the

EXIF MeteringMode tag (hex code 0x9207). (Future

Gotham addition)

ListItem.PictureObjectName

Shows a shorthand reference for the selected picture.

This is the value of the IPTC ObjectName tag (hex

code 0x05). (Future Gotham addition)

ListItem.PictureOrientation

Shows the orientation of the selected picture. Possible

values are "Top Left", "Top Right", "Left Top", "Right

Bottom", etc. This is the value of the EXIF Orientation

tag (hex code 0x0112). (Future Gotham addition)

ListItem.PicturePath Shows the filename and path of the selected picture

ListItem.PictureProcess Shows the process used to compress the selected

picture (Future Gotham addition)

Page 98: XBMC Skinning Manual - XBMC1

ListItem.PictureReferenceService

Shows the Service Identifier of a prior envelope to

which the selected picture refers. This is the value of

the IPTC ReferenceService tag (hex code 0x2D).

(Future Gotham addition)

ListItem.PictureResolution Shows the dimensions of the selected picture

ListItem.PictureSource

Shows the original owner of the selected picture. This

is the value of the IPTC Source tag (hex code 0x73).

(Future Gotham addition)

ListItem.PictureSpecialInstructions

Shows other editorial instructions concerning the use of

the selected picture. This is the value of the IPTC

SpecialInstructions tag (hex code 0x28). (Future

Gotham addition)

ListItem.PictureState

Shows the State/Province where the selected picture

was taken. This is the value of the IPTC ProvinceState

tag (hex code 0x5F). (Future Gotham addition)

ListItem.PictureSublocation

Shows the location within a city where the selected

picture was taken - might indicate the nearest

landmark. This is the value of the IPTC SubLocation

tag (hex code 0x5C). (Future Gotham addition)

ListItem.PictureSupplementalCategories

Shows supplemental category codes to further refine

the subject of the selected picture. This is the value of

the IPTC SuppCategory tag (hex code 0x14). (Future

Gotham addition)

ListItem.PictureTransmissionReference

Shows a code representing the location of original

transmission of the selected picture. This is the value of

the IPTC TransmissionReference tag (hex code 0x67).

(Future Gotham addition)

Page 99: XBMC Skinning Manual - XBMC1

ListItem.PictureUrgency

Shows the urgency of the selected picture. Values are

1-9. The "1" is most urgent. Some image management

programs use urgency to indicate picture rating, where

urgency "1" is 5 stars and urgency "5" is 1 star.

Urgencies 6-9 are not used for rating. This is the value

of the IPTC Urgency tag (hex code 0x0A). (Future

Gotham addition)

ListItem.PictureWhiteBalance

Shows the white balance mode set when the selected

picture was taken. The possible values are "Manual"

and "Auto". This is the value of the EXIF

WhiteBalance tag (hex code 0xA403). (Future

Gotham addition)

ListItem.FileName Shows the filename of the currently selected song or

movie in a list or thumb control

ListItem.Path Shows the complete path of the currently selected song

or movie in a list or thumb control

ListItem.FolderName Shows top most folder of the path of the currently

selected song or movie in a list or thumb control

ListItem.FileNameAndPath Shows the full path with filename of the currently

selected song or movie in a list or thumb control

ListItem.FileExtension Shows the file extension (without leading dot) of the

currently selected item in a list or thumb control

ListItem.Date Shows the file date of the currently selected song or

movie in a list or thumb control

ListItem.DateAdded Shows the date the currently selected item was added

to the library

Page 100: XBMC Skinning Manual - XBMC1

ListItem.Size Shows the file size of the currently selected song or

movie in a list or thumb control

ListItem.Rating Shows the IMDB rating of the currently selected movie

in a list or thumb control

ListItem.Votes Shows the IMDB votes of the currently selected movie

in a list or thumb control (Future Gotham addition)

ListItem.RatingAndVotes Shows the IMDB rating and votes of the currently

selected movie in a list or thumb control

ListItem.Mpaa Show the MPAA rating of the currently selected movie

in a list or thumb control

ListItem.ProgramCount Shows the number of times an xbe has been run from

"my programs"

ListItem.Duration Shows the song or movie duration of the currently

selected movie in a list or thumb control

ListItem.DBID Shows the database id of the currently selected listitem

in a list or thumb control

ListItem.Cast

Shows a concatenated string of cast members of the

currently selected movie, for use in

dialogvideoinfo.xml

ListItem.CastAndRole

Shows a concatenated string of cast members and roles

of the currently selected movie, for use in

dialogvideoinfo.xml

ListItem.Studio Studio of current selected Music Video in a list or

Page 101: XBMC Skinning Manual - XBMC1

thumb control

ListItem.Trailer Shows the full trailer path with filename of the

currently selected movie in a list or thumb control

ListItem.Writer Name of Writer of current Video in a list or thumb

control

ListItem.Tagline Small Summary of current Video in a list or thumb

control

ListItem.PlotOutline Small Summary of current Video in a list or thumb

control

ListItem.Plot Complete Text Summary of Video in a list or thumb

control

ListItem.PercentPlayed Returns percentage value [0-100] of how far the

selected video has been played

ListItem.LastPlayed Last play date of Video in a list or thumb control

ListItem.PlayCount Playcount of Video in a list or thumb control

ListItem.StartTime Start time of current selected TV programme in a list or

thumb control

ListItem.EndTime End time of current selected TV programme in a list or

thumb control

ListItem.StartDate Start date of current selected TV programme in a list or

thumb control

Page 102: XBMC Skinning Manual - XBMC1

ListItem.Date Day, start time and end time of current selected TV

programme in a list or thumb control

ListItem.ChannelNumber Number of current selected TV channel in a list or

thumb control

ListItem.ChannelName Name of current selected TV channel in a list or thumb

control

ListItem.VideoCodec

Shows the video codec of the currently selected video

(common values: 3iv2, avc1, div2, div3, divx, divx 4,

dx50, flv, h264, microsoft, mp42, mp43, mp4v,

mpeg1video, mpeg2video, mpg4, rv40, svq1, svq3,

theora, vp6f, wmv2, wmv3, wvc1, xvid)

ListItem.VideoResolution

Shows the resolution of the currently selected video

(possible values: 480, 576, 540, 720, 1080). Note that

540 usually means a widescreen format (around

960x540) while 576 means PAL resolutions (normally

720x576), therefore 540 is actually better resolution

than 576.

ListItem.VideoAspect Shows the aspect ratio of the currently selected video

(possible values: 1.33, 1.66, 1.78, 1.85, 2.20, 2.35)

ListItem.AudioCodec

Shows the audio codec of the currently selected video

(common values: aac, ac3, cook, dca, dtshd_hra,

dtshd_ma, eac3, mp1, mp2, mp3, pcm_s16be,

pcm_s16le, pcm_u8, truehd, vorbis, wmapro, wmav2)

ListItem.AudioChannels Shows the number of audio channels of the currently

selected video (possible values: 0, 1, 2, 4, 5, 6, 8)

ListItem.AudioLanguage Shows the audio language of the currently selected

video (returns an ISO 639-2 three character code, e.g.

Page 103: XBMC Skinning Manual - XBMC1

eng, epo, deu)

ListItem.SubtitleLanguage

Shows the subtitle language of the currently selected

video (returns an ISO 639-2 three character code, e.g.

eng, epo, deu)

ListItem.Property(Addon.Name) Shows the name of the currently selected addon

ListItem.Property(Addon.Version) Shows the version of the currently selected addon

ListItem.Property(Addon.Summary) Shows a short description of the currently selected

addon

ListItem.Property(Addon.Description) Shows the full description of the currently selected

addon

ListItem.Property(Addon.Type) Shows the type (screensaver, script, skin, etc...) of the

currently selected addon

ListItem.Property(Addon.Creator) Shows the name of the author the currently selected

addon

ListItem.Property(Addon.Disclaimer) Shows the disclaimer of the currently selected addon

ListItem.Property(Addon.Changelog) Shows the changelog of the currently selected addon

ListItem.Property(Addon.ID) Shows the identifier of the currently selected addon

ListItem.Property(Addon.Status) Shows the status of the currently selected addon

ListItem.Property(Addon.Broken) Shows a message when the addon is marked as broken

Page 104: XBMC Skinning Manual - XBMC1

in the repo

ListItem.Property(Addon.Path) Shows the path of the currently selected addon

ListItem.StartTime Start time of the selected item (PVR). (Frodo

addition)

ListItem.EndTime End time of the selected item (PVR). (Frodo addition)

ListItem.StartDate Start date of the selected item (PVR). (Frodo addition)

ListItem.EndDate End date of the selected item (PVR). (Frodo addition)

ListItem.NextTitle Title of the next item (PVR). (Frodo addition)

ListItem.NextGenre Genre of the next item (PVR). (Frodo addition)

ListItem.NextPlot Plot of the next item (PVR). (Frodo addition)

ListItem.NextPlotOutline Plot outline of the next item (PVR). (Frodo addition)

ListItem.NextStartTime Start time of the next item (PVR). (Frodo addition)

ListItem.NextEndTime End of the next item (PVR). (Frodo addition)

ListItem.NextStartDate Start date of the next item (PVR). (Frodo addition)

ListItem.NextEndDate End date of the next item (PVR). (Frodo addition)

Page 105: XBMC Skinning Manual - XBMC1

ListItem.ChannelName Channelname of the selected item (PVR). (Frodo

addition)

ListItem.ChannelNumber Channel number of the selected item (PVR). (Frodo

addition)

ListItem.ChannelGroup Channel group of the selected item (PVR). (Frodo

addition)

ListItem.Progress Part of the programme that's been played (PVR).

(Frodo addition)

13.5 Musicpartymode labels

infolabels Definition

MusicPartyMode.SongsPlayed Number of songs played during Party Mode

MusicPartyMode.MatchingSongs Number of songs available to Party Mode

MusicPartyMode.MatchingSongsPicked Number of songs picked already for Party Mode

MusicPartyMode.MatchingSongsLeft Number of songs left to be picked from for Party Mode

MusicPartyMode.RelaxedSongsPicked Not currently used

MusicPartyMode.RandomSongsPicked Number of unique random songs picked during Party

Mode

13.6 Network labels

Page 106: XBMC Skinning Manual - XBMC1

infolabels Definition

Network.IsDHCP Network type is DHCP or FIXED

Network.IPAddress The system's IP Address (formatted as IP: <ipaddress>)

Network.LinkState Network linkstate e.g. 10mbit/100mbit etc.

Network.MacAddress The system's mac address

Network.SubnetMask Network subnet mask

Network.GatewayAddress Network gateway address

Network.DNS1Address Network dns 1 address

Network.DNS2Address Network dns 2 address

Network.DHCPAddress DHCP ip address

13.7 Player labels

infolabels Definition

Player.FinishTime Time playing media will end

Player.Chapter Current chapter of current playing media

Page 107: XBMC Skinning Manual - XBMC1

Player.ChapterCount Total number of chapters of current playing media

Player.Time Elapsed time of current playing media

Player.TimeRemaining Remaining time of current playing media

Player.Duration Total duration of the current playing media

Player.SeekTime Time to which the user is seeking

Player.SeekOffset Indicates the seek offset after a seek press (eg user presses

BigStepForward, player.seekoffset returns +10:00)

Player.Volume Current volume (between -60 and 0dB)

Player.CacheLevel Players current cache fill percentage (if supported by the player)

Player.ProgressCache Shows how much of the file is cached above current play percentage

Player.Folderpath Shows the full path of the currently playing song or movie

Player.Filenameandpath Shows the full path with filename of the currently playing song or

movie

Player.StartTime

Returns the starttime (from the epg) of a tv program, for all other videos

it will return the time you started watching this video.. (Frodo

addition)

Player.Title Returns the musicplayer title for audio and the videoplayer title for

videos. (Frodo addition)

Page 108: XBMC Skinning Manual - XBMC1

13.7.1 Music player

infolabels Definition

MusicPlayer.Title

Title of the currently playing song, also available are

"MusicPlayer.offset(number).Title" offset is relative

to the current playing item and

"MusicPlayer.Position(number).Title" position is

relative to the start of the playlist

MusicPlayer.Album

Album from which the current song is from, also

available are "MusicPlayer.offset(number).Album"

offset is relative to the current playing item and

"MusicPlayer.Position(number).Album" position is

relative to the start of the playlist

MusicPlayer.Property(Album_Mood) Shows the moods of the currently playing Album

MusicPlayer.Property(Album_Style) Shows the styles of the currently playing Album

MusicPlayer.Property(Album_Theme) Shows the themes of the currently playing Album

MusicPlayer.Property(Album_Type) Shows the Album Type (e.g. compilation, enhanced,

explicit lyrics) of the currently playing Album

MusicPlayer.Property(Album_Label) Shows the record label of the currently playing

Album

MusicPlayer.Property(Album_Description) Shows a review of the currently playing Album

MusicPlayer.Artist

Artist(s) of current song, also available are

"MusicPlayer.offset(number).Artist" offset is

relative to the current playing item and

"MusicPlayer.Position(number).Artist" position is

Page 109: XBMC Skinning Manual - XBMC1

relative to the start of the playlist

MusicPlayer.Property(Artist_Born) Date of Birth of the currently playing Artist

MusicPlayer.Property(Artist_Died) Date of Death of the currently playing Artist

MusicPlayer.Property(Artist_Formed) Formation date of the currently playing Artist/Band

MusicPlayer.Property(Artist_Disbanded) Disbanding date of the currently playing Artist/Band

MusicPlayer.Property(Artist_YearsActive) Years the currently Playing artist has been active

MusicPlayer.Property(Artist_Instrument) Instruments played by the currently playing artist

MusicPlayer.Property(Artist_Description) Shows a biography of the currently playing artist

MusicPlayer.Property(Artist_Mood) Shows the moods of the currently playing artist

MusicPlayer.Property(Artist_Style) Shows the styles of the currently playing artist

MusicPlayer.Property(Artist_Genre) Shows the genre of the currently playing artist

MusicPlayer.Genre

Genre(s) of current song, also available are

"MusicPlayer.offset(number).Genre" offset is

relative to the current playing item and

"MusicPlayer.Position(number).Genre" position is

relative to the start of the playlist

MusicPlayer.Lyrics Lyrics of current song stored in ID tag info

Page 110: XBMC Skinning Manual - XBMC1

MusicPlayer.Year

Year of release of current song, also available are

"MusicPlayer.offset(number).Year" offset is relative

to the current playing item and

"MusicPlayer.Position(number).Year" position is

relative to the start of the playlist

MusicPlayer.Rating

Numeric Rating of current song, also available are

"MusicPlayer.offset(number).Rating" offset is

relative to the current playing item and

"MusicPlayer.Position(number).Rating" position is

relative to the start of the playlist

MusicPlayer.DiscNumber

Disc Number of current song stored in ID tag info,

also available are

"MusicPlayer.offset(number).DiscNumber" offset is

relative to the current playing item and

"MusicPlayer.Position(number).DiscNumber"

position is relative to the start of the playlist

MusicPlayer.Comment

Comment of current song stored in ID tag info, also

available are

"MusicPlayer.offset(number).Comment" offset is

relative to the current playing item and

"MusicPlayer.Position(number).Comment" position

is relative to the start of the playlist

MusicPlayer.Time Current time in song

MusicPlayer.TimeRemaining Current remaining time in song

MusicPlayer.TimeSpeed Both the time and the playspeed formatted up. eg

1:23 (2x)

MusicPlayer.TrackNumber

Track number of current song, also available are

"MusicPlayer.offset(number).TrackNumber" offset

is relative to the current playing item and

"MusicPlayer.Position(number).TrackNumber"

Page 111: XBMC Skinning Manual - XBMC1

position is relative to the start of the playlist

MusicPlayer.Duration

Duration of current song, also available are

"MusicPlayer.offset(number).Duration" offset is

relative to the current playing item and

"MusicPlayer.Position(number).Duration" position

is relative to the start of the playlist

MusicPlayer.BitRate Bitrate of current song

MusicPlayer.Channels Number of channels of current song

MusicPlayer.BitsPerSample Number of bits per sample of current song

MusicPlayer.SampleRate Samplerate of current song

MusicPlayer.Codec Codec of current song

MusicPlayer.PlaylistPosition Position of the current song in the current music

playlist

MusicPlayer.PlaylistLength Total size of the current music playlist

MusicPlayer.ChannelName Channel name of the radio programme that's

currently playing (PVR). (Frodo addition)

MusicPlayer.ChannelNumber Channel number of the radio programme that's

currently playing (PVR). (Frodo addition)

MusicPlayer.ChannelGroup Channel group of of the radio programme that's

currently playing (PVR). (Frodo addition)

13.7.2 Video player

Page 112: XBMC Skinning Manual - XBMC1

infolabels Definition

VideoPlayer.Time Current time in movie

VideoPlayer.TimeRemaining Current remaining time in movie

VideoPlayer.TimeSpeed Current time + playspeed. eg 1:23:14 (-4x)

VideoPlayer.Duration Length of current movie

VideoPlayer.Title Title of currently playing video. If it's in the database it will return

the database title, else the filename

VideoPlayer.TVShowTitle Title of currently playing episode's tvshow name

VideoPlayer.Season Season number of the currently playing episode

VideoPlayer.Episode Episode number of the currently playing episode

VideoPlayer.Genre Genre(s) of current movie, if it's in the database

VideoPlayer.Director Director of current movie, if it's in the database

VideoPlayer.Country Production country of current movie, if it's in the database

VideoPlayer.Year Year of release of current movie, if it's in the database

VideoPlayer.Rating IMDb user rating of current movie, if it's in the database

Page 113: XBMC Skinning Manual - XBMC1

VideoPlayer.Votes IMDb votes of current movie, if it's in the database (Future

Gotham addition)

VideoPlayer.RatingAndVotes IMDb user rating and votes of current movie, if it's in the

database

VideoPlayer.mpaa MPAA rating of current movie, if it's in the database

VideoPlayer.PlaylistPosition Position of the current song in the current video playlist

VideoPlayer.PlaylistLength Total size of the current video playlist

VideoPlayer.Cast A concatenated string of cast members of the current movie, if it's

in the database

VideoPlayer.CastAndRole A concatenated string of cast members and roles of the current

movie, if it's in the database

VideoPlayer.Album Album from which the current Music Video is from, if it's in the

database

VideoPlayer.Artist Artist(s) of current Music Video, if it's in the database

VideoPlayer.Studio Studio of current Music Video, if it's in the database

VideoPlayer.Writer Name of Writer of current playing Video, if it's in the database

VideoPlayer.Tagline Small Summary of current playing Video, if it's in the database

VideoPlayer.PlotOutline Small Summary of current playing Video, if it's in the database

Page 114: XBMC Skinning Manual - XBMC1

VideoPlayer.Plot Complete Text Summary of current playing Video, if it's in the

database

VideoPlayer.LastPlayed Last play date of current playing Video, if it's in the database

VideoPlayer.PlayCount Playcount of current playing Video, if it's in the database

VideoPlayer.VideoCodec Shows the video codec of the currently playing video (common

values: see ListItem.VideoCodec)

VideoPlayer.VideoResolution Shows the video resolution of the currently playing video

(possible values: see ListItem.VideoResolution)

VideoPlayer.VideoAspect Shows the aspect ratio of the currently playing video (possible

values: see ListItem.VideoAspect)

VideoPlayer.AudioCodec Shows the audio codec of the currently playing video (common

values: see ListItem.AudioCodec)

VideoPlayer.AudioChannels Shows the number of audio channels of the currently playing

video (possible values: see ListItem.AudioChannels)

VideoPlayer.EndTime End date of the currently playing programme (PVR). (Frodo

addition)

VideoPlayer.NextTitle Title of the programme that will be played next (PVR). (Frodo

addition)

VideoPlayer.NextGenre Genre of the programme that will be played next (PVR). (Frodo

addition)

VideoPlayer.NextPlot Plot of the programme that will be played next (PVR). (Frodo

Page 115: XBMC Skinning Manual - XBMC1

addition)

VideoPlayer.NextPlotOutline Plot outline of the programme that will be played next (PVR).

(Frodo addition)

VideoPlayer.NextStartTime Start time of the programme that will be played next (PVR).

(Frodo addition)

VideoPlayer.NextEndTime End time of the programme that will be played next (PVR).

(Frodo addition)

VideoPlayer.NextDuration Duration of the programme that will be played next (PVR).

(Frodo addition)

VideoPlayer.ChannelName Name of the curently tuned channel (PVR). (Frodo addition)

VideoPlayer.ChannelNumber Number of the curently tuned channel (PVR). (Frodo addition)

VideoPlayer.ChannelGroup Group of the curently tuned channel (PVR). (Frodo addition)

VideoPlayer.ParentalRating Parental rating of the currently playing programme (PVR).

(Frodo addition)

13.8 Playlist

infolabels Definition

Playlist.Length Total size of the current playlist (video or music)

Playlist.Position Position of the current item in the current playlist (video or music)

Page 116: XBMC Skinning Manual - XBMC1

Playlist.Random Returns string ID's 590 (Randomize Play Enabled) or 591 (Disabled)

Playlist.Repeat Returns string ID's 592 (Repeat One), 593 (Repeat All), or 594 (Repeat Off)

13.9 PVR

infolabels Definition

Pvr.NowRecordingTitle Title of the programme being recorded (Frodo addition)

Pvr.NowRecordingDateTime Start date and time of the current recording(Frodo addition)

Pvr.NowRecordingChannel Channel number that's being recorded (Frodo addition)

Pvr.NextRecordingTitle Title of the next programme that will be recorded (Frodo

addition)

Pvr.NextRecordingDateTime Start date and time of the next recording (Frodo addition)

Pvr.NextRecordingChannel Channel name of the next recording (Frodo addition)

Pvr.BackendName Name of the backend being used (Frodo addition)

Pvr.BackendVersion Version of the backend that's being used (Frodo addition)

Pvr.BackendHost Backend hostname (Frodo addition)

Pvr.BackendDiskSpace Available diskspace on the backend (Frodo addition)

Page 117: XBMC Skinning Manual - XBMC1

Pvr.BackendChannels Number of available channels the backend provides (Frodo

addition)

Pvr.BackendTimers Number of timers set for the backend (Frodo addition)

Pvr.BackendRecordings Number of recording available on the backend (Frodo

addition)

Pvr.BackendNumber Backend number (Frodo addition)

Pvr.TotalDiscSpace Total diskspace available for recordings (Frodo addition)

Pvr.NextTimer Next timer date (Frodo addition)

Pvr.Duration ? (Frodo addition)

Pvr.Time ? (Frodo addition)

Pvr.Progress ? (Frodo addition)

Pvr.ActStreamClient Stream client name (Frodo addition)

Pvr.ActStreamDevice Stream device name (Frodo addition)

Pvr.ActStreamStatus Status of the stream (Frodo addition)

Pvr.ActStreamSignal Signal quality of the stream (Frodo addition)

Pvr.ActStreamSnr Signal to noise ratio of the stream (Frodo addition)

Page 118: XBMC Skinning Manual - XBMC1

Pvr.ActStreamBer Bit error rate of the stream (Frodo addition)

Pvr.ActStreamUnc UNC value of the stream (Frodo addition)

Pvr.ActStreamVideoBitRate Video bitrate of the stream (Frodo addition)

Pvr.ActStreamAudioBitRate Audio bitrate of the stream (Frodo addition)

Pvr.ActStreamDolbyBitRate Dolby bitrate of the stream (Frodo addition)

Pvr.ActStreamProgrSignal Signal quality of the programme (Frodo addition)

Pvr.ActStreamProgrSnr Signal to noise ratio of the programme (Frodo addition)

Pvr.ActStreamEncryptionName Encryption used on the stream (Frodo addition)

13.10 Skin

infolabels Definition

Skin.CurrentTheme Returns the current selected skin theme.

Skin.CurrentColourTheme Returns the current selected colour theme of the skin.

Skin.String(name)

Returns the user-set skin string, set via the Skin.SetString(name) List

of Built In Functions. Allows skinners to have user-customisable

labels.

Skin.AspectRatio Returns the closest aspect ratio match using the resolution info from

Page 119: XBMC Skinning Manual - XBMC1

the skin's addon.xml file. (Frodo addition)

13.11 Slideshow

infolabels Definition

Slideshow.Altitude

Shows the altitude in meters where the current picture was

taken. This is the value of the EXIF GPSInfo.GPSAltitude

tag.

Slideshow.Aperture Shows the F-stop used to take the current picture. This is the

value of the EXIF FNumber tag (hex code 0x829D).

Slideshow.Author

Shows the name of the person involved in writing about the

current picture. This is the value of the IPTC Writer tag (hex

code 0x7A).

Slideshow.Byline

Shows the name of the person who created the current

picture. This is the value of the IPTC Byline tag (hex code

0x50).

Slideshow.BylineTitle

Shows the title of the person who created the current picture.

This is the value of the IPTC BylineTitle tag (hex code

0x55).

Slideshow.CameraMake

Shows the manufacturer of the camera used to take the

current picture. This is the value of the EXIF Make tag (hex

code 0x010F).

Slideshow.CameraModel

Shows the manufacturer's model name or number of the

camera used to take the current picture. This is the value of

the EXIF Model tag (hex code 0x0110).

Slideshow.Caption Shows a description of the current picture. This is the value

Page 120: XBMC Skinning Manual - XBMC1

of the IPTC Caption tag (hex code 0x78).

Slideshow.Category Shows the subject of the current picture as a category code.

This is the value of the IPTC Category tag (hex code 0x0F).

Slideshow.CCDWidth

Shows the width of the CCD in the camera used to take the

current picture. This is calculated from three EXIF tags

(0xA002 * 0xA210 / 0xA20e).

Slideshow.City Shows the city where the current picture was taken. This is

the value of the IPTC City tag (hex code 0x5A).

Slideshow.Colour Shows whether the current picture is "Colour" or "Black and

White".

Slideshow.CopyrightNotice Shows the copyright notice of the current picture. This is the

value of the IPTC Copyright tag (hex code 0x74).

Slideshow.Country

Shows the full name of the country where the current picture

was taken. This is the value of the IPTC CountryName tag

(hex code 0x65).

Slideshow.CountryCode

Shows the country code of the country where the current

picture was taken. This is the value of the IPTC

CountryCode tag (hex code 0x64).

Slideshow.Credit Shows who provided the current picture. This is the value of

the IPTC Credit tag (hex code 0x6E).

Slideshow.DigitalZoom

Shows the digital zoom ratio when the current picture was

taken. This is the value of the EXIF .DigitalZoomRatio tag

(hex code 0xA404).

Slideshow.EXIFComment Shows a description of the current picture. This is the value

of the EXIF User Comment tag (hex code 0x9286). This is

Page 121: XBMC Skinning Manual - XBMC1

the same value as Slideshow.SlideComment.

Slideshow.EXIFDate

Shows the localized date of the current picture. The short

form of the date is used. The value of the EXIF

DateTimeOriginal tag (hex code 0x9003) is preferred. If the

DateTimeOriginal tag is not found, the value of

DateTimeDigitized (hex code 0x9004) or of DateTime (hex

code 0x0132) might be used.

Slideshow.EXIFDescription

Shows a short description of the current picture. The

SlideComment, EXIFComment, or Caption values might

contain a longer description. This is the value of the EXIF

ImageDescription tag (hex code 0x010E).

Slideshow.EXIFSoftware

Shows the name and version of the firmware used by the

camera that took the current picture. This is the value of the

EXIF Software tag (hex code 0x0131).

Slideshow.EXIFTime

Shows the date/timestamp of the current picture. The

localized short form of the date and time is used. The value

of the EXIF DateTimeOriginal tag (hex code 0x9003) is

preferred. If the DateTimeOriginal tag is not found, the

value of DateTimeDigitized (hex code 0x9004) or of

DateTime (hex code 0x0132) might be used.

Slideshow.Exposure

Shows the class of the program used by the camera to set

exposure when the current picture was taken. Values include

"Manual", "Program (Auto)", "Aperture priority (Semi-

Auto)", "Shutter priority (semi-auto)", etc. This is the value

of the EXIF ExposureProgram tag (hex code 0x8822).

Slideshow.ExposureBias

Shows the exposure bias of the current picture. Typically

this is a number between -99.99 and 99.99. This is the value

of the EXIF ExposureBiasValue tag (hex code 0x9204).

Slideshow.ExposureMode Shows the exposure mode of the current picture. The

possible values are "Automatic", "Manual", and "Auto

bracketing". This is the value of the EXIF ExposureMode

Page 122: XBMC Skinning Manual - XBMC1

tag (hex code 0xA402).

Slideshow.ExposureTime

Shows the exposure time of the current picture, in seconds.

This is the value of the EXIF ExposureTime tag (hex code

0x829A). If the ExposureTime tag is not found, the

ShutterSpeedValue tag (hex code 0x9201) might be used.

Slideshow.Filedate Shows the file date of the current picture

Slideshow.Filename Shows the file name of the current picture

Slideshow.Filesize Shows the file size of the current picture

Slideshow.FlashUsed

Shows the status of flash when the current picture was

taken. The value will be either "Yes" or "No", and might

include additional information. This is the value of the EXIF

Flash tag (hex code 0x9209).

Slideshow.FocalLength Shows the focal length of the lens, in mm. This is the value

of the EXIF FocalLength tag (hex code 0x920A).

Slideshow.FocusDistance Shows the distance to the subject, in meters. This is the

value of the EXIF SubjectDistance tag (hex code 0x9206).

Slideshow.Headline Shows a synopsis of the contents of the current picture. This

is the value of the IPTC Headline tag (hex code 0x69).

Slideshow.ImageType

Shows the color components of the current picture. This is

the value of the IPTC ImageType tag (hex code 0x82).

(Gotham addition)

Slideshow.IPTCDate Shows the date when the intellectual content of the current

picture was created, rather than when the picture was

created. This is the value of the IPTC DateCreated tag (hex

Page 123: XBMC Skinning Manual - XBMC1

code 0x37).

Slideshow.ISOEquivalence

Shows the ISO speed of the camera when the current picture

was taken. This is the value of the EXIF ISOSpeedRatings

tag (hex code 0x8827).

Slideshow.Keywords Shows keywords assigned to the current picture. This is the

value of the IPTC Keywords tag (hex code 0x19).

Slideshow.Latitude

Shows the latitude where the current picture was taken

(degrees, minutes, seconds North or South). This is the value

of the EXIF GPSInfo.GPSLatitude and

GPSInfo.GPSLatitudeRef tags.

Slideshow.LightSource

Shows the kind of light source when the picture was taken.

Possible values include "Daylight", "Fluorescent",

"Incandescent", etc. This is the value of the EXIF

LightSource tag (hex code 0x9208).

Slideshow.LongEXIFDate

Shows only the localized date of the current picture. The

long form of the date is used. The value of the EXIF

DateTimeOriginal tag (hex code 0x9003) is preferred. If the

DateTimeOriginal tag is not found, the value of

DateTimeDigitized (hex code 0x9004) or of DateTime (hex

code 0x0132) might be used. (Gotham addition)

Slideshow.LongEXIFTime

Shows the date/timestamp of the current picture. The

localized long form of the date and time is used. The value

of the EXIF DateTimeOriginal tag (hex code 0x9003) is

preferred. if the DateTimeOriginal tag is not found, the

value of DateTimeDigitized (hex code 0x9004) or of

DateTime (hex code 0x0132) might be used. (Gotham

addition)

Slideshow.Longitude Shows the longitude where the current picture was taken

(degrees, minutes, seconds East or West). This is the value

of the EXIF GPSInfo.GPSLongitude and

Page 124: XBMC Skinning Manual - XBMC1

GPSInfo.GPSLongitudeRef tags.

Slideshow.MeteringMode

Shows the metering mode used when the current picture was

taken. The possible values are "Center weight", "Spot", or

"Matrix". This is the value of the EXIF MeteringMode tag

(hex code 0x9207).

Slideshow.ObjectName Shows a shorthand reference for the current picture. This is

the value of the IPTC ObjectName tag (hex code 0x05).

Slideshow.Orientation

Shows the orientation of the current picture. Possible values

are "Top Left", "Top Right", "Left Top", "Right Bottom",

etc. This is the value of the EXIF Orientation tag (hex code

0x0112).

Slideshow.Path Shows the file path of the current picture

Slideshow.Process Shows the process used to compress the current picture

Slideshow.ReferenceService

Shows the Service Identifier of a prior envelope to which the

current picture refers. This is the value of the IPTC

ReferenceService tag (hex code 0x2D).

Slideshow.Resolution Shows the dimensions of the current picture (Width x

Height)

Slideshow.SlideComment

Shows a description of the current picture. This is the value

of the EXIF User Comment tag (hex code 0x9286). This is

the same value as Slideshow.EXIFComment.

Slideshow.SlideIndex Shows the slide index of the current picture

Slideshow.Source Shows the original owner of the current picture. This is the

value of the IPTC Source tag (hex code 0x73).

Page 125: XBMC Skinning Manual - XBMC1

Slideshow.SpecialInstructions

Shows other editorial instructions concerning the use of the

current picture. This is the value of the IPTC

SpecialInstructions tag (hex code 0x28).

Slideshow.State

Shows the State/Province where the current picture was

taken. This is the value of the IPTC ProvinceState tag (hex

code 0x5F).

Slideshow.Sublocation

Shows the location within a city where the current picture

was taken - might indicate the nearest landmark. This is the

value of the IPTC SubLocation tag (hex code 0x5C).

(Gotham addition)

Slideshow.SupplementalCategories

Shows supplemental category codes to further refine the

subject of the current picture. This is the value of the IPTC

SuppCategory tag (hex code 0x14).

Slideshow.TimeCreated

Shows the time when the intellectual content of the current

picture was created, rather than when the picture was

created. This is the value of the IPTC TimeCreated tag (hex

code 0x3C). (Gotham addition)

Slideshow.TransmissionReference

Shows a code representing the location of original

transmission of the current picture. This is the value of the

IPTC TransmissionReference tag (hex code 0x67).

Slideshow.Urgency

Shows the urgency of the current picture. Values are 1-9.

The 1 is most urgent. Some image management programs

use urgency to indicate picture rating, where urgency 1 is 5

stars and urgency 5 is 1 star. Urgencies 6-9 are not used for

rating. This is the value of the IPTC Urgency tag (hex code

0x0A). (Gotham addition)

Slideshow.WhiteBalance Shows the white balance mode set when the current picture

was taken. The possible values are "Manual" and "Auto".

This is the value of the EXIF WhiteBalance tag (hex code

Page 126: XBMC Skinning Manual - XBMC1

0xA403).

13.12 System

infolabels Definition

System.Time Current time

System.Time(format)

Shows hours (hh), minutes (mm) or seconds (ss). When 12 hour

clock is used (xx) will return AM/PM. Also supported: (hh:mm),

(mm:ss), (hh:mm:ss), (hh:mm:ss). (xx) option added after dharma

System.Date Current date

System.Date(format)

Show current date using format, available markings: d (day of month

1-31), dd (day of month 01-31), ddd (short day of the week Mon-

Sun), DDD (long day of the week Monday-Sunday), m (month 1-12),

mm (month 01-12), mmm (short month name Jan-Dec), MMM (long

month name January-December), yy (2-digit year), yyyy (4-digit

year). Added after dharma.

System.AlarmPos Shutdown Timer position

System.BatteryLevel Returns the remaining battery level in range 0-100

System.FreeSpace Total Freespace on the drive

System.UsedSpace Total Usedspace on the drive

System.TotalSpace Totalspace on the drive

Page 127: XBMC Skinning Manual - XBMC1

System.UsedSpacePercent Total Usedspace Percent on the drive

System.FreeSpacePercent Total Freespace Percent on the drive

System.CPUTemperature Current CPU temperature

System.GPUTemperature Current GPU temperature

System.FanSpeed Current fan speed

System.BuildVersion Version of build

System.BuildDate Date of build

System.FriendlyName Returns the xbmc instance name. It will auto append (%hostname%)

in case the device name was not changed. eg. "XBMC (htpc)"

System.FPS Current rendering speed (frames per second)

System.FreeMemory Amount of free memory in Mb

System.Memory(format) Available formats: used, used.percent, free, free.percent, total

System.ScreenMode Screenmode (eg windowed / fullscreen)

System.ScreenWidth Width of screen in pixels

System.ScreenHeight Height of screen in pixels

Page 128: XBMC Skinning Manual - XBMC1

System.StartupWindow The Window XBMC will load on startup (Future Gotham addition)

System.CurrentWindow Current Window we are in

System.CurrentControl Current focused control

System.DVDLabel Label of the disk in the DVD-ROM drive

System.HddTemperature Hdd temperature

System.KernelVersion System kernel version

System.Uptime System current uptime

System.TotalUptime System total uptime

System.CpuFrequency System cpu frequency

System.ScreenResolution Screen resolution

System.VideoEncoderInfo Video encoder info

System.InternetState

Will return the internet state, connected or not connected

and for Conditional use: Connected->TRUE, not Connected-

>FALSE, do not use to check status in a pythonscript since it is

threaded.

System.Language Shows the current language

System.GetBool(boolean) Returns the value of any standard system boolean setting. Will not

work with settings in advancedsettings.xml

System.ProfileName Shows the User name of the currently logged in XBMC user

Page 129: XBMC Skinning Manual - XBMC1

System.ProfileCount Shows the number of defined profiles

System.ProfileAutoLogin The profile XBMC will auto login to (Future Gotham addition)

System.TemperatureUnits Shows Celsius or Fahrenheit symbol

13.13 System params

infolabels Definition

System.AddonTitle(id) Returns the title of the specified addon. Instead of specifying the id

directly, one can also use an infolabel (eg. $INFO[Skin.String(Foo)])

System.CoreUsage !Description missing!

13.14 Visualisation

infolabels Definition

Visualisation.Preset Shows the current preset of the visualisation.

Visualisation.Name Shows the name of the visualisation.

13.15 Weather labels

infolabels Definition

Weather.Conditions Current weather conditions – this is looked up in a background process.

Weather.Temperature Current weather temperature

Weather.Location City/town which the above two items are for

Page 130: XBMC Skinning Manual - XBMC1

Weather.fanartcode Current weather fanartcode.

Weather.plugin Current weather plugin.

13.16 Window

infolabels Definition

Window([window]).Property(key) Window property. (key can be any value, optional window

can be id or name)

Window.Property(xmlfile) Displays the name of the xml file currently shown

Window(Home).Property(key)

The home window has the following info labels.

Movies.Count, Movies.Watched, Movies.UnWatched,

TVShows.Count, TVShows.Watched, TVShows.UnWatched,

Episodes.Count, Episodes.Watched, Episodes.UnWatched,

MusicVideos.Count, MusicVideos.Watched,

MusicVideos.UnWatched, Music.SongsCount,

Music.AlbumsCount, Music.ArtistsCount

LatestMovie.[1-10].Title, LatestMovie.[1-10].Year,

LatestMovie.[1-10].RunningTime, LatestMovie.[1-

10].Rating, LatestMovie.[1-10].Plot, LatestMovie.[1-

10].Trailer, LatestMovie.[1-10].Thumb, LatestMovie.[1-

10].Fanart, LatestMovie.[1-10].Path

LatestEpisode.[1-10].ShowTitle, LatestEpisode.[1-

10].EpisodeTitle, LatestEpisode.[1-10].EpisodeNo,

LatestEpisode.[1-10].EpisodeSeason, LatestEpisode.[1-

10].EpisodeNumber, LatestEpisode.[1-10].Rating,

LatestEpisode.[1-10].Plot, LatestEpisode.[1-10].Thumb,

LatestEpisode.[1-10].ShowThumb, LatestEpisode.[1-

10].SeasonThumb, LatestEpisode.[1-10].Fanart,

LatestEpisode.[1-10].Path

LatestMusicVideo.[1-10].Title, LatestMusicVideo.[1-

Page 131: XBMC Skinning Manual - XBMC1

10].Thumb, LatestMusicVideo.[1-10].Year,

LatestMusicVideo.[1-10].Plot, LatestMusicVideo.[1-

10].RunningTime, LatestMusicVideo.[1-10].Path,

LatestMusicVideo.[1-10].Artist, LatestMusicVideo.[1-

10].Fanart

LatestSong.[1-10].Title, LatestSong.[1-10].Artist,

LatestSong.[1-10].Album, LatestSong.[1-10].Year,

LatestSong.[1-10].Rating, LatestSong.[1-10].Thumb,

LatestSong.[1-10].Fanart, LatestSong.[1-10].Path

LatestAlbum.[1-10].Title, LatestAlbum.[1-10].Artist,

LatestAlbum.[1-10].Year, LatestAlbum.[1-10].Rating,

LatestAlbum.[1-10].Thumb, LatestAlbum.[1-10].Fanart,

LatestAlbum.[1-10].Path

Window(Weather).Property(key)

The weather window has the following info labels.

Location, Updated, Current.Condition, Current.Temperature,

Current.FeelsLike, Current.UVIndex, Current.Wind (From

<wind dir.> at <speed> <unit>), Current.WindSpeed,

Current.WindDirection, Current.DewPoint,

Current.Humidity, Day[0-6].Title, Day[0-6].HighTemp,

Day[0-6].LowTemp, Day[0-6].Outlook

13.17 Images Available in XBMC

infolabels Definition

Container.FolderThumb Thumbnail Image of the current displayed folder of list

and thumb panels

Container.TvshowThumb Thumbnail Image of the parent TV show

Container.SeasonThumb Thumbnail Image of the parent TV show season

Fanart.Image Fanart image for the parent TV Show

ListItem.Thumb Shows the thumbnail (if it exists) of the currently selected

Page 132: XBMC Skinning Manual - XBMC1

item in a list or thumb control

ListItem.Icon

Shows the thumbnail (if it exists) of the currently selected

item in a list or thumb control. If no thumbnail image

exists, it will show the icon.

ListItem.ActualIcon Shows the icon of the currently selected item in a list or

thumb control.

ListItem.Art(thumb) Returns the thumbnail of the currently selected item.

(Frodo addition)

ListItem.Art(poster) Returns the poster of the currently selected tv show.

(Frodo addition)

ListItem.Art(banner) Returns the banner of the currently selected tv show.

(Frodo addition)

ListItem.Art(fanart) Returns the fanart image of the currently selected item.

(Frodo addition)

ListItem.Art(tvshow.poster) Returns the tv show poster of the parent container. (Frodo

addition)

ListItem.Art(tvshow.banner) Returns the tv show banner of the parent container.

(Frodo addition)

ListItem.Art(season.poster)

Returns the season poster of the currently selected season.

(Frodo addition) Only available in

DialogVideoInfo.xml

ListItem.Art(season.banner)

Returns the season banner of the currently selected season.

(Frodo addition) Only available in

DialogVideoInfo.xml

Page 133: XBMC Skinning Manual - XBMC1

ListItem.Art(season.fanart)

Returns the fanart image of the currently selected season.

(Frodo addition) Only available in

DialogVideoInfo.xml

ListItem.Overlay

Shows the Overlay Icon status (compressed file

[OverlayRAR.png], Trainer [OverlayTrainer.png],

watched [OverlayWatched.png], unwatched

[OverlayUnwatched.png], locked [OverlayLocked.png])

of the currently selected item in a list or thumb control.

ListItem.StarRating Returns a value of 0 to 5 as a graphical display from

images named rating0.png to rating5.png of the skin

ListItem.Property(ArtistThumb) Thumbnail Image of the parent artist, for use in

dialogalbuminfo.xml and dialogsonginfo.xml

ListItem.Property(Addon.StarRating) Returns a value of rating0.png to rating5.png for the

currently selected addon

ListItem.Property(Fanart_Image) Fanart Image currently selected item or of the parent TV

show (Frodo addition)

ListItem.Property(SeasonThumb) Thumbnail Image of the parent TV show season, for use in

dialogvideoinfo.xml

ListItem.Property(TVShowThumb)

Thumbnail Image of the parent TV show, for use in

dialogvideoinfo.xml (Frodo addition available

anywhere)

MusicPlayer.Cover Cover of currently playing album

MusicPlayer.Property(Fanart_Image) Fanart image of the currently playing artist

Page 134: XBMC Skinning Manual - XBMC1

Player.Art(fanart) Fanart Image the currently playing episode's parent TV

show (Frodo addition)

Player.Art(tvshowthumb) Thumbnail Image the currently playing episode's parent

TV show (Frodo addition)

Player.Art(poster) Poster Image the currently playing item. (Frodo addition)

Player.Art(thumb) Thumbnail Image the currently playing item. (Frodo

addition)

Player.StarRating Returns a value of 0 to 5 as a graphical display from

images named rating0.png to rating5.png of the skin

Pvr.NowRecordingChannelIcon Channel icon of the programme currently being recorded.

(Frodo addition)

Pvr.NextRecordingChannelIcon Channel icon of the programme that will be recorded next.

(Frodo addition)

Skin.String(name)

Returns the image or image folder set by the user via a

Skin.SetPath(name) or Skin.SetImage(name) List of Built

In Functions. Allows skinners to have user-customisable

images and multiimages.

System.AddonIcon(id)

Returns the Icon of the specified addon. Instead of

specifying the id directly, one can also use an infolabel

(eg. $INFO[Skin.String(Foo)])

System.ProfileThumb Shows the Thumbnail image of the currently logged in

XBMC user

VideoPlayer.Cover Cover of currently playing movie

Page 135: XBMC Skinning Manual - XBMC1

Weather.Conditions Image of current weather conditions (NOTE: Can be used

to load/refresh weather conditions)

Window([window]).Property(key) Window property. (key can be any value, optional window

can be id or name)

Window(Weather).Property(key)

The weather window has the following info images.

Current.ConditionIcon, Day[0-6].OutlookIcon,

Current.FanartCode, Day[0-6].FanartCode

13.18 See also

Development:

Add-on development

Skinning

14 Apendix IV: List of Built In Functions

Development Add-on development XBMC Skinning Manual

See also: Python development and Skinning

The latest up-to-date list of built-in functions can be found in the function CBuiltins::Execute()

in the source code file xbmc/interfaces/Builtins.cpp.

In addition to the following list, for most <onclick> and <onfocus> button actions in the skin you

can also use the functions from Keyboard.xml.

Example: <onclick>VolumeUp</onclick>

<onclick>VolumeDown</onclick>

You can use parameters with all media windows, as can be seen here:

Opening Windows and Dialogs

14.1 List of functions

Page 136: XBMC Skinning Manual - XBMC1

Help This help message

Reboot Cold reboots the system (power

cycle)

ShutDown Trigger default Shutdown action

defined in System Settings

Powerdown Powerdown system

Quit Quits XBMC

Hibernate Hibernate (S4) the System

Suspend Suspends (S3 / S1 depending on bios

setting) the System

InhibitIdleShutdown(true/false) Prevent the system to shutdown on

idle. (Future Frodo addition)

AllowIdleShutdown Allow the system to shutdown on

idle. (Future Frodo addition)

ActivateScreensaver Starts the screensaver (Future

Gotham addition)

RestartApp Restarts XBMC (not implemented

under Win32)

Minimize Minimizes XBMC

Page 137: XBMC Skinning Manual - XBMC1

Reset Reset the system (same as reboot)

Mastermode Runs XBMC in master mode

SetGUILanguage Set GUI Language (Future Gotham

addition)

ActivateWindow(window[,dir,return])

Opens the given window. The

parameter window can either be the

window's id, or in the case of a

standard window, the window's name.

See here for a list of window names,

and their respective ids. If,

furthermore, the window is Music,

Video, Pictures, or Program files,

then the optional dir parameter

specifies which folder XBMC should

default to once the window is opened.

This must be a source as specified in

sources.xml, or a subfolder of a valid

source. For some windows

(MusicLibrary and VideoLibrary), the

return parameter may be specified,

which indicates that XBMC should

use this folder as the "root" of the

level, and thus the "parent directory"

action from within this folder will

return the user to where they were

prior to the window activating.

ActivateWindowAndFocus(id1, id2,item1, id3,item2)

Activate window with id1, first focus

control id2 and then focus control id3.

if either of the controls is a container,

you can specify which item to focus

(else, set it to 0).(Future Frodo

addition)

ReplaceWindowAndFocus(id1, id2,item1, id3,item2) Replace window with id1, first focus

control id2 and then focus control id3.

Page 138: XBMC Skinning Manual - XBMC1

if either of the controls is a container,

you can specify which item to focus

(else, set it to 0).(Future Gotham

addition)

ReplaceWindow(window,dir)

Replaces the current window with the

given window. This is the same as

ActivateWindow() but it doesn't

update the window history list, so

when you go back from the new

window it will not return to the

previous window, rather will return to

the previous window's previous

window.

TakeScreenshot Takes a Screenshot

RunScript(script[,args]*)

Runs the python script. You must

specify the full path to the script. If

the script is an add-on, you can also

execute it using its add-on id. As of

2007/02/24, all extra parameters are

passed to the script as arguments and

can be accessed by python using

sys.argv

StopScript(id) Stop the script by ID or path, if

running

RunAppleScript(script[,args]*) Run the specified AppleScript

command

RunPlugin(plugin)

Runs the plugin. Full path must be

specified. Does not work for folder

plugins

RunAddon(id) Runs the specified plugin/script

Page 139: XBMC Skinning Manual - XBMC1

Extract

Extracts a specified archive to an

optionally specified path. !

REQUIRES ABSOLUTE PATHS !

PlayMedia(media[,isdir][,1],[playoffset=xx])

Plays the media. This can be a

playlist, music, or video file,

directory, plugin or an Url. The

optional parameter ",isdir" can be

used for playing a directory. ",1" will

start a video in a preview window,

instead of fullscreen. If media is a

playlist, you can use playoffset=xx

where xx is the position to start

playback from.

SlideShow(dir [,recursive, [not]random])

Starts a slideshow of pictures in the

folder dir. Optional parameters are

"recursive", and "random" or

"notrandom" parameters. The

"recursive" parameter starts a

recursive slideshow, adding images

from sub-folders. The "random" and

"notrandom" parameters override the

Randomize setting found in the

pictures media window.

RecursiveSlideShow(dir) Run a slideshow from the specified

directory, including all subdirs

ReloadSkin()

Reloads the current skin – useful for

Skinners to use after they upload

modified skin files (saves power

cycling)

UnloadSkin() uNLOADS the current skin

RefreshRSS Reload RSS feeds from

Page 140: XBMC Skinning Manual - XBMC1

RSSFeeds.xml

PlayerControl(command)

Allows control of music and videos.

The command may be one of Play,

Stop, Forward, Rewind, Next,

Previous, BigSkipForward,

BigSkipBackward,

SmallSkipForward,

SmallSkipBackward, Random,

RandomOn, RandomOff, Repeat,

RepeatOne, RepeatAll, RepeatOff,

Partymode(music) or

Partymode(video) or Partymode(path

to .xsp file), and Record. Play will

either pause, resume, or stop ffwding

or rewinding. Random toggles

random playback and Repeat cycles

through the repeat modes (these both

take an optional second parameter,

Notify, that notifies the user of the

new state). Partymode(music/video)

toggles the appropriate partymode,

defaults to music if no parameter is

given, besides the default music or

video partymode you can also pass a

path to a custom smartplaylist (.xsp)

as parameter.

Playlist.PlayOffset Start playing from a particular offset

in the playlist

Playlist.Clear Clear the current playlist

EjectTray() Either opens or closes the DVD tray,

depending on its current state

AlarmClock(name,command,time[,silent,loop])

Pops up a dialog asking for the length

of time for the alarm (unless the

parameter time is specified), and

starts a timer. When the timer runs

Page 141: XBMC Skinning Manual - XBMC1

out, it'll execute the built-in command

(the parameter command) if it is

specified, otherwise it'll pop up an

alarm notice. Add silent to hide the

alarm notification. Add loop for the

alarm to execute the command each

time the specified time interval

expires.

CancelAlarm(name[,silent])

Cancel a running alarm. Set silent to

true to hide the alarm notification.

only available in trunk >r35674

Action Executes an action for the active

window (same as in keymap)

Notification(header,message[,time,image])

Will display a notification dialog with

the specified header and message, in

addition you can set the length of

time it displays in milliseconds and a

icon image.

PlayDVD Will play the inserted CD or DVD

media from the DVD-ROM drive.

RipCD Will rip the inserted CD from the

DVD-ROM drive.

Skin.ToggleSetting(setting)

Toggles the skin setting ?setting? for

use with conditional visibility tags

containing Skin.HasSetting(setting).

Skin.SetString(string[,value])

Pops up a keyboard dialog and allows

the user to input a string which can be

used in a label control elsewhere in

the skin via the info tag

Skin.String(string). If the value

parameter is specified, then the

Page 142: XBMC Skinning Manual - XBMC1

keyboard dialog does not pop up, and

the string is set directly.

Skin.SetNumeric(numeric[,value]) Pops up a keyboard dialog and allows

the user to input a numerical.

Skin.SetPath(string[,value])

Pops up a folder browser and allows

the user to select a folder of images to

be used in a multi image control else

where in the skin via the info tag

Skin.String(string). If the value

parameter is specified, then the file

browser dialog does not pop up, and

the path is set directly.

Skin.Theme Cycles the skin theme. Skin.theme(-1)

will go backwards.

Skin.SetImage(string[,value])

Pops up a file browser and allows the

user to select an image file to be used

in an image control elsewhere in the

skin via the info tag

Skin.String(string). If the value

parameter is specified, then the file

browser dialog does not pop up, and

the image path is set directly.

Skin.SetLargeImage(string[,value])

Pops up a file browser and allows the

user to select an large image file to be

used in an image control else where

in the skin via the info tag

Skin.String(string). If the value

parameter is specified, then the file

browser dialog does not pop up, and

the image path is set directly.

Skin.SetFile(string,mask,folderpath) Pops up a folder browser and allows

the user to select a file off the hard-

disk to be used else where in the skin

Page 143: XBMC Skinning Manual - XBMC1

via the info tag Skin.String(string). If

the mask parameter is specified, then

the file browser will only search for

the extension specified

(.avi,.mp3,.m3u,.png,.bmp,etc.,etc.).

To use multiple extensions separate

them using "|" minus quotes. If the

folderpath parameter is set the file

browser will start in that folder.

Skin.SetAddon(string,type)

Pops up a select dialog and allows the

user to select an add-on of the given

type to be used elsewhere in the skin

via the info tag Skin.String(string).

The most common types are

xbmc.addon.video,

xbmc.addon.audio,

xbmc.addon.image and

xbmc.addon.executable.

Skin.SetBool(setting)

Sets the skin setting ?setting? to true,

for use with the conditional visibility

tags containing

Skin.HasSetting(setting). The settings

are saved per-skin in settings.xml just

like all the other XBMC settings.

Skin.Reset(setting)

Resets the skin setting ?setting?.

If ?setting? is a bool setting (i.e. set

via SetBool or ToggleSetting) then

the setting is reset to false. If ?setting?

is a string (Set via SetString,

SetImage, or SetPath) then it is set to

empty.

Skin.ResetSettings

Resets all the above skin settings to

their defaults (toggles all set to false,

strings all set to empty.)

Page 144: XBMC Skinning Manual - XBMC1

Mute Mutes (or unmutes) the volume.

SetVolume(percent[,showvolumebar])

Sets the volume to the percentage

specified. Optionally, show the

Volume Dialog in XBMC when

setting the volume.

Dialog.Close(dialog[,force])

Close a dialog. Set force to true to

bypass animations. Use (all,true) to

close all opened dialogs at once.

System.LogOff Log off current user.

System.Exec Execute shell commands.

System.ExecWait Execute shell commands and freezes

XBMC until shell is closed.

Resolution Change XBMC's Resolution.

SetFocus(id,position)

Will make a list with the "id"

specified in the command gain focus

at "position" number in its list. Alias

SetFocus(id,position)

UpdateLibrary(database,[path])

Takes either "video" or "music" as a

parameter to begin updating the

corresponding database. For "video"

you can additionally specify a

specific path to be scanned.

CleanLibrary(database)

This funtion will perform a number of

'cleanup' tasks on your video database

and can be run if you have moved,

deleted or renamed files. Takes either

Page 145: XBMC Skinning Manual - XBMC1

"video" or "music" as a parameter to

begin cleaning the corresponding

database.

exportlibrary(music,false,filepath)

The music library will be exported to

a single file stored at filepath

location.

exportlibrary(video,true,thumbs,overwrite,actorthumbs)

The video library is exported to

multiple files with the given options.

Here thumbs, overwrite and

actorthumbs are boolean values (true

or false).

PageDown Send a page down event to the

pagecontrol with given id.

PageUp Send a page up event to the

pagecontrol with given id.

LastFM.Love

All songs that can be submitted to

Last.fm can be loved, optional

parameter (false) = direct loving

without confirmationdialog. (Future

Frodo removal)

LastFM.Ban

Only songs that are playing on last.fm

radio can be banned, optional

parameter (false) = direct banning

without confirmationdialog. (Future

Frodo removal)

Container.Refresh Refresh current listing.

Container.Update Update current listing. Send

Container.Update(path,replace) to

Page 146: XBMC Skinning Manual - XBMC1

reset the path history.

Container.NextViewMode Select the next view mode.

Container.PreviousViewMode Select the previous view mode.

Container.SetViewMode(id) Set the current view mode (list, icons

etc.) to the given container id.

Container.NextSortMethod Change to the next sort method.

Container.PreviousSortMethod Change to the previous sort method.

Container.SetSortMethod Change to the specified sort method.

Container.SortDirection Toggle the sort direction.

Control.Move(id,offset)

Will make a Container with the "id"

specified in the command move focus

by "offset".

Control.SetFocus(id,position)

Will make a list with the "id"

specified in the command gain focus

at "position" number in its list. Alias

SetFocus(id,position)

Control.Message(id,message,[windowid])

Sends a given message to a control in

a given window (or active window if

omitted). Messages can be

movedown, moveup, pagedown,

pageup, click.

SendClick(windowid,id) Sends a click to a control in a given

Page 147: XBMC Skinning Manual - XBMC1

window (or active window if

omitted).

LoadProfile(profilename,[prompt])

Load the specified profile. If prompt

is not specified, and a password

would be required for the requested

profile, this command will silently

fail. If promp' is specified and a

password is required, a password

dialog will be shown.

SetProperty(key,value[,id])

Sets a window property for the

current window (key,value), or the

specified window (key,value,id).

ClearProperty(key[,id])

Clears a window property for the

current focused window/dialog(key),

or the specified window (key,id).

PlayWith() Play the selected item with the

specified player core.

WakeOnLan(mac)

Sends the wake-up packet to the

broadcast address for the specified

MAC address (Format:

FF:FF:FF:FF:FF:FF or FF-FF-FF-FF-

FF-FF).

LCD.Suspend Suspends LCDproc. (Future Gotham

removal)

LCD.Resume Resumes LCDproc. (Future Gotham

removal)

Addon.Default.OpenSettings Open a settings dialog for the default

addon of the given type

Page 148: XBMC Skinning Manual - XBMC1

Addon.Default.Set

Open a select dialog to allow

choosing the default addon of the

given type

Addon.OpenSettings(id) Open a settings dialog for the addon

of the given id

UpdateAddonRepos Triggers a forced update of enabled

add-on repositories.

UpdateLocalAddons Triggers a scan of local add-on

directories.

ToggleDPMS Toggle DPMS mode manually

CECToggleState Toggle state of playing device via a

CEC peripheral

CECActivateSource Wake up playing device via a CEC

peripheral

CECStandby Put playing device on standby via a

CEC peripheral

Weather.Refresh Force weather data refresh

Weather.LocationNext Switch to next weather location

Weather.LocationPrevious Switch to previous weather location

Weather.LocationSet Switch to given weather location

(parameter can be 1-3)

Page 149: XBMC Skinning Manual - XBMC1

LIRC.Stop Removes XBMC as a LIRC client.

LIRC.Start Adds XBMC as a LIRC client.

LIRC.Send(command)

Sends a command to LIRC, syntax is

the lirc protocol without the newline.

Example: LIRC.Send(SEND_ONCE

Onkyo_RC-453S2 volup)

VideoLibrary.Search Brings up a search dialog which will

search the library

ToggleDebug Enables/disables debug mode

StartPVRManager (Re)Starts the PVR manager

StopPVRManager Stops the PVR manager

StartAndroidActivity(package,[intent,dataType,dataURI])

Launch an Android native app with

the given package name. Optional

parms (in order): intent, dataType,

dataURI.

15 Apendix V: List of Built In Controls

15.1 .xml files

15.1.1 AddonBrowser.xml

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

Page 150: XBMC Skinning Manual - XBMC1

5 radiobutton Enable auto-updating of the installed add-on's

6 radiobutton Enable add-on notifications

7 radiobutton Enable language filter

15.1.2 DialogAddonInfo.xml

ID TYPE DESCRIPTION

6 button Install the selected add-on

7 button Disable the selected add-on

8 button Update the selected add-on

9 button Show the settings of the selected add-on

10 button Show the changelog of the selected add-on

11 button Rollback the selected add-on

15.1.3 DialogAddonSettings.xml

ID TYPE DESCRIPTION

2 grouplist Grouplist template

3 button Button template

4 radiobutton Radiobutton template

5 spincontrolex Spincontrolex template

6 image Default separator image

7 label Label template

8 sliderex Slider template

9 grouplist Grouplist template

10 button OK button

11 button Cancel button

12 button Defaults button

13 button Button template

20 label Heading label

15.1.4 DialogAlbumInfo.xml

Page 151: XBMC Skinning Manual - XBMC1

ID TYPE DESCRIPTION

3 image Artist / Album thumbnail

4 textbox Artist biography / Album review

5 button Artist biography / discography toggle and album tracks / review toggle

(Deprecated)

6 button Refresh artist information / Refresh album information

10 button Get artist thumbnail / Get album thumbnail

11 button Connect to the Last.fm radio channel for this artist

12 button Get artist fanart image

50 container List of the discography of the selected artist / List of the tracks on the

selected album

15.1.5 DialogBusy.xml

ID TYPE DESCRIPTION

10 progress Progress bar

15.1.6 DialogButtonMenu.xml

ID TYPE DESCRIPTION

3100 label Label of the focused button

15.1.7 DialogContentSettings.xml

ID TYPE DESCRIPTION

3 spincontrolex Select content type (movies, tv shows, music videos)

4 container List of the available scrapers

5 grouplist Grouplist template

6 button Show the available scraper settings

7 button Button template

8 radiobutton Radiobutton template

28 button OK button

Page 152: XBMC Skinning Manual - XBMC1

29 button Cancel button

15.1.8 DialogContextMenu.xml

ID TYPE DESCRIPTION

999 image Background image of the context menu (center part) (deprecated)

998 image Background image of the context menu (bottom part) (deprecated)

997 image Background image of the context menu (top part) (deprecated)

996 grouplist Grouplist template

999 image Background image of the context menu

1000 button Button template

15.1.9 DialogExtendedProgressBar.xml

ID TYPE DESCRIPTION

30 label Heading label

31 label Line 1

32 progress Scan progress bar

15.1.10 DialogFavourites.xml

ID TYPE DESCRIPTION

450 container List of available favourites

15.1.11 DialogFileStacking.xml

ID TYPE DESCRIPTION

450 container List of all the parts the stacked movie consists of.

15.1.12 DialogGamePad.xml

Page 153: XBMC Skinning Manual - XBMC1

ID TYPE DESCRIPTION

2 label Line 1

3 label Line 2

4 label Line 3

15.1.13 DialogKaiToast.xml

ID TYPE DESCRIPTION

400 image Default Icon

401 label Heading text

402 label Message text

403 image Information icon, used when an informational message is displayed

404 image Warning icon, used when a warning message is displayed

405 image Error icon, used when an error message is displayed

15.1.14 DialogKaraokeSongSelector.xml

ID TYPE DESCRIPTION

401 label Song number

402 label Song Name

15.1.15 DialogKaraokeSongSelectorLarge.xml

ID TYPE DESCRIPTION

401 label Song number

402 label Song Name

15.1.16 DialogKeyboard.xml

ID TYPE DESCRIPTION

8 button Backspace button

Page 154: XBMC Skinning Manual - XBMC1

48 –

57 button Digits 0 – 9

65 –

90 button Characters A – Z

300 button Done Button

301 button Cancel button

302 radiobutton Shift button

303 radiobutton Caps-Lock button

304 radiobutton Switch to symbols

305 button Navigate left button

306 button Navigate right button

307 button Enter IP address button

310 label Label displaying the text being entered

311 label Heading label

15.1.17 DialogMediaFilter.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

1 label Heading label

5 container List of filter options

7 button Button template

8 radiobutton Button template

9 spincontrolex Button template

10 sliderex Button template

12 edit Button template

28 button OK button

29 button Cancel button

15.1.18 DialogMediaSource.xml

ID TYPE DESCRIPTION

2 label Heading label

Page 155: XBMC Skinning Manual - XBMC1

10 container List of added media sources

11 button Browse for location button

12 button Button for entering the name for the selected source

13 button Add new source button

14 button Delete source button

18 button OK button

19 button Cancel button

15.1.19 DialogMusicScan.xml

(deprecated in Frodo)

ID TYPE DESCRIPTION

401 label Status label

402 label Label displaying the item currently being scanned

403 progress Scan progress bar

15.1.20 DialogMuteBug.xml

ID TYPE DESCRIPTION

901 image (MUTEBUG_IMAGE)

15.1.21 DialogNetworkSetup.xml

ID TYPE DESCRIPTION

10 spincontrolex Select network protocol

11 button Enter server address button

12 button Browse for server button

13 button Enter port number button

14 button Enter username button

15 button Enter Password button

16 button Manually enter server path

18 button OK button

19 button Cancel button

Page 156: XBMC Skinning Manual - XBMC1

15.1.22 DialogNumeric.xml

ID TYPE DESCRIPTION

1 label Heading label

4 label Label displaying the digits being entered

10 –

19 button Digits 0 – 9

20 button Navigate left button

21 button Enter Button

22 button Navigate right button

23 button Backspace button

15.1.23 DialogOK.xml

ID TYPE DESCRIPTION

1 label Heading label

2 label Line 1

3 label Line 2

4 label Line 3

10 button OK button

15.1.24 DialogPeripheralManager.xml

ID TYPE DESCRIPTION

10 button OK button

11 button Settings button

20 container List of peripheral devices

15.1.25 DialogPeripheralSettings.xml

ID TYPE DESCRIPTION

Page 157: XBMC Skinning Manual - XBMC1

1 label Heading label

3 label No settings label

5 container List of settings

7 button Button template

8 radiobutton Radiobutton template

9 spincontrolex spincontrolex template

10 sliderex Sliderex template

28 button OK button

29 button Cancel button

50 button Defaults button

15.1.26 DialogPictureInfo.xml

ID TYPE DESCRIPTION

5 container List of the available exif information of the image currently being

displayed

15.1.27 DialogProgress.xml

ID TYPE DESCRIPTION

1 label Heading label

2 label Line 1

3 label Line 2

4 label Line 3

10 button Cancel button

20 progress Progress bar

15.1.28 DialogPVRChannelManager.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

4 button OK button

Page 158: XBMC Skinning Manual - XBMC1

5 button Apply button

6 button Cancel button

7 radiobutton Activate channel button

6 button Cancel button

8 edit Channel name

9 button Channel logo

11 spincontrolex Select group

12 radiobutton Activate EPG

13 spincontrolex Select EPG source button

30 button Switch to group management

31 button Edit channel

32 button Delete channel

33 button New channel

34 button Toggle radio / tv channels

20 container Channel list

15.1.29 DialogPVRChannelsOSD.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

11 container Channels list

15.1.30 DialogPVRGroupManager.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

11 container Ungrouped channels

12 container Grouped channels

13 container Group list

26 button Add button

27 button Rename button

28 button Delete button

29 button OK button

15.1.31 DialogPVRGuideInfo.xml

Page 159: XBMC Skinning Manual - XBMC1

(Future Frodo addition)

ID TYPE DESCRIPTION

5 button Switch to channel button

6 button Record button

7 button OK button

15.1.32 DialogPVRGuideOSD.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

11 container Guide list

15.1.33 DialogPVRGuideSearch.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

9 edit Search string

10 radiobutton Include description

11 radiobutton Case sensitive

12 spincontrolex Minimal duration

13 spincontrolex Maximal duration

14 edit Start date

15 edit End date

16 edit Start time

17 edit End Time

18 spincontrolex Genre

19 radiobutton Avoid repeats

20 radiobutton Unknown genres

21 spincontrolex Groups

22 radiobutton FTA

23 spincontrolex Channels

24 radiobutton Ignore timers

25 button Cancel button

26 button Search button

Page 160: XBMC Skinning Manual - XBMC1

27 radiobutton Ignore recordings

28 button Defaults button

15.1.34 DialogPVRRecordingInfo.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

10 button OK button

15.1.35 DialogPVRTimerSettings.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

5 grouplist Grouplist template

7 button Button template

8 radiobutton Radio button template

9 spincontrolex Spincontrolex template

10 sliderex Sliderex template

11 image Seperator image

12 edit Edit control template

28 button OK button

29 button Cancel button

15.1.36 DialogSeekBar.xml

ID TYPE DESCRIPTION

401 slider Marker representing the current seek position

402 label Time label displaying current seek position

15.1.37 DialogSelect.xml

ID TYPE DESCRIPTION

1 label Heading label

3 container List of available options

Page 161: XBMC Skinning Manual - XBMC1

2 label Number of items in the list

5 button Manual/Get More... button

6 container List of available add-ons

15.1.38 DialogSlider.xml

ID TYPE DESCRIPTION

10 label Heading label

11 slider Slider

12 label Label representing the slider value

15.1.39 DialogSongInfo.xml

ID TYPE DESCRIPTION

10 button OK button

11 button Cancel button

12 button Switch to album information

13 button Get song thumbnail

15.1.40 DialogTextViewer.xml

ID TYPE DESCRIPTION

5 textbox Text area for add-on output

15.1.41 DialogVideoInfo.xml

ID TYPE DESCRIPTION

3 image Video thumb

4 textbox Text area for displaying the video plot

5 button Toggle between video review and cast members (Deprecated)

6 button Refresh video information

Page 162: XBMC Skinning Manual - XBMC1

8 button Play video

9 button Resume video

10 button Get video Fanart, Poster, Banner, or Thumb (Future Frodo addition)

11 button Play movie trailer

12 button Get video fanart image (deprecated in Frodo)

13 button Show all movies by the director of the selected movie (added after

dharma)

50 container List of cast members of the currently selected movie

15.1.42 DialogVideoScan.xml

(deprecated in Frodo)

ID TYPE DESCRIPTION

401 label Status label

402 label Label displaying the directory currently being scanned

403 progress Progress bar displaying the overall progress

404 progress Progress bar displaying the progress of the current item

405 label Label displaying the item currently being scanned

15.1.43 DialogYesNo.xml

ID TYPE DESCRIPTION

1 label Heading label

2 label Line 1

3 label Line 2

4 label Line 3

10 button No button

11 button Yes button

15.1.44 FileBrowser.xml

ID TYPE DESCRIPTION

Page 163: XBMC Skinning Manual - XBMC1

450 container Directory list

451 container List of available thumbnails

411 label Heading label

412 label Path of the selected item

413 button OK button

414 button Cancel button

415 button Create folder

416 radiobutton Flip Image horizontally

15.1.45 FileManager.xml

ID TYPE DESCRIPTION

12 label Number of items in directory list 1

13 label Number of items in directory list 2

20 container Directory list 1

21 container Directory list 2

101 label Path of the currently selected directory in list 1

102 label Path of the currently selected directory in list 2

15.1.46 LockSettings.xml

ID TYPE DESCRIPTION

5 grouplist Grouplist template

7 button Button template

8 radiobutton Radiobutton template

9 spincontrolex Spincontrolex template

28 button OK button

29 button Cancel button

15.1.47 LoginScreen.xml

ID TYPE DESCRIPTION

Page 164: XBMC Skinning Manual - XBMC1

2 label Heading label

3 label Number of the currently selected profile

52 container List of the available profiles

15.1.48 MusicKaraokeLyrics.xml

ID TYPE DESCRIPTION

1 karvisualisation Visualization used as the background for the karaoke lyrics window

2 image Image used as the background for the karaoke lyrics window

15.1.49 MusicOSD.xml

ID TYPE DESCRIPTION

500 button Select visualization

501 button (CONTROL_LOCK_BUTTON)

15.1.50 MusicOverlay.xml

ID TYPE DESCRIPTION

1 image (CONTROL_LOGO_PIC)

15.1.51 MusicVisualisation.xml

ID TYPE DESCRIPTION

2 visualisation Background Visualization

15.1.52 MyMusicNav.xml

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

Page 165: XBMC Skinning Manual - XBMC1

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

5 radiobutton Switch to file mode

8 edit Search for a string anywhere in the XBMC music database

12 label Number of items in the list

15 label (CONTROL_FILTER)

16 radiobutton Start party mode (randomly play songs from your entire music

collection)

17 button Manually enter artist and album name to lookup the artist and album

information on the internet

18 label Warning to the user to turn off library mode when no scanned media is

found

19 radiobutton / edit Filter the media files to only show items that include the specified

string in the name

15.1.53 MyMusicPlaylist.xml

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

12 label Number of items in the playlist

20 radiobutton Shuffle the playlist

21 button Save the playlist

22 button Clear the playlist

23 button Play the playlist

24 button Play the next song in the playlist

25 button Play the previous song in the playlist

26 button Put the playlist on repeat

15.1.54 MyMusicPlaylistEditor.xml

ID TYPE DESCRIPTION

6 button Load the playlist

Page 166: XBMC Skinning Manual - XBMC1

7 button Save the playlist

8 button Clear the playlist

12 label Number of items in the current directory or library list

50 container List allowing you to browse your directories and music library

100 container List of songs in the playlist

101 label Number of items in the playlist

15.1.55 MyMusicSongs.xml

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

5 radiobutton (CONTROL_BTNTYPE)

7 button Switch to the playlists section

9 button Scan the selected item to the library

10 button Record button

11 button Rip button (used for ripping cd's)

12 label Number of items in the list

15.1.56 MyPics.xml

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

6 button Start a picture slideshow

7 button Start a recursive picture slideshow

9 radiobutton Randomize the picture slideshow

12 label Number of items in the list

15.1.57 MyPrograms.xml

Page 167: XBMC Skinning Manual - XBMC1

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

12 label Number of items in the list

15.1.58 MyPVR.xml

(Future Frodo addition)

ID TYPE DESCRIPTION

10 epggrid EPG Guide Timeline

11 container TV Channels group

12 container Radio Channels group

13 container Recordings group

14 container Timers group

15 container EPG Guide Channel

16 container EPG Guide Now/Next

17 container Search group

31 button TV Guide

32 button TV Channels

33 button Radio Channels

34 button Recorings

35 button Timers

36 button Search

15.1.59 MyVideo.xml (deprecated)

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

5 button (CONTROL_BTNTYPE)

6 button Play DVD (used the play physical DVD discs)

7 radiobutton Stack button (used to display multi-part videos as a single item)

Page 168: XBMC Skinning Manual - XBMC1

8 button Scan item to the library

12 label Number of items in the list

13 button Switch to the playlists section

15.1.60 MyVideoNav.xml

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

5 button Switch to file mode

6 button Play DVD (used the play physical DVD discs)

7 radiobutton Stack button (used to display multi-part videos as a single item)

8 button Search for a string anywhere in the XBMC video database

10 button Show only watched, unwatched or all videos

12 label Number of items in the list

14 button Show only unwatched or all videos

11 button Unlock shares

15 label (CONTROL_FILTER)

16 button Start party mode (randomly play musicvideos from your collection)

17 button Flatten library (hide sub-catagories, like genres, studios, years, etc...)

18 label Warning to the user to turn off library mode when no scanned media

is found

19 radiobutton / edit Filter the media files to only show items that include the specified

string in the name

15.1.61 MyVideoPlaylist.xml

ID TYPE DESCRIPTION

2 button Select viewtype (list, thumbnail, media info, etc...)

3 button Select sort method (sort by: name, date size, etc...)

4 togglebutton Select sortmode (ascending or descending)

12 button Number of items in the playlist

Page 169: XBMC Skinning Manual - XBMC1

20 radiobutton Shuffle the playlist

21 button Save the playlist

22 button Clear the playlist

23 button Play the playlist

24 button Play the next song in the playlist

25 button Play the previous song in the playlist

26 button Put the playlist on repeat

15.1.62 MyWeather.xml

ID TYPE DESCRIPTION

2 button Refresh the weather information

3 spincontrolex Change weather location

11 label Shows the time of last weather update

31 label Current day label

32 label Today's high temperature value

33 label Today's low temperature value

34 label Today's weather condition

35 image Today's weather icon

101 image (CONTROL_IMAGELOGO)

223 label Localized “Temperature” string

224 label Localized “Feels like” string

225 label Localized “UV index” string

226 label Localized “Wind” string

227 label Localized “Dew point” string

228 label Localized “Humidity” string

15.1.63 Pointer.xml

ID TYPE DESCRIPTION

1 image Pointer no focus image

2 image Pointer focus image

3 image Pointer drag image

Page 170: XBMC Skinning Manual - XBMC1

4 image Pointer click image

15.1.64 ProfileSettings.xml

ID TYPE DESCRIPTION

2 image Profile image of the selected profile

5 grouplist Grouplist template

7 button Button template

8 radiobutton Radiobutton template

9 spincontrolex Spincontrolex template

11 image Separator image template

28 button OK button

29 button Cancel button

1000 label Name of the selected profile

1001 label Directory path of the selected profile

15.1.65 Settings.xml

ID TYPE DESCRIPTION

12

(CONTROL_CREDITS)

15.1.66 SettingsCategory.xml

ID TYPE DESCRIPTION

2 label Label displaying the current settings category

3 grouplist Grouplist template for the menu

5 grouplist Grouplist template for the settings section

7 button Button template

8 radiobutton Radiobutton template

9 spincontrolex Spincontrolex template

10 button Button template for the menu

11 image Default separator image

Page 171: XBMC Skinning Manual - XBMC1

12 edit Edit control template

15.1.67 SettingsProfile.xml

ID TYPE DESCRIPTION

2 container List of available profiles

3

(CONTROL_LASTLOADED_PROFILE)

4 button Enable the loginscreen

5 button Auto login (Future Gotham addition)

15.1.68 SettingsScreenCalibration.xml

ID TYPE DESCRIPTION

2 label Coordinates label

3 label Help information

8 mover Top left mover

9 mover Right bottom mover

10 mover Subtitle position mover

11 resize Pixel aspect ratio box

20 videowindow (CONTROL_VIDEO)

15.1.69 SlideShow.xml

ID TYPE DESCRIPTION

10 label (LABEL_ROW1)

11 label (LABEL_ROW2)

12 label (LABEL_ROW2_EXTRA)

13 [any] These controls are visible when the slideshow is paused

15.1.70 SettingsSystemInfo.xml

ID TYPE DESCRIPTION

Page 172: XBMC Skinning Manual - XBMC1

2 –

11 label Line 2 – Line 11

40 label System information category label

52 label Xbmc build label

94 button Show storage information

95 button Show summary information

96 button Show network information

97 button Show video information

98 button Show hardware information

99 button Show PVR information

15.1.71 SmartPlaylistEditor.xml

ID TYPE DESCRIPTION

2 label Heading label

10 container List of playlist rules

12 edit Name of the playlist

13 button Add a rule

14 button Remove a rule

15 button Edit a rule

16 spincontrolex Match rules option (match all rules / match one or more rules)

17 spincontrolex Limit rules option (number of results: 10, 25, 50, 100, etc... items)

18 spincontrolex Sort rules option (order the results by: title, genre, random, etc...)

19 togglebutton Sort direction option (ascending / descending)

20 button OK button

21 button Cancel button

22 spincontrolex Set Playlist type (movies, episodes, mixed, etc...)

23 spincontrolex Group by (Future Gotham addition)

24 radiobutton Mixed (Future Gotham addition)

15.1.72 SmartPlaylistRule.xml

ID TYPE DESCRIPTION

15 spincontrolex Select field (director, duration, video resolution, etc...)

16 spincontrolex Select operator (is, is not, less than, etc...)

Page 173: XBMC Skinning Manual - XBMC1

17 button Enter a value the rule should match

18 button OK button

19 button Cancel button

20 button Browse button

15.1.73 VideoFullScreen.xml

ID TYPE DESCRIPTION

10 label Line 1

11 label Line 2

12 label Line 3

13 button (BTN_OSD_VIDEO)

14 button (BTN_OSD_AUDIO)

15 button (BTN_OSD_SUBTITLE)

15.1.74 VideoOSDBookmarks.xml

ID TYPE DESCRIPTION

2 button Add a video bookmark

3 button Clear all bookmarks

4 button Use the currently selected video bookmark as the episode thumbnail

10

(CONTROL_LIST)

11 container List of available bookmarks

15.1.75 VideoOSDSettings.xml

ID TYPE DESCRIPTION

2 label Heading label

3 label Warning to the user that no settings are available

5 grouplist Grouplist template

7 button Button template

8 radiobutton Radiobutton template

Page 174: XBMC Skinning Manual - XBMC1

9 spincontrolex Spincontrolex template

10 sliderex Slider template

11 image Default separator image

28 button OK button

29 button Cancel button

15.1.76 VideoOverlay.xml

ID TYPE DESCRIPTION

2

(CONTROL_PLAYTIME)

3

(CONTROL_PLAY_LOGO)

4

(CONTROL_PAUSE_LOGO)

5

(CONTROL_INFO)

6

(CONTROL_BIG_PLAYTIME)

7

(CONTROL_FF_LOGO)

8

(CONTROL_RW_LOGO)

15.1.77 VisualisationPresetList.xml

ID TYPE DESCRIPTION

2 container List of available presets

3 label Heading label

4 label Warning to the user that no presets are available

15.2 See also

Development:

Add-on development

Skinning

16 Apendix VI: List of Default Icons

16.1 Icons used in XBMC skins

Page 175: XBMC Skinning Manual - XBMC1

The filenames of the default icons are as follows:

16.1.1 Add-ons

DefaultAddon.png

DefaultAddonAlbumInfo.png

DefaultAddonArtistInfo.png

DefaultAddonLyrics.png

DefaultAddonMovieInfo.png

DefaultAddonMusic.png

DefaultAddonMusicVideoInfo.png

DefaultAddonNone.png

DefaultAddonPicture.png

DefaultAddonProgram.png

DefaultAddonPVRClient.png

DefaultAddonRepository.png

DefaultAddonScreensaver.png

DefaultAddonService.png

DefaultAddonSkin.png

DefaultAddonSubtitles.png

DefaultAddonTvInfo.png

DefaultAddonVideo.png

DefaultAddonVisualization.png

DefaultAddonWeather.png

DefaultAddonWebSkin.png

16.1.2 Music

DefaultAlbumCover.png

DefaultArtist.png

DefaultAudio.png

DefaultMusicAlbums.png

Page 176: XBMC Skinning Manual - XBMC1

DefaultMusicArtists.png

DefaultMusicCompilations.png

DefaultMusicGenres.png

DefaultMusicPlaylists.png

DefaultMusicPlugins.png

DefaultMusicRecentlyAdded.png

DefaultMusicRecentlyPlayed.png

DefaultMusicSearch.png

DefaultMusicSongs.png

DefaultMusicTop100.png

DefaultMusicTop100Albums.png

DefaultMusicTop100Songs.png

DefaultMusicVideos.png

DefaultMusicVideoTitle.png

DefaultMusicYears.png

16.1.3 Videos

DefaultActor.png

DefaultCountry.png

DefaultDirector.png

DefaultGenre.png

DefaultInProgressShows.png (Frodo)

DefaultMovies.png

DefaultMovieTitle.png

DefaultRecentlyAddedEpisodes.png

DefaultRecentlyAddedMovies.png

DefaultRecentlyAddedMusicVideos.png

DefaultSets.png

DefaultStudios.png

Page 177: XBMC Skinning Manual - XBMC1

DefaultTVShows.png

DefaultTVShowTitle.png

DefaultVideo.png

DefaultVideoCover.png

DefaultVideoPlaylists.png

DefaultVideoPlugins.png

DefaultYear.png

16.1.4 Generic

DefaultAddSource.png

DefaultCDDA.png

DefaultDVDEmpty.png

DefaultDVDRom.png

DefaultFile.png

DefaultFolder.png

DefaultFolderBack.png

DefaultHardDisk.png

DefaultNetwork.png

DefaultPicture.png

DefaultPlaylist.png

DefaultProgram.png

DefaultRemovableDisk.png

DefaultScript.png

DefaultShortcut.png

DefaultVCD.png

OverlayHasTrainer.png

OverlayHD.png

Page 178: XBMC Skinning Manual - XBMC1

OverlayLocked.png

OverlayRAR.png

OverlayTrained.png

OverlayUnwatched.png

OverlayWatched.png

OverlayZIP.png

16.2 See also

Development:

Add-on development

Skinning

Retrieved from "http://wiki.xbmc.org/index.php?title=XBMC_Skinning_Manual&oldid=64093"

Categories:

Repositories

Skin Development

XBMC Manual

Frodo

Development

Languages

Python

Addon Development

Incomplete

Personal tools

Log in / create account

Namespaces

Page

Discussion

Variants

Views

Read

View source

View history

Page 179: XBMC Skinning Manual - XBMC1

Actions

Google Search

Search

Navigation

XBMC.org>

o XBMC.orgDownloadsSupport forumsBug trackerGit repo (source

code)TranslationsDonateWiki home

General topics>

o First time userInstallingBasic controlsVideosLive TVMusic/AudioPicturesRemote

controlsSettingsFrequently Asked QuestionsExtras>

o Add-onsSkinsSupplemental toolsMultiple usersSyncing and sharingWeatherAdvanced

topicsDevices>

o Hardware requirementsAndroidiOSLinuxMac OS XWindowsmore...Developers>

o Team XBMCXBMC developmentSkin developmentAdd-on developmentTranslation

SystemTest builds and betasTroubleshootingWiki help

Wiki help

Templates

Pages to cleanup

Incomplete pages

Recent changes

Random page

Toolbox

What links here

Related changes

Special pages

Printable version

Permanent link

This page was last modified on 7 September 2013, at 17:40.

This page has been accessed 3,092 times.

Content is available under Attribution-ShareAlike 3.0 Unported.

Privacy policy

About XBMC

Disclaimers