Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
Callback functions from Kodi to add-on

Functions

virtual bool kodi::gui::CWindow::OnInit ()
 GUI window callback functions. More...
 
virtual bool kodi::gui::CWindow::OnFocus (int controlId)
 OnFocus method. More...
 
virtual bool kodi::gui::CWindow::OnClick (int controlId)
 OnClick method. More...
 
virtual bool kodi::gui::CWindow::OnAction (int actionId)
 OnAction method. More...
 
virtual void kodi::gui::CWindow::GetContextButtons (int itemNumber, std::vector< std::pair< unsigned int, std::string > > &buttons)
 Get context menu buttons for list entry. More...
 
virtual bool kodi::gui::CWindow::OnContextButton (int itemNumber, unsigned int button)
 Called after selection in context menu. More...
 
void kodi::gui::CWindow::SetIndependentCallbacks (GUIHANDLE cbhdl, bool(*CBOnInit)(GUIHANDLE cbhdl), bool(*CBOnFocus)(GUIHANDLE cbhdl, int controlId), bool(*CBOnClick)(GUIHANDLE cbhdl, int controlId), bool(*CBOnAction)(GUIHANDLE cbhdl, int actionId), void(*CBGetContextButtons)(GUIHANDLE cbhdl, int itemNumber, gui_context_menu_pair *buttons, unsigned int *size)=nullptr, bool(*CBOnContextButton)(GUIHANDLE cbhdl, int itemNumber, unsigned int button)=nullptr)
 Set independent callbacks More...
 

Detailed Description

Function Documentation

◆ GetContextButtons()

virtual void kodi::gui::CWindow::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.

◆ OnAction()

virtual bool kodi::gui::CWindow::OnAction ( int  actionId)
inlinevirtual

OnAction method.

Parameters
[in]actionIdThe action id to perform, see Action Id's 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 PREVIOUS_MENU and NAV_BACK actions are handled.
  • Overwrite this method to let your code handle all actions.
  • Don't forget to capture ACTION_PREVIOUS_MENU or ACTION_NAV_BACK, else the user can't close this window.

Example:

..
/* Window used with parent / child way *&zwj;/
bool cYOUR_CLASS::OnAction(int actionId)
{
switch (action)
{
case ACTION_PREVIOUS_MENU:
case ACTION_NAV_BACK:
printf("action recieved: previous");
Close();
return true;
case ACTION_SHOW_INFO:
printf("action recieved: show info");
break;
case ACTION_STOP:
printf("action recieved: stop");
break;
case ACTION_PAUSE:
printf("action recieved: pause");
break;
default:
break;
}
return false;
}
..

◆ OnClick()

virtual bool kodi::gui::CWindow::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

◆ OnContextButton()

virtual bool kodi::gui::CWindow::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

◆ OnFocus()

virtual bool kodi::gui::CWindow::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

◆ OnInit()

virtual bool kodi::gui::CWindow::OnInit ( )
inlinevirtual

GUI window callback functions.

Functions to handle control callbacks from Kodi


Go back to normal functions from CWindow

OnInit method.

Returns
Return true if initialize was done successful

◆ SetIndependentCallbacks()

void kodi::gui::CWindow::SetIndependentCallbacks ( GUIHANDLE  cbhdl,
bool(*)(GUIHANDLE cbhdl)  CBOnInit,
bool(*)(GUIHANDLE cbhdl, int controlId)  CBOnFocus,
bool(*)(GUIHANDLE cbhdl, int controlId)  CBOnClick,
bool(*)(GUIHANDLE cbhdl, int actionId)  CBOnAction,
void(*)(GUIHANDLE cbhdl, int itemNumber, gui_context_menu_pair *buttons, unsigned int *size)  CBGetContextButtons = nullptr,
bool(*)(GUIHANDLE 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 : 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:

...
bool OnInit(GUIHANDLE cbhdl)
{
...
return true;
}
bool OnFocus(GUIHANDLE cbhdl, int controlId)
{
...
return true;
}
bool OnClick(GUIHANDLE cbhdl, int controlId)
{
...
return true;
}
bool OnAction(GUIHANDLE cbhdl, int actionId)
{
...
return true;
}
...
/* Somewhere where you create the window *&zwj;/
CWindow myWindow = new CWindow;
myWindow->SetIndependentCallbacks(myWindow, OnInit, OnFocus, OnClick, OnAction);
...
void * GUIHANDLE
Handle to use as independent pointer for GUI.
Definition: definitions.h:428
virtual bool OnClick(int controlId)
OnClick method.
Definition: addons/kodi-addon-dev-kit/include/kodi/gui/Window.h:652
virtual bool OnAction(int actionId)
OnAction method.
Definition: addons/kodi-addon-dev-kit/include/kodi/gui/Window.h:708
virtual bool OnInit()
GUI window callback functions.
Definition: addons/kodi-addon-dev-kit/include/kodi/gui/Window.h:627
virtual bool OnFocus(int controlId)
OnFocus method.
Definition: addons/kodi-addon-dev-kit/include/kodi/gui/Window.h:639