Kodi Documentation  19.0
Kodi is an open source media player and entertainment hub.
Subclass - ControlList

Used for a scrolling lists of items. Replaces the list control. More...

Classes

class  XBMCAddon::xbmcgui::ControlList
 

Functions

 XBMCAddon::xbmcgui::ControlList::addItem (...)
 

Function: addItem(item)


Add a new item to this list control. More...
 
 XBMCAddon::xbmcgui::ControlList::addItems (...)
 

Function: addItems(items)


Adds a list of listitems or strings to this list control. More...
 
 XBMCAddon::xbmcgui::ControlList::selectItem (...)
 

Function: selectItem(item)


Select an item by index number. More...
 
 XBMCAddon::xbmcgui::ControlList::removeItem (...)
 

Function: removeItem(index)


Remove an item by index number. More...
 
 XBMCAddon::xbmcgui::ControlList::reset ()
 

Function: reset()


Clear all ListItems in this control list. More...
 
 XBMCAddon::xbmcgui::ControlList::getSpinControl ()
 

Function: getSpinControl()


Returns the associated ControlSpin object. More...
 
 XBMCAddon::xbmcgui::ControlList::getSelectedPosition ()
 

Function: getSelectedPosition()


Returns the position of the selected item as an integer. More...
 
 XBMCAddon::xbmcgui::ControlList::getSelectedItem ()
 

Function: getSelectedItem()


Returns the selected item as a ListItem object. More...
 
 XBMCAddon::xbmcgui::ControlList::setImageDimensions (...)
 

Function: setImageDimensions(imageWidth, imageHeight)


Sets the width/height of items icon or thumbnail. More...
 
 XBMCAddon::xbmcgui::ControlList::setSpace (...)
 

Function: setSpace(space)


Set's the space between items. More...
 
 XBMCAddon::xbmcgui::ControlList::setPageControlVisible (...)
 

Function: setPageControlVisible(visible)


Sets the spin control's visible/hidden state. More...
 
 XBMCAddon::xbmcgui::ControlList::size ()
 

Function: size()


Returns the total number of items in this list control as an integer. More...
 
 XBMCAddon::xbmcgui::ControlList::getItemHeight ()
 

Function: getItemHeight()


Returns the control's current item height as an integer. More...
 
 XBMCAddon::xbmcgui::ControlList::getSpace ()
 

Function: getSpace()


Returns the control's space between items as an integer. More...
 
 XBMCAddon::xbmcgui::ControlList::getListItem (...)
 

Function: getListItem(index)


Returns a given ListItem in this List. More...
 
 XBMCAddon::xbmcgui::ControlList::setStaticContent (...)
 

Function: setStaticContent(items)


Fills a static list with a list of listitems. More...
 

Detailed Description

Used for a scrolling lists of items. Replaces the list control.

Class: ControlList(x, y, width, height[, font, textColor, buttonTexture, buttonFocusTexture, selectedColor, imageWidth, imageHeight, itemTextXOffset, itemTextYOffset, itemHeight, space, alignmentY, shadowColor])

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.

Note
This class include also all calls from Control
Parameters
xinteger - x coordinate of control.
yinteger - y coordinate of control.
widthinteger - width of control.
heightinteger - height of control.
font[opt] string - font used for items label. (e.g. 'font13')
textColor[opt] hexstring - color of items label. (e.g. '0xFFFFFFFF')
buttonTexture[opt] string - filename for focus texture.
buttonFocusTexture[opt] string - filename for no focus texture.
selectedColor[opt] integer - x offset of label.
imageWidth[opt] integer - width of items icon or thumbnail.
imageHeight[opt] integer - height of items icon or thumbnail.
itemTextXOffset[opt] integer - x offset of items label.
itemTextYOffset[opt] integer - y offset of items label.
itemHeight[opt] integer - height of items.
space[opt] integer - space between items.
alignmentY[opt] integer - Y-axis alignment of items label
  • Flags for alignment used as bits to have several together:
    Defination name Bitflag Description
    XBFONT_LEFT 0x00000000 Align X left
    XBFONT_RIGHT 0x00000001 Align X right
    XBFONT_CENTER_X 0x00000002 Align X center
    XBFONT_CENTER_Y 0x00000004 Align Y center
    XBFONT_TRUNCATED 0x00000008 Truncated text
    XBFONT_JUSTIFIED 0x00000010 Justify text
shadowColor[opt] hexstring - color of items label's shadow. (e.g. '0xFF000000')
Note
You can use the above as keywords for arguments and skip certain optional arguments.
Once you use a keyword, all following arguments require the keyword.
After you create the control, you need to add it to the window with addControl().

Example:

...
self.cList = xbmcgui.ControlList(100, 250, 200, 250, 'font14', space=5)
...

Function Documentation

§ addItem()

void XBMCAddon::xbmcgui::ControlList::addItem (   ...)

Function: addItem(item)


Add a new item to this list control.

Parameters
itemstring, unicode or ListItem - item to add.

Example:

...
cList.addItem('Reboot Kodi')
...

§ addItems()

void XBMCAddon::xbmcgui::ControlList::addItems (   ...)

Function: addItems(items)


Adds a list of listitems or strings to this list control.

Parameters
itemsList - list of strings, unicode objects or ListItems to add.
Note
You can use the above as keywords for arguments.

Large lists benefit considerably, than using the standard addItem()


Example:

...
cList.addItems(items=listitems)
...

§ getItemHeight()

long XBMCAddon::xbmcgui::ControlList::getItemHeight ( )

Function: getItemHeight()


Returns the control's current item height as an integer.

Returns
Current item heigh

Example:

..
item_height = self.cList.getItemHeight()
...

§ getListItem()

XBMCAddon::xbmcgui::ListItem * XBMCAddon::xbmcgui::ControlList::getListItem (   ...)

Function: getListItem(index)


Returns a given ListItem in this List.

Parameters
indexinteger - index number of item to return.
Returns
List item
Exceptions
ValueErrorif index is out of range.

Example:

...
listitem = cList.getListItem(6)
...

§ getSelectedItem()

XBMCAddon::xbmcgui::ListItem * XBMCAddon::xbmcgui::ControlList::getSelectedItem ( )

Function: getSelectedItem()


Returns the selected item as a ListItem object.

Returns
The selected item
Note
Same as getSelectedPosition(), but instead of an integer a ListItem object is returned. Returns None for empty lists.
See windowexample.py on how to use this.

Example:

...
item = cList.getSelectedItem()
...

§ getSelectedPosition()

long XBMCAddon::xbmcgui::ControlList::getSelectedPosition ( )

Function: getSelectedPosition()


Returns the position of the selected item as an integer.

Note
Returns -1 for empty lists.

Example:

...
pos = cList.getSelectedPosition()
...

§ getSpace()

long XBMCAddon::xbmcgui::ControlList::getSpace ( )

Function: getSpace()


Returns the control's space between items as an integer.

Returns
Space between items

Example:

...
gap = self.cList.getSpace()
...

§ getSpinControl()

Control * XBMCAddon::xbmcgui::ControlList::getSpinControl ( )

Function: getSpinControl()


Returns the associated ControlSpin object.

Warning
Not working completely yet
After adding this control list to a window it is not possible to change the settings of this spin control.

Example:

...
ctl = cList.getSpinControl()
...

§ removeItem()

void XBMCAddon::xbmcgui::ControlList::removeItem (   ...)

Function: removeItem(index)


Remove an item by index number.

Parameters
indexinteger - index number of the item to remove.

v13 Python API changes:
New function added.

Example:

...
cList.removeItem(12)
...

§ reset()

void XBMCAddon::xbmcgui::ControlList::reset ( )

Function: reset()


Clear all ListItems in this control list.

Warning
Calling reset() will destroy any ListItem objects in the ControlList if not hold by any other class. Make sure you you don't call addItems() with the previous ListItem references after calling reset(). If you need to preserve the ListItem objects after reset() make sure you store them as members of your WindowXML class (see examples).

Examples:

...
cList.reset()
...

The below example shows you how you can reset the ControlList but this time avoiding ListItem object destruction. The example assumes self as a WindowXMLDialog instance containing a ControlList with id = 800. The class preserves the ListItem objects in a class member variable.

...
# Get all the ListItem objects in the control
self.list_control = self.getControl(800) # ControlList object
self.listitems = [self.list_control.getListItem(item) for item in range(0, self.list_control.size())]
# Reset the ControlList control
self.list_control.reset()
#
# do something with your ListItem objects here (e.g. sorting.)
# ...
#
# Add them again to the ControlList
self.list_control.addItems(self.listitems)
...

§ selectItem()

void XBMCAddon::xbmcgui::ControlList::selectItem (   ...)

Function: selectItem(item)


Select an item by index number.

Parameters
iteminteger - index number of the item to select.

Example:

...
cList.selectItem(12)
...

§ setImageDimensions()

void XBMCAddon::xbmcgui::ControlList::setImageDimensions (   ...)

Function: setImageDimensions(imageWidth, imageHeight)


Sets the width/height of items icon or thumbnail.

Parameters
imageWidth[opt] integer - width of items icon or thumbnail.
imageHeight[opt] integer - height of items icon or thumbnail.

Example:

...
cList.setImageDimensions(18, 18)
...

§ setPageControlVisible()

void XBMCAddon::xbmcgui::ControlList::setPageControlVisible (   ...)

Function: setPageControlVisible(visible)


Sets the spin control's visible/hidden state.

Parameters
visibleboolean - True=visible / False=hidden.

Example:

...
cList.setPageControlVisible(True)
...

§ setSpace()

void XBMCAddon::xbmcgui::ControlList::setSpace (   ...)

Function: setSpace(space)


Set's the space between items.

Parameters
space[opt] integer - space between items.

Example:

...
cList.setSpace(5)
...

§ setStaticContent()

void XBMCAddon::xbmcgui::ControlList::setStaticContent (   ...)

Function: setStaticContent(items)


Fills a static list with a list of listitems.

Parameters
itemsList - list of listitems to add.
Note
You can use the above as keywords for arguments.

Example:

...
cList.setStaticContent(items=listitems)
...

§ size()

long XBMCAddon::xbmcgui::ControlList::size ( )

Function: size()


Returns the total number of items in this list control as an integer.

Returns
Total number of items

Example:

...
cnt = cList.size()
...