Kodi Development  19.0
for Binary and Script based Add-Ons
Callback functions from Kodi to add-on

Detailed Description

GUI window callback functions.
Functions to handle control callbacks from Kodi


Go back to normal functions from CWindow

Function Documentation

◆ OnInit()

virtual bool OnInit ( )
inlinevirtual

OnInit method.

Returns
Return true if initialize was done successful

◆ OnFocus()

virtual bool OnFocus ( int  controlId)
inlinevirtual

OnFocus method.

Parameters
[in]controlIdGUI control identifier
Returns
Return true if focus condition was handled there or false to handle them by Kodi itself

◆ OnClick()

virtual bool OnClick ( int  controlId)
inlinevirtual

OnClick method.

Parameters
[in]controlIdGUI control identifier
Returns
Return true if click was handled there or false to handle them by Kodi itself

◆ OnAction()

virtual bool OnAction ( ADDON_ACTION  actionId)
inlinevirtual

OnAction method.

Parameters
[in]actionIdThe action id to perform, see kodi_key_action_ids to get list of them
Returns
Return true if action was handled there or false to handle them by Kodi itself

This method will receive all actions that the main program will send to this window.

Note
  • By default, only the ADDON_ACTION_PREVIOUS_MENU and ADDON_ACTION_NAV_BACK actions are handled.
  • Overwrite this method to let your code handle all actions.
  • Don't forget to capture ADDON_ACTION_PREVIOUS_MENU or ADDON_ACTION_NAV_BACK, else the user can't close this window.

Example:

..
// Window used with parent / child way
bool cYOUR_CLASS::OnAction(ADDON_ACTION actionId)
{
switch (action)
{
printf("action recieved: previous");
Close();
return true;
printf("action recieved: show info");
break;
printf("action recieved: stop");
break;
printf("action recieved: pause");
break;
default:
break;
}
return false;
}
..

◆ GetContextButtons()

virtual void GetContextButtons ( int  itemNumber,
std::vector< std::pair< unsigned int, std::string >> &  buttons 
)
inlinevirtual

Get context menu buttons for list entry.

Parameters
[in]itemNumberSelected list item entry
[in]buttonsList where context menus becomes added with his identifier and name

◆ OnContextButton()

virtual bool OnContextButton ( int  itemNumber,
unsigned int  button 
)
inlinevirtual

Called after selection in context menu.

Parameters
[in]itemNumberSelected list item entry
[in]buttonThe pressed button id
Returns
true if handled, otherwise false

◆ SetIndependentCallbacks()

void SetIndependentCallbacks ( kodi::gui::ClientHandle  cbhdl,
bool(*)(kodi::gui::ClientHandle cbhdl)  CBOnInit,
bool(*)(kodi::gui::ClientHandle cbhdl, int controlId)  CBOnFocus,
bool(*)(kodi::gui::ClientHandle cbhdl, int controlId)  CBOnClick,
bool(*)(kodi::gui::ClientHandle cbhdl, ADDON_ACTION actionId)  CBOnAction,
void(*)(kodi::gui::ClientHandle cbhdl, int itemNumber, gui_context_menu_pair *buttons, unsigned int *size)  CBGetContextButtons = nullptr,
bool(*)(kodi::gui::ClientHandle cbhdl, int itemNumber, unsigned int button)  CBOnContextButton = nullptr 
)
inline

Set independent callbacks

If the class is used independent (with "new CWindow") and not as parent (with "cCLASS_own : public kodi::gui::CWindow") from own must be the callback from Kodi to add-on overdriven with own functions!

Parameters
[in]cbhdlThe pointer to own handle data structure / class
[in]CBOnInitOwn defined window init function
[in]CBOnFocusOwn defined focus function
[in]CBOnClickOwn defined click function
[in]CBOnActionOwn defined action function
[in]CBGetContextButtons[opt] To get context menu entries for lists function
[in]CBOnContextButton[opt] Used context menu entry function

Example:

...
{
...
return true;
}
bool OnFocus(kodi::gui::ClientHandle cbhdl, int controlId)
{
...
return true;
}
bool OnClick(kodi::gui::ClientHandle cbhdl, int controlId)
{
...
return true;
}
{
...
return true;
}
...
// Somewhere where you create the window
CWindow myWindow = new CWindow;
myWindow->SetIndependentCallbacks(myWindow, OnInit, OnFocus, OnClick, OnAction);
...
kodi::gui::CWindow::OnClick
virtual bool OnClick(int controlId)
OnClick method.
Definition: Window.h:685
ADDON_ACTION_NAV_BACK
@ ADDON_ACTION_NAV_BACK
90: Nav back.
Definition: action_ids.h:288
ADDON_ACTION_PREVIOUS_MENU
@ ADDON_ACTION_PREVIOUS_MENU
10: Previous menu.
Definition: action_ids.h:56
kodi::gui::ClientHandle
KODI_GUI_CLIENT_HANDLE ClientHandle
Handler for addon-sided processing class If the callback functions used by the window are not used di...
Definition: Window.h:43
kodi::gui::CWindow::OnInit
virtual bool OnInit()
OnInit method.
Definition: Window.h:661
kodi::gui::CWindow::CWindow
CWindow(const std::string &xmlFilename, const std::string &defaultSkin, bool asDialog, bool isMedia=false)
Class constructor with needed values for window / dialog.
Definition: Window.h:126
ADDON_ACTION_STOP
@ ADDON_ACTION_STOP
13: Stop.
Definition: action_ids.h:65
kodi::gui::CWindow::Close
void Close()
Closes this window.
Definition: Window.h:183
kodi::gui::CWindow::OnAction
virtual bool OnAction(ADDON_ACTION actionId)
OnAction method.
Definition: Window.h:740
ADDON_ACTION
ADDON_ACTION
Definition: action_ids.h:21
kodi::gui::CWindow::OnFocus
virtual bool OnFocus(int controlId)
OnFocus method.
Definition: Window.h:673
ADDON_ACTION_SHOW_INFO
@ ADDON_ACTION_SHOW_INFO
11: Show info.
Definition: action_ids.h:59
ADDON_ACTION_PAUSE
@ ADDON_ACTION_PAUSE
12: Pause.
Definition: action_ids.h:62