Button control: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Radio
 
(28 intermediate revisions by 13 users not shown)
Line 1: Line 1:
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.
<section begin="main content" />
===Example===
The button control is used for creating push buttons in {{kodi}}. You can choose the position, size, and look of the button, as well as choosing what action(s) should be performed when pushed.
<xml>
=== Example ===
<syntaxhighlight lang="XML" enclose="div">
<control type="button" id="1">
<control type="button" id="1">
       <description>My first button control</description>
       <description>My first button control</description>
       <posx>80</posx>
       <left>80</left>
       <posy>60</posy>
       <top>60</top>
       <width>250</width>
       <width>250</width>
       <height>200</height>
       <height>200</height>
       <visible>true</visible>
       <visible>true</visible>
       <colordiffuse>FFFFFFFF</colordiffuse>
       <colordiffuse>FFFFFFFF</colordiffuse>
       <texturefocus>myfocustexture.png</texturefocus>
       <texturefocus colordiffuse="FFFFAAFF">myfocustexture.png</texturefocus>
       <texturenofocus>mynormaltexture.png</texturenofocus>
       <texturenofocus colordiffuse="FFFFAAFF">mynormaltexture.png</texturenofocus>
       <label>29</label>
       <label>29</label>
      <wrapmultiline>true</wrapmultiline>
       <font>font12</font>
       <font>font12</font>
       <textcolor>FFFFFFFF</textcolor>
       <textcolor>FFFFFFFF</textcolor>
      <focusedcolor>FFFFFFFF</focusedcolor>
       <disabledcolor>80FFFFFF</disabledcolor>
       <disabledcolor>80FFFFFF</disabledcolor>
      <invalidcolor>FFFFFFFF</invalidcolor>
       <align></align>
       <align></align>
       <aligny></aligny>
       <aligny></aligny>
Line 21: Line 25:
       <textoffsety></textoffsety>
       <textoffsety></textoffsety>
       <pulseonselect></pulseonselect>
       <pulseonselect></pulseonselect>
       <onclick>XBMC.ActivateWindow(MyVideos)</onclick>
       <onclick>ActivateWindow(MyVideos)</onclick>
       <onfocus>-</onfocus>
       <onfocus></onfocus>
      <onunfocus></onunfocus>
       <onup>2</onup>
       <onup>2</onup>
       <ondown>3</ondown>
       <ondown>3</ondown>
Line 28: Line 33:
       <onright>1</onright>
       <onright>1</onright>
</control>
</control>
</xml>
</syntaxhighlight>


===Available Tags===
=== 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.
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.
{| class="dtable"
{| class="prettytable"
|- class="userrow"
! Tag !! Description
| class="usercell" | '''texturefocus'''
|-
| class="usercell" |
| '''texturefocus'''
Specifies the image file which should be displayed when the button has focus. [[Texture Attributes|See here for additional information about textures.]]
| Specifies the image file which should be displayed when the button has focus. [[Texture Attributes|See here for additional information about textures.]]
|- class="userrow"
|-
| class="usercell" | '''texturenofocus'''
| '''texturenofocus'''
| class="usercell" | Specifies the image file which should be displayed when the button does not have focus.
| Specifies the image file which should be displayed when the button does not have focus.
|- class="userrow"
|-
| class="usercell" | '''label'''
| '''label'''
| class="usercell" | The label used on the button. It can be a link into strings.xml, or an actual text label.
| The label used on the button. It can be a link into strings.po, or an actual text label.
|- class="userrow"
|-
| class="usercell" | '''font'''
| '''font'''
| class="usercell" | Font used for the button label. From fonts.xml.
| Font used for the button label. From fonts.xml.
|- class="userrow"
|-
| class="usercell" | '''textcolor'''
| '''textcolor'''
| class="usercell" | Color used for displaying the button label. In AARRGGBB hex format, or a name from the [[Colour Themes|colour theme.]]
| Color used for displaying the button label. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]
|- class="userrow"
|-
| class="usercell" | '''focuscolor'''
| '''focusedcolor'''
| class="usercell" | Color used for the button label when the button has in focus. In AARRGGBB hex format or a name from the [[Colour Themes|colour theme.]]
| Color used for the button label when the button has in focus. In AARRGGBB hex format or a name from the [[Colour themes|colour theme.]]
|- class="userrow"
|-
| class="usercell" | '''disabledcolor'''
| '''disabledcolor'''
| class="usercell" | Color used for the button label if the button is disabled. In AARRGGBB hex format or a name from the [[Colour Themes|colour theme.]]
| Color used for the button label if the button is disabled. In AARRGGBB hex format or a name from the [[Colour themes|colour theme.]]
|- class="userrow"
|-
| class="usercell" | '''shadowcolor'''
| '''invalidcolor'''
| class="usercell" | Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the [[Colour Themes|colour theme.]]
| Color used for the button if the user entered some invalid value. In AARRGGBB hex format or a name from the [[Colour themes|colour theme.]]
|- class="userrow"
|
| class="usercell" | '''angle'''
| '''shadowcolor'''
| class="usercell" | The angle the text should be rendered at, in degrees. A value of 0 is horizontal.
| Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the [[Colour themes|colour theme.]]
|- class="userrow"
|-
| class="usercell" | '''align'''
| '''angle'''
| class="usercell" | Label horizontal alignment on the button. Defaults to left, can also be center or right.
| The angle the text should be rendered at, in degrees. A value of 0 is horizontal.
|- class="userrow"
|-
| class="usercell" | '''aligny'''
| '''align'''
| class="usercell" | Label vertical alignment on the button. Defaults to top, can also be center.
| Label horizontal alignment on the button. Defaults to left, can also be center or right.
|- class="userrow"
|-
| class="usercell" | '''textoffsetx'''
| '''aligny'''
| class="usercell" | Amount to offset the label from the left (or right) edge of the button when using left or right alignment.
| Label vertical alignment on the button. Defaults to top, can also be center.
|- class="userrow"
|-
| class="usercell" | '''textoffsety'''
| '''textoffsetx'''
| class="usercell" | Amount to offset the label from the top edge of the button when using top alignment.
| Amount to offset the label from the left (or right) edge of the button when using left or right alignment.
|- class="userrow"
|-
| class="usercell" | '''onclick'''
| '''textoffsety'''
| class="usercell" |
| Amount to offset the label from the top edge of the button when using top alignment.
Specifies the action to perform when the button is pressed. Should be a built in function. [[Built-in functions available to FTP, Webserver, skins, keymap and to python|See here for more information.]] You may have more than one <onclick> tag, and they'll be executed in sequence.
|-
|- class="userrow"
| '''textwidth'''
| class="usercell" | '''onfocus'''
| Will truncate any text that's too long.
| class="usercell" |
|
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. [[Built-in functions available to FTP, Webserver, skins, keymap and to python|See here for more information.]]
| '''onclick'''
| Specifies the action to perform when the button is pressed. Should be a built in function. [[Built-in_scripting|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. [[Built-in_scripting|See here for more information.]]
|- 
| '''onunfocus'''
| Specifies the action to perform when the button loses focus. Should be a built in function.
|- 
| '''wrapmultiline'''
| Will wrap the label across multiple lines if the label exceeds the control width.
|}
|}


[[category:Skin Development]]
 
[[category:Python]]
<section end="main content" />
 
== See also ==
'''Development:'''
* [[Add-on development]]
* [[Skinning]]
 
[[Category:Skin development]]

Latest revision as of 00:50, 14 April 2022

The button control is used for creating push buttons in Kodi. You can choose the position, size, and look of the button, as well as choosing what action(s) should be performed when pushed.

Example

<control type="button" id="1">
      <description>My first button control</description>
      <left>80</left>
      <top>60</top>
      <width>250</width>
      <height>200</height>
      <visible>true</visible>
      <colordiffuse>FFFFFFFF</colordiffuse>
      <texturefocus colordiffuse="FFFFAAFF">myfocustexture.png</texturefocus>
      <texturenofocus colordiffuse="FFFFAAFF">mynormaltexture.png</texturenofocus>
      <label>29</label>
      <wrapmultiline>true</wrapmultiline>
      <font>font12</font>
      <textcolor>FFFFFFFF</textcolor>
      <focusedcolor>FFFFFFFF</focusedcolor>
      <disabledcolor>80FFFFFF</disabledcolor>
      <invalidcolor>FFFFFFFF</invalidcolor>
      <align></align>
      <aligny></aligny>
      <textoffsetx></textoffsetx>
      <textoffsety></textoffsety>
      <pulseonselect></pulseonselect>
      <onclick>ActivateWindow(MyVideos)</onclick>
      <onfocus></onfocus>
      <onunfocus></onunfocus>
      <onup>2</onup>
      <ondown>3</ondown>
      <onleft>1</onleft>
      <onright>1</onright>
</control>

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
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.po, 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.
invalidcolor Color used for the button if the user entered some invalid value. 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.
wrapmultiline Will wrap the label across multiple lines if the label exceeds the control width.



See also

Development: