Button control: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Jmarshall
>Jmarshall
No edit summary
Line 31: Line 31:


===Available Tags===
===Available Tags===
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="dtable"
|- class="userrow"
| class="usercell" | '''description'''
| class="usercell" | Only used to make things clear for the skinner. Not read by XBMC at all.
|- class="userrow"
| class="usercell" | '''type'''
| class="usercell" | Should be button for a button control.
|- class="userrow"
| class="usercell" | '''id'''
| class="usercell" | Specifies the control's id. The value this takes depends on the control type, and the window that you are using the control on. There are special control id's that must be present in each window. Any other controls that the skinner adds can be any id they like. Obviously they should be unique for buttons, given that they are navigatible, and you want the onup, onleft etc. to make sense.
|- class="userrow"
| class="usercell" | '''posx'''
| class="usercell" | Specifies where the left edge of the button should be drawn. This is offset from the window's coordinates (normally the left edge of the screen, or 0).
|- class="userrow"
| class="usercell" | '''posy'''
| class="usercell" | Specifies where the top edge of the button should be drawn. This is offset from the window's coordinates (normally the top edge of the screen, or 0).
|- class="userrow"
| class="usercell" | '''width'''
| class="usercell" | Specifies the width of the button. The texturefocus and texturenofocus images will be resized to fit into this width.
|- class="userrow"
| class="usercell" | '''height'''
| class="usercell" | Specifies the height of the button. The texturefocus and texturenofocus images will be resized to fit into this height.
|- class="userrow"
| class="usercell" | '''visible'''
| class="usercell" |
Specifies a condition as to when this control will be visible. Can be true, false, or a condition. [[Conditional Visibility|See here for more information.]] Defaults to true.
|- class="userrow"
| class="usercell" | '''animation'''
| class="usercell" |
Specifies the animation to be run when the control enters a particular state. [[Animating Your Skin|See here for more information]]
|- class="userrow"
|- class="userrow"
| class="usercell" | '''texturefocus'''
| class="usercell" | '''texturefocus'''
| class="usercell" |
| class="usercell" |
Specifies the image file which should be displayed when the button has focus. You can use animated gif's, jpgs, pngs, or bmps. This should be the path to the image file from the media/ folder of your skin directory. XBMC will first look inside the compresses Textures.xpr file, and if not found, will look inside the media/ folder for the actual skin file. Compressing textures into Textures.xpr means far faster loading times.
Specifies the image file which should be displayed when the button has focus. You can use animated gif's, jpgs, pngs, or bmps. This should be the path to the image file from the media/ folder of your skin directory. XBMC will first look inside the compresses Textures.xpr file, and if not found, will look inside the media/ folder for the actual skin file. Compressing textures into Textures.xpr means far faster loading times. [[Texture Attributes|See here for texture tag attributes.]]
|- class="userrow"
|- class="userrow"
| class="usercell" | '''texturenofocus'''
| class="usercell" | '''texturenofocus'''
| class="usercell" | Specifies the image file which should be displayed when the button does not have focus.
| class="usercell" | Specifies the image file which should be displayed when the button does not have focus.
|- class="userrow"
| class="usercell" | '''colordiffuse'''
| class="usercell" | This specifies the color to be used for the texture basis. It's in hex AARRGGBB format. If you define <colordiffuse>FFFF00FF</colordiffuse> (magenta), the image will be given a magenta tint when rendered. Defaults to FFFFFFFF (no tint).
|- class="userrow"
|- class="userrow"
| class="usercell" | '''label'''
| class="usercell" | '''label'''
Line 80: Line 48:
|- class="userrow"
|- class="userrow"
| class="usercell" | '''textcolor'''
| class="usercell" | '''textcolor'''
| class="usercell" | Color used for displaying the button label. In AARRGGBB hex format.
| class="usercell" | Color used for displaying the button label. In AARRGGBB hex format, or a name from the [[Colour Themes|colour theme.]]
|- class="userrow"
|- class="userrow"
| class="usercell" | '''disabledcolor'''
| class="usercell" | '''disabledcolor'''
| class="usercell" | Color used for the button label if the button is disabled.
| class="usercell" | Color used for the button label if the button is disabled, or a name from the [[Colour Themes|colour theme.]]
|- class="userrow"
|- class="userrow"
| class="usercell" | '''shadowcolor'''
| class="usercell" | '''shadowcolor'''
| class="usercell" | Specifies the color of the drop shadow on the text, in AARRGGBB format.
| class="usercell" | 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="userrow"
| class="usercell" | '''angle'''
| class="usercell" | '''angle'''
Line 102: Line 70:
| class="usercell" | '''textoffsety'''
| class="usercell" | '''textoffsety'''
| class="usercell" | Amount to offset the label from the top edge of the button when using top alignment.
| class="usercell" | Amount to offset the label from the top edge of the button when using top alignment.
|- class="userrow"
| class="usercell" | '''pulseonselect'''
| class="usercell" | Specifies whether the button should pulse when it's selected. Defaults to true.
|- class="userrow"
|- class="userrow"
| class="usercell" | '''onclick'''
| class="usercell" | '''onclick'''
Line 113: Line 78:
| class="usercell" |
| 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.]]
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.]]
|- class="userrow"
| class="usercell" | '''onup'''
| class="usercell" | Control id to move to when the user moves up off this control.
|- class="userrow"
| class="usercell" | '''ondown'''
| class="usercell" | Control id to move to when the user moves down off this control.
|- class="userrow"
| class="usercell" | '''onleft'''
| class="usercell" | Control id to move to when the user moves left off this control.
|- class="userrow"
| class="usercell" | '''onright'''
| class="usercell" | Control id to move to when the user moves right off this control.
|}
|}


[[category:Skin Development]]
[[category:Skin Development]]
[[category:Python]]
[[category:Python]]

Revision as of 03:23, 24 July 2007

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.

Example

<xml> <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>
     font12
     <textcolor>FFFFFFFF</textcolor>
     <disabledcolor>80FFFFFF</disabledcolor>
     <align></align>
     <aligny></aligny>
     <textoffsetx></textoffsetx>
     <textoffsety></textoffsety>
     <pulseonselect></pulseonselect>
     <onclick>XBMC.ActivateWindow(MyVideos)</onclick>
     <onfocus>-</onfocus>
     <onup>2</onup>
     <ondown>3</ondown>
     <onleft>1</onleft>
     <onright>1</onright>

</control> </xml>

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. You can use animated gif's, jpgs, pngs, or bmps. This should be the path to the image file from the media/ folder of your skin directory. XBMC will first look inside the compresses Textures.xpr file, and if not found, will look inside the media/ folder for the actual skin file. Compressing textures into Textures.xpr means far faster loading times. See here for texture tag attributes.

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.
disabledcolor Color used for the button label if the button is disabled, 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.
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.