Difference between revisions of "Controls"

From Official Kodi Wiki
Jump to: navigation, search
Line 1: Line 1:
 
NOTE: The control definitions here can be become out of date.  The latest xml behavior can be found in [http://xbmc.svn.sourceforge.net/viewvc/xbmc/trunk/XBMC/guilib/GuiControlFactory.cpp?view=markup the SVN cpp code]
 
NOTE: The control definitions here can be become out of date.  The latest xml behavior can be found in [http://xbmc.svn.sourceforge.net/viewvc/xbmc/trunk/XBMC/guilib/GuiControlFactory.cpp?view=markup the SVN cpp code]
  
====The skin engine in XBMC has available to it the following frequently used controls:====
+
====Available controls====
  
 
; [[Group Control]] : used to group controls together.
 
; [[Group Control]] : used to group controls together.
Line 13: Line 13:
 
; [[Select button control]] : a select button control (allows multiple selections from a single button)
 
; [[Select button control]] : a select button control (allows multiple selections from a single button)
 
; [[Toggle button control]] : a toggle on/off button that can take 2 different states.
 
; [[Toggle button control]] : a toggle on/off button that can take 2 different states.
; [[Buttonscrollers]] : used for multiple buttons in a scrollable list.
 
 
; [[Spin Control]] : used for cycling up/down controls.
 
; [[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.
Line 23: Line 22:
 
; [[Fixed List Container]] : used for a list of items with a fixed focus.  Same as the [[Wrap List Container]] except it doesn't wrap.
 
; [[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.
 
; [[Panel Container]] : used for a scrolling panel of items.  Replaces the thumbnail panel.
; [[List Control]] : used for lists of items. <depreciated>
 
; [[Thumbnail Panel]] : used to show a panel of thumbnails. <depreciated>
 
 
; [[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.
 
; [[RSS feed Control]] : used to display scrolling RSS feeds.
 
; [[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>
 
; [[Video Control]] : used to display the currently playing video whilst in the GUI.<br><br>
'''It also has the following controls which are used less frequently:'''<br><br>
+
 
 +
====Depreciated controls====
 +
 
 +
; [[Buttonscrollers]] : used for multiple buttons in a scrollable list.
 +
; [[List Control]] : used for lists of items. <depreciated>
 +
; [[Thumbnail Panel]] : used to show a panel of thumbnails. <depreciated>
 +
; [[Recently Added Media Control]] : used to display the last few items added to the video database. <depreciated>
 +
 
 +
====Rarely used controls====
 +
 
 
; [[Edit Control]] : used as an input control for a USB keyboard (XLink Kai window).
 
; [[Edit Control]] : used as an input control for a USB keyboard (XLink Kai window).
; [[Recently Added Media Control]] : used to display the last few items added to the video database. <depreciated>
 
 
; [[Console Control]] : used as a multi-coloured text display (XLink Kai window).
 
; [[Console Control]] : used as a multi-coloured text display (XLink Kai window).
; [[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.
+
; [[Checkmark Control]] : Used on the XLink Kai Host Dialog. Similar to Radio Button but does not have the button texture, and the checkmark is on the left.
 
; [[Extended List Control]] : used in the XLink Kai window.
 
; [[Extended List Control]] : used in the XLink Kai window.
 
; [[Mover Control]] : used in the calibration screens.
 
; [[Mover Control]] : used in the calibration screens.
Line 46: Line 51:
 
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 <visible> tags, built in <execute> functions, and <info> information tags. See the following links for more information.
 
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 <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]]====
+
; [[Conditional Visibility]] : Defining when to display and hide a control, and how to animate the effect.
====[[List of Built In Functions|Defining what a button does in the skin using built in functions]]====
+
; [[Animation]] : Breathing life into controls by having defining how they move and respond to actions.
====[[InfoLabels|Defining what a label control or image control's contents should be]]====
+
; [[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.
 +
 
 
[[category:Skin Development]]
 
[[category:Skin Development]]

Revision as of 00:41, 24 July 2007

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

1 Available controls

Group Control 
used to group controls together.
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.
MultiImage Control 
used to show a slideshow of images.
Button control 
a standard push button control.
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)
Toggle button control 
a toggle on/off button that can take 2 different states.
Spin Control 
used for cycling up/down controls.
Settings Spin Control 
used for cycling up/down controls in the settings menus.
Slider Control 
used for a volume slider.
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.
RSS feed Control 
used to display scrolling RSS feeds.
Visualisation Control 
used to display a visualisation while music is playing.
Video Control 
used to display the currently playing video whilst in the GUI.

2 Depreciated controls

Buttonscrollers 
used for multiple buttons in a scrollable list.
List Control 
used for lists of items. <depreciated>
Thumbnail Panel 
used to show a panel of thumbnails. <depreciated>
Recently Added Media Control 
used to display the last few items added to the video database. <depreciated>

3 Rarely used controls

Edit Control 
used as an input control for a USB keyboard (XLink Kai window).
Console Control 
used as a multi-coloured text display (XLink Kai window).
Checkmark Control 
Used on the XLink Kai Host Dialog. Similar to Radio Button but does not have the button texture, and the checkmark is on the left.
Extended List Control 
used in the XLink Kai window.
Mover Control 
used in the calibration screens.
Resize Control 
used to set the pixel ratio in Video Calibration.

4 XML tags that affect all control types

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

5 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 <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.
Animation 
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.