本文整理汇总了C++中CGUIAddonWindow::FreeResources方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIAddonWindow::FreeResources方法的具体用法?C++ CGUIAddonWindow::FreeResources怎么用?C++ CGUIAddonWindow::FreeResources使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIAddonWindow
的用法示例。
在下文中一共展示了CGUIAddonWindow::FreeResources方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: destroy
void Interface_GUIWindow::destroy(void* kodiBase, void* handle)
{
CAddonDll* addon = static_cast<CAddonDll*>(kodiBase);
CGUIAddonWindow* pAddonWindow = static_cast<CGUIAddonWindow*>(handle);
if (!addon || !pAddonWindow)
{
CLog::Log(LOGERROR, "Interface_GUIWindow::%s - invalid handler data (handle='%p') on addon '%s'",
__FUNCTION__, handle, addon ? addon->ID().c_str() : "unknown");
return;
}
Interface_GUIGeneral::lock();
CGUIWindow *pWindow = dynamic_cast<CGUIWindow*>(g_windowManager.GetWindow(pAddonWindow->GetID()));
if (pWindow)
{
// first change to an existing window
if (g_windowManager.GetActiveWindow() == pAddonWindow->GetID() && !g_application.m_bStop)
{
if(g_windowManager.GetWindow(pAddonWindow->m_oldWindowId))
g_windowManager.ActivateWindow(pAddonWindow->m_oldWindowId);
else // old window does not exist anymore, switch to home
g_windowManager.ActivateWindow(WINDOW_HOME);
}
// Free any window properties
pAddonWindow->ClearProperties();
// free the window's resources and unload it (free all guicontrols)
pAddonWindow->FreeResources(true);
g_windowManager.Remove(pAddonWindow->GetID());
}
delete pAddonWindow;
Interface_GUIGeneral::unlock();
}