Controls: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>UNiversal
mNo edit summary
Hitcher (talk | contribs)
 
(31 intermediate revisions by 8 users not shown)
Line 4: Line 4:
== Available controls ==
== Available controls ==


; [[Add-on Rendering control]] : Control where rendering becomes performed from add-on.
; [[Button control]] : a standard push button control.
; [[Color Button Control]] : used for creating push buttons in Kodi with a box for color preview.
; [[EPGGrid control]] : used to display the EPG guide in the PVR section.
; [[Edit Control]] : used as an input control for the osd keyboard and other input fields.
; [[Fade label control]] : used to show multiple pieces of text in the same position, by fading from one to the other.
; [[Fixed List Container]] : used for a list of items with a fixed focus. Same as the [[Wrap List Container]] except it doesn't wrap.
; [[Game Control]] : used to display the currently playing game, with optional effects, whilst in the GUI.
; [[Game Controller]] : used to display a game controller, with optional effects.
; [[Game Controller List]] : used to give special behavior to a list of Game Controller controls.
; [[Group Control]] : used to group controls together.
; [[Group Control]] : used to group controls together.
; [[Group List Control]] : special case of the group control that forms a scrolling list of controls.
; [[Group List Control]] : special case of the group control that forms a scrolling list of controls.
; [[Label Control]] : used to show some lines of text.
; [[Fade Label Control]] : used to show multiple pieces of text in the same position, by fading from one to the other.
; [[Image Control]] : used to show an image.
; [[Image Control]] : used to show an image.
; [[Large Image Control]] : background loading version of the image control, for larger images.
; [[Label control]] : used to show some lines of text.
; [[List Container]] : used for a scrolling lists of items. Replaces the list control.
; [[Mover Control]] : used in the calibration screens.
; [[MultiImage Control]] : used to show a slideshow of images.
; [[MultiImage Control]] : used to show a slideshow of images.
; [[Button control]] : a standard push button control.
; [[Panel Container]] : used for a scrolling panel of items. Replaces the thumbnail panel.
; [[Progress Control]] : Used to show the progress of a particular operation.
; [[Resize ticker]] : used to set the pixel ratio in Video Calibration.
; [[RSS ticker]] : used to display scrolling RSS feeds.
; [[Ranges Control]] : Used to show multiple range blocks.
; [[Radio button control]] : a radio button control (as used for on/off settings).
; [[Radio button control]] : a radio button control (as used for on/off settings).
; [[Select button control]] : a select button control (allows multiple selections from a single button)
; [[Scroll Bar Control]] : used for a implementing a scroll bar.
; [[Toggle button control]] : a toggle on/off button that can take 2 different states.
; [[Settings Slider Control]] : used for a slider control in the settings menus.
; [[Multiselect control]] : a piece of text with multiple selectable "button" components.
; [[Spin Control]] : used for cycling up/down controls.
; [[Settings Spin Control]] : used for cycling up/down controls in the settings menus.
; [[Settings Spin Control]] : used for cycling up/down controls in the settings menus.
; [[Slider Control]] : used for a volume slider.
; [[Slider Control]] : used for a volume slider.
; [[Scroll Bar Control]] : used for a implementing a scroll bar.
; [[Spin Control]] : used for cycling up/down controls.
; [[Settings Slider Control]] : used for a slider control in the settings menus.
; [[Progress Control]] : Used to show the progress of a particular operation.
; [[List Container]] : used for a scrolling lists of items. Replaces the list control.
; [[Wrap List Container]] : used for a wrapping list of items with fixed focus.
; [[Fixed List Container]] : used for a list of items with a fixed focus. Same as the [[Wrap List Container]] except it doesn't wrap.
; [[Panel Container]] : used for a scrolling panel of items. Replaces the thumbnail panel.
; [[Text Box]] : used to show a multi-page piece of text.
; [[Text Box]] : used to show a multi-page piece of text.
; [[RSS feed Control]] : used to display scrolling RSS feeds.
; [[Toggle button control]] : a toggle on/off button that can take 2 different states.
; [[Video Control]] : used to display the currently playing video whilst in the GUI.
; [[Visualisation Control]] : used to display a visualisation while music is playing.
; [[Visualisation Control]] : used to display a visualisation while music is playing.
; [[Video Control]] : used to display the currently playing video whilst in the GUI.<br /><br />
; [[Wrap List Container]] : used for a wrapping list of items with fixed focus.
 
== Rarely used controls ==
 
; [[Mover Control]] : used in the calibration screens.
; [[Mover Control]] : used in the calibration screens.
; [[Resize Control]] : used to set the pixel ratio in Video Calibration.
; [[Resize control]] : used to set the pixel ratio in Video Calibration.
 


== Depreciated controls ==
== Depreciated controls ==
Line 38: Line 49:
Or may not work at all
Or may not work at all


; [[Buttonscrollers]] : used for multiple buttons in a scrollable list.
; Buttonscrollers : used for multiple buttons in a scrollable list.
; [[List Control]] : used for lists of items.
; Checkmark Control : Used on the XLink Kai Host Dialog. Similar to Radio Button but does not have the button texture, and the check-mark is on the left.
; [[Thumbnail Panel]] : used to show a panel of thumbnails.
; Console Control : used as a multi-coloured text display (XLink Kai window).
; [[Recently Added Media Control]] : used to display the last few items added to the video database.
; Extended List Control : used in the XLink Kai window.
 
; Large Image Control : background loading version of the image control, for larger images.
== Rarely used controls ==
; List Control : used for lists of items.
is XLink Kai used in XBMC anymore since the dropped support to xbox '''<big>?</big>'''
; Multiselect control : a piece of text with multiple selectable "button" components.
 
; Recently Added Media Control : used to display the last few items added to the video database.
; [[Edit Control]] : used as an input control for a USB keyboard (XLink Kai window).
; Select button control : a select button control (allows multiple selections from a single button)
; [[Console Control]] : used as a multi-coloured text display (XLink Kai window).
; Thumbnail Panel : used to show a panel of thumbnails.
; [[Checkmark Control]] : Used on the XLink Kai Host Dialog. Similar to Radio Button but does not have the button texture, and the check-mark is on the left.
; [[Extended List Control]] : used in the XLink Kai window.


== Built in controls ==
== Built in controls ==
Line 57: Line 66:
== XML tags that affect all control types ==
== XML tags that affect all control types ==


The XML tags that affect all control types [[Default Control Tags|can be found here.]]
The XML tags that affect all control types [[Default_control_tags|can be found here.]]


== Filling controls and dictating how they respond from the skin ==
== Filling controls and dictating how they respond from the skin ==


Most of the controls' contents are filled at runtime by the XBMC source codebase, but for controls such as buttons, labels and images, the Skinner has full control over what the button does or what the label and images look like, if they so desire. This is done via the use of conditional &lt;visible&gt; tags, built in &lt;execute&gt; functions, and &lt;info&gt; information tags. See the following links for more information.
Most of the controls' contents are filled at runtime by the Kodi source codebase, but for controls such as buttons, labels and images, the Skinner has full control over what the button does or what the label and images look like, if they so desire. This is done via the use of conditional &lt;visible&gt; tags, built in &lt;execute&gt; functions, and &lt;info&gt; information tags. See the following links for more information.


; [[Conditional Visibility]] : Defining when to display and hide a control, and how to animate the effect.
; [[Conditional visibility]] : Defining when to display and hide a control, and how to animate the effect.
; [[Animating Your Skin]] : Breathing life into controls by having defining how they move and respond to actions.
; [[Animating your skin]] : Breathing life into controls by having defining how they move and respond to actions.
; [[List of Built In Functions|Built In Functions]] : Defining what a button or list does when clicked or focused.
; [[List_of_built-in_functions|Built In Functions]] : Defining what a button or list does when clicked or focused.
; [[InfoLabels|Specifying Labels]] : Defining what a label control or image control's contents should be.
; [[InfoLabels|Specifying Labels]] : Defining what a label control or image control's contents should be.


[[Category:Skin Development]]
== See also ==
'''Development:'''
* [[Add-on development]]
* [[Skinning]]
 
[[Category:Skin development]]

Latest revision as of 19:19, 22 June 2026

This page or section may require cleanup, updating, spellchecking, reformatting and/or updated images. Please improve this page if you can. The discussion page may contain suggestions.


NOTE: The control definitions here can be become out of date. The latest xml behavior can be found in the Git cpp code

Available controls

Add-on Rendering control
Control where rendering becomes performed from add-on.
Button control
a standard push button control.
Color Button Control
used for creating push buttons in Kodi with a box for color preview.
EPGGrid control
used to display the EPG guide in the PVR section.
Edit Control
used as an input control for the osd keyboard and other input fields.
Fade label control
used to show multiple pieces of text in the same position, by fading from one to the other.
Fixed List Container
used for a list of items with a fixed focus. Same as the Wrap List Container except it doesn't wrap.
Game Control
used to display the currently playing game, with optional effects, whilst in the GUI.
Game Controller
used to display a game controller, with optional effects.
Game Controller List
used to give special behavior to a list of Game Controller controls.
Group Control
used to group controls together.
Group List Control
special case of the group control that forms a scrolling list of controls.
Image Control
used to show an image.
Label control
used to show some lines of text.
List Container
used for a scrolling lists of items. Replaces the list control.
Mover Control
used in the calibration screens.
MultiImage Control
used to show a slideshow of images.
Panel Container
used for a scrolling panel of items. Replaces the thumbnail panel.
Progress Control
Used to show the progress of a particular operation.
Resize ticker
used to set the pixel ratio in Video Calibration.
RSS ticker
used to display scrolling RSS feeds.
Ranges Control
Used to show multiple range blocks.
Radio button control
a radio button control (as used for on/off settings).
Scroll Bar Control
used for a implementing a scroll bar.
Settings Slider Control
used for a slider control in the settings menus.
Settings Spin Control
used for cycling up/down controls in the settings menus.
Slider Control
used for a volume slider.
Spin Control
used for cycling up/down controls.
Text Box
used to show a multi-page piece of text.
Toggle button control
a toggle on/off button that can take 2 different states.
Video Control
used to display the currently playing video whilst in the GUI.
Visualisation Control
used to display a visualisation while music is playing.
Wrap List Container
used for a wrapping list of items with fixed focus.

Rarely used controls

Mover Control
used in the calibration screens.
Resize control
used to set the pixel ratio in Video Calibration.


Depreciated controls

These controls are not recommended to be used inside skins and will be removed from the skinning engine at some point. Or may not work at all

Buttonscrollers
used for multiple buttons in a scrollable list.
Checkmark Control
Used on the XLink Kai Host Dialog. Similar to Radio Button but does not have the button texture, and the check-mark is on the left.
Console Control
used as a multi-coloured text display (XLink Kai window).
Extended List Control
used in the XLink Kai window.
Large Image Control
background loading version of the image control, for larger images.
List Control
used for lists of items.
Multiselect control
a piece of text with multiple selectable "button" components.
Recently Added Media Control
used to display the last few items added to the video database.
Select button control
a select button control (allows multiple selections from a single button)
Thumbnail Panel
used to show a panel of thumbnails.

Built in controls

A list of built in controls can be found here.

XML tags that affect all control types

The XML tags that affect all control types can be found here.

Filling controls and dictating how they respond from the skin

Most of the controls' contents are filled at runtime by the Kodi source codebase, but for controls such as buttons, labels and images, the Skinner has full control over what the button does or what the label and images look like, if they so desire. This is done via the use of conditional <visible> tags, built in <execute> functions, and <info> information tags. See the following links for more information.

Conditional visibility
Defining when to display and hide a control, and how to animate the effect.
Animating your skin
Breathing life into controls by having defining how they move and respond to actions.
Built In Functions
Defining what a button or list does when clicked or focused.
Specifying Labels
Defining what a label control or image control's contents should be.

See also

Development: