Context Item Add-ons: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
(Created page with " Context item add-ons allows the Context menu in Kodi to be extended. Add-ons must provide the <code>kodi.context.item</code> extension point and a item definition as foll...")
 
No edit summary
Line 57: Line 57:
     xbmc.executebuiltin("Notification(\"Hello context items!\", \"%s\")" % message)
     xbmc.executebuiltin("Notification(\"Hello context items!\", \"%s\")" % message)
</syntaxhighlight>
</syntaxhighlight>
[[Category:Add-on development]]

Revision as of 08:24, 3 March 2015

Context item add-ons allows the Context menu in Kodi to be extended. Add-ons must provide the kodi.context.item extension point and a item definition as follows:

<item>
  <label></label>
  <visible></visible>
  <parent></parent>
</item>


<label>: Required. The label to show in the context menu. String or an ID from the language file.

<visible>: Required. A visibility expression that determines when the item will be visible in the context menu.

<parent>: Optional. The parent group for the context item. If "kodi.core.manage" the item will be added under the "Manage" sub-menu. If not specified, it will be added to the top level.

It is currently only possible to provide one item per add-on.

Note: Before adding a context menu extension to existing add-on, keep in mind that there is limited space in the context menu and that having multiple extension in and add-on will force the user to have all of them enabled at the same time.


Example addon.xml definition:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="context.item.hello.world" name="Hello World" version="1.0.0" provider-name="your-name">
  <requires>
    <import addon="xbmc.python" version="2.20.0"/>
  </requires>
  <extension point="kodi.context.item" library="addon.py">
    <item>
      <label>Hello World</label>
      <visible>!IsEmpty(ListItem.Genre)</visible>
    </item>
  </extension>
  <extension point="kodi.addon.metadata">
    <platform>all</platform>
    <summary></summary>
    <description></description>
  </extension>
</addon>


Example python script:

The item the context menu was opened on can be accessed in python via the sys.listitem attribute. The attribute is an instance of xbmcgui.ListItem. The following example script will display a notification message showing the name of item:

import sys
import xbmc

if __name__ == '__main__':
    message = "Clicked on '%s'" % sys.listitem.getLabel()
    xbmc.executebuiltin("Notification(\"Hello context items!\", \"%s\")" % message)